コード例 #1
0
ファイル: nodes.py プロジェクト: artwhaley/krpc
    def __init__(self, service_name, name, procedures, documentation):
        super(Class, self).__init__()
        self.service_name = service_name
        self.name = name
        self.fullname = service_name+'.'+name
        self.documentation = documentation
        self.cref = 'T:%s.%s' % (service_name, name)

        self.members = {}
        for pname,pinfo in procedures.items():
            if Attributes.is_a_class_member(pinfo['attributes']) and \
               Attributes.get_class_name(pinfo['attributes']) == name:
                if Attributes.is_a_class_method(pinfo['attributes']):
                    member = ClassMethod(service_name, name, pname, **pinfo)
                elif Attributes.is_a_class_static_method(pinfo['attributes']):
                    member = ClassStaticMethod(service_name, name, pname, **pinfo)
                else:
                    continue
                self.members[member.name] = member

        properties = {}
        for pname,pinfo in procedures.items():
            if Attributes.is_a_class_property_accessor(pinfo['attributes']):
                propname = Attributes.get_class_property_name(pinfo['attributes'])
                if propname not in properties:
                    properties[propname] = {}
                if Attributes.is_a_class_property_getter(pinfo['attributes']):
                    properties[propname]['getter'] = Procedure(service_name, pname, **pinfo)
                else:
                    properties[propname]['setter'] = Procedure(service_name, pname, **pinfo)
        for propname,prop in properties.items():
            prop = ClassProperty(service_name, name, propname, **prop)
            self.members[prop.name] = prop
コード例 #2
0
ファイル: nodes.py プロジェクト: Kerbal007/krpc
    def __init__(self, name, procedures, classes, enumerations, documentation, sort):
        super(Service, self).__init__()
        self.name = name
        self.fullname = name
        self.documentation = documentation
        self.cref = 'T:%s' % name

        members = []
        cprocedures = defaultdict(lambda: dict())
        properties = defaultdict(lambda: dict())

        for pname,info in procedures.iteritems():

            if Attributes.is_a_procedure(info['attributes']):
                members.append(Procedure(name, pname, **info))

            elif Attributes.is_a_property_accessor(info['attributes']):
                propname = Attributes.get_property_name(info['attributes'])
                if Attributes.is_a_property_getter(info['attributes']):
                    properties[propname]['getter'] = Procedure(name, pname, **info)
                else:
                    properties[propname]['setter'] = Procedure(name, pname, **info)

            elif Attributes.is_a_class_member(info['attributes']):
                cname = Attributes.get_class_name(info['attributes'])
                cprocedures[cname][pname] = info

        for propname,prop in properties.iteritems():
            members.append(Property(name, propname, **prop))

        self.classes = {cname: Class(name, cname, cprocedures[cname], sort=sort, **cinfo) for (cname,cinfo) in classes.iteritems()}
        self.enumerations = {ename: Enumeration(name, ename, sort=sort, **einfo) for (ename,einfo) in enumerations.iteritems()}

        self.members = OrderedDict((member.name, member) for member in sorted(members, key=sort))
コード例 #3
0
ファイル: nodes.py プロジェクト: artwhaley/krpc
    def __init__(self, name, procedures, classes, enumerations, documentation):
        super(Service, self).__init__()
        self.name = name
        self.fullname = name
        self.documentation = documentation
        self.cref = 'T:%s' % name

        self.members = {}
        for pname,info in procedures.items():
            if Attributes.is_a_procedure(info['attributes']):
                proc = Procedure(name, pname, **info)
                self.members[proc.name] = proc

        properties = {}
        for pname,info in procedures.items():
            if Attributes.is_a_property_accessor(info['attributes']):
                propname = Attributes.get_property_name(info['attributes'])
                if propname not in properties:
                    properties[propname] = {}
                if Attributes.is_a_property_getter(info['attributes']):
                    properties[propname]['getter'] = Procedure(name, pname, **info)
                else:
                    properties[propname]['setter'] = Procedure(name, pname, **info)
        for propname,prop in properties.items():
            prop = Property(name, propname, **prop)
            self.members[prop.name] = prop

        self.classes = {}
        for cname,cinfo in classes.items():
            cprocedures = dict(filter(
                lambda (name,info): Attributes.is_a_class_member(info['attributes']) and \
                Attributes.get_class_name(info['attributes']) == cname, procedures.items()))
            self.classes[cname] = Class(name, cname, cprocedures, **cinfo)

        self.enumerations = dict([(ename,Enumeration(name, ename, **einfo)) for ename,einfo in enumerations.items()])
