def __init__(self, steam_id, id_type=STEAM_ACCOUNT_TYPE['individual']):
        self.is_bot = False
        self.is_console = False
        if isinstance(steam_id, int):
            (self.id_number,
             self.y_part,
             self.instance,
             self.id_type,
             self.universe) = self.split_id64(steam_id)
        elif not isinstance(steam_id, str) and not isinstance(steam_id, unicode):
            raise TypeError('Invalid type for steam_id')
        else:
            if unicode(steam_id) == u'BOT':
                self.is_bot = True
            elif unicode(steam_id) == u'Console':
                self.is_console == True
            else:
                pattern = ''.join([
                    ur'STEAM_(?P<universe>[0-5]):(?P<y_part>\d+):',
                    ur'(?P<id_number>\d+)',
                ])
                match = re.match(pattern, steam_id, re.I | re.U)
                if not match:
                    raise ValueError('Invalid string steam_id: %s' % steam_id)
                self.universe = int(match.groupdict()['universe'])
                self.instance = 1
                self.y_part = int(match.groupdict()['y_part'])
                self.id_number = int(match.groupdict()['id_number'])
                self.id_type = id_type
Return a L{Deferred} firing with a L{MyClientFactory} and
dataset/ETHPy150Open pmrowla/pysrcds/srcds/objects.py/SteamId.__init__--crossover with--dataset/ETHPy150Open nlloyd/SubliminalCollaborator/libs/twisted/internet/test/test_tcp.py/AdoptStreamConnectionTestsBuilder.getConnectedClientAndServer