<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_competitions(self, tournament=1):
 """Retrieves information about all competitions Args: tournament (int, optional):
 ID of the tournament, defaults to 1 Returns: list of dicts: list of rounds Each round's dict contains the following items: * datasetId (`str`) * number (`int`) * openTime (`datetime`) * resolveTime (`datetime`) * participants (`int`):
 number of participants * prizePoolNmr (`decimal.Decimal`) * prizePoolUsd (`decimal.Decimal`) * resolvedGeneral (`bool`) * resolvedStaking (`bool`) * ruleset (`string`) Example: [ {'datasetId': '59a70840ca11173c8b2906ac', 'number': 71, 'openTime': datetime.datetime(2017, 8, 31, 0, 0), 'resolveTime': datetime.datetime(2017, 9, 27, 21, 0), 'participants': 1287, 'prizePoolNmr': Decimal('0.00'), 'prizePoolUsd': Decimal('6000.00'), 'resolvedGeneral': True, 'resolvedStaking': True, 'ruleset': 'p_auction' }, .. ] """

        self.logger.info("getting rounds...")

        query = '''
            query($tournament: Int!) {
              rounds(tournament: $tournament) {
                number
                resolveTime
                datasetId
                openTime
                resolvedGeneral
                resolvedStaking
                participants
                prizePoolNmr
                prizePoolUsd
                ruleset
              }
            }
        '''
        arguments = {'tournament': tournament}
        result = self.raw_query(query, arguments)
        rounds = result['data']['rounds']
        # convert datetime strings to datetime.datetime objects
        for r in rounds:
            utils.replace(r, "openTime", utils.parse_datetime_string)
            utils.replace(r, "resolveTime", utils.parse_datetime_string)
            utils.replace(r, "prizePoolNmr", utils.parse_float_string)
            utils.replace(r, "prizePoolUsd", utils.parse_float_string)
        return rounds