コード例 #4
0
    def __init__(self, name, procedures, classes, enumerations, exceptions,
                 documentation, sort):
        super(Service, self).__init__()
        self.name = name
        self.fullname = name
        self.documentation = documentation
        self.cref = 'T:%s' % name

        members = []
        cprocedures = defaultdict(dict)
        properties = defaultdict(dict)

        for pname, info in procedures.iteritems():
            del info['id']

            if 'game_scenes' in info:
                info['game_scenes'] = ', '.join(
                    x.replace('_', ' ').title() for x in info['game_scenes'])
            else:
                info['game_scenes'] = 'All'

            if Attributes.is_a_procedure(pname):
                members.append(Procedure(name, pname, **info))

            elif Attributes.is_a_property_accessor(pname):
                propname = Attributes.get_property_name(pname)
                if Attributes.is_a_property_getter(pname):
                    properties[propname]['getter'] = Procedure(
                        name, pname, **info)
                else:
                    properties[propname]['setter'] = Procedure(
                        name, pname, **info)

            elif Attributes.is_a_class_member(pname):
                cname = Attributes.get_class_name(pname)
                cprocedures[cname][pname] = info

        for propname, prop in properties.iteritems():
            members.append(Property(name, propname, **prop))

        self.classes = {
            cname: Class(name, cname, cprocedures[cname], sort=sort, **cinfo)
            for (cname, cinfo) in classes.iteritems()
        }
        self.enumerations = {
            ename: Enumeration(name, ename, sort=sort, **einfo)
            for (ename, einfo) in enumerations.iteritems()
        }
        self.exceptions = {
            ename: ExceptionNode(name, ename, **einfo)
            for (ename, einfo) in exceptions.iteritems()
        }

        self.members = OrderedDict(
            (member.name, member) for member in sorted(members, key=sort))
コード例 #5
0
ファイル: nodes.py プロジェクト: thinkyfish/krpc
    def __init__(self, name, procedures, classes, enumerations, documentation,
                 sort):
        super(Service, self).__init__()
        self.name = name
        self.fullname = name
        self.documentation = documentation
        self.cref = 'T:%s' % name

        members = []
        cprocedures = defaultdict(dict)
        properties = defaultdict(dict)

        for pname, info in procedures.iteritems():

            if Attributes.is_a_procedure(info['attributes']):
                members.append(Procedure(name, pname, **info))

            elif Attributes.is_a_property_accessor(info['attributes']):
                propname = Attributes.get_property_name(info['attributes'])
                if Attributes.is_a_property_getter(info['attributes']):
                    properties[propname]['getter'] = Procedure(
                        name, pname, **info)
                else:
                    properties[propname]['setter'] = Procedure(
                        name, pname, **info)

            elif Attributes.is_a_class_member(info['attributes']):
                cname = Attributes.get_class_name(info['attributes'])
                cprocedures[cname][pname] = info

        for propname, prop in properties.iteritems():
            members.append(Property(name, propname, **prop))

        self.classes = {
            cname: Class(name, cname, cprocedures[cname], sort=sort, **cinfo)
            for (cname, cinfo) in classes.iteritems()
        }
        self.enumerations = {
            ename: Enumeration(name, ename, sort=sort, **einfo)
            for (ename, einfo) in enumerations.iteritems()
        }

        self.members = OrderedDict(
            (member.name, member) for member in sorted(members, key=sort))