当前位置: 首页>>代码示例>>Python>>正文


Python Attributes.get_class_member_name方法代码示例

本文整理汇总了Python中krpc.attributes.Attributes.get_class_member_name方法的典型用法代码示例。如果您正苦于以下问题:Python Attributes.get_class_member_name方法的具体用法?Python Attributes.get_class_member_name怎么用?Python Attributes.get_class_member_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在krpc.attributes.Attributes的用法示例。


在下文中一共展示了Attributes.get_class_member_name方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import get_class_member_name [as 别名]
    def __init__(self, service_name, name, procedures, documentation, sort):
        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)

        members = []
        properties = defaultdict(dict)

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

            if Attributes.is_a_class_method(pname):
                members.append(ClassMethod(service_name, name, pname, **pinfo))

            elif Attributes.is_a_class_static_method(pname):
                members.append(ClassStaticMethod(
                    service_name, name, pname, **pinfo))

            elif Attributes.is_a_class_property_accessor(pname):
                propname = Attributes.get_class_member_name(pname)
                proc = Procedure(service_name, pname, **pinfo)
                if Attributes.is_a_class_property_getter(pname):
                    properties[propname]['getter'] = proc
                else:
                    properties[propname]['setter'] = proc

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

        self.members = OrderedDict((member.name, member)
                                   for member in sorted(members, key=sort))
开发者ID:Loran425,项目名称:krpc,代码行数:37,代码来源:nodes.py

示例2: test_get_class_member_name

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import get_class_member_name [as 别名]
 def test_get_class_member_name(self):
     self.assertRaises(ValueError,
                       Attributes.get_class_member_name, 'ProcedureName')
     self.assertRaises(ValueError,
                       Attributes.get_class_member_name, 'get_PropertyName')
     self.assertRaises(ValueError,
                       Attributes.get_class_member_name, 'set_PropertyName')
     self.assertEqual('MethodName',
                      Attributes.get_class_member_name(
                          'ClassName_MethodName'))
     self.assertEqual('StaticMethodName',
                      Attributes.get_class_member_name(
                          'ClassName_StaticMethodName'))
     self.assertEqual('PropertyName',
                      Attributes.get_class_member_name(
                          'ClassName_get_PropertyName'))
     self.assertEqual('PropertyName',
                      Attributes.get_class_member_name(
                          'ClassName_set_PropertyName'))
开发者ID:Loran425,项目名称:krpc,代码行数:21,代码来源:test_attributes.py

示例3: generate_context

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import get_class_member_name [as 别名]
    def generate_context(self):
        context = {
            'service_name': self._service,
            'service_id': self._defs['id'],
            'procedures': {},
            'properties': {},
            'classes': {},
            'enumerations': {},
            'exceptions': {}
        }

        for name, cls in self._get_defs('classes'):
            context['classes'][name] = {
                'methods': {},
                'static_methods': {},
                'properties': {},
                'documentation': self.parse_documentation(
                    cls['documentation'])
            }

        for name, enumeration in self._get_defs('enumerations'):
            context['enumerations'][name] = {
                'values': [{
                    'name': self.parse_name(x['name']),
                    'value': x['value'],
                    'documentation': self.parse_documentation(
                        x['documentation'])
                } for x in enumeration['values']],
                'documentation': self.parse_documentation(
                    enumeration['documentation'])
            }

        for name, exception in self._get_defs('exceptions'):
            context['exceptions'][name] = {
                'documentation': self.parse_documentation(
                    exception['documentation'])
            }

        for name, procedure in self._get_defs('procedures'):
            if Attributes.is_a_procedure(name):
                context['procedures'][self.parse_name(name)] = {
                    'procedure': procedure,
                    'remote_name': name,
                    'remote_id': procedure['id'],
                    'parameters': self.generate_context_parameters(
                        procedure),
                    'return_type': self.parse_return_type(
                        self.get_return_type(procedure)),
                    'documentation': self.parse_documentation(
                        procedure['documentation'])
                }

            elif Attributes.is_a_property_getter(name):
                property_name = self.parse_name(
                    Attributes.get_property_name(name))
                if property_name not in context['properties']:
                    context['properties'][property_name] = {
                        'type': self.parse_return_type(
                            self.get_return_type(procedure)),
                        'getter': None,
                        'setter': None,
                        'documentation': self.parse_documentation(
                            procedure['documentation'])
                    }
                context['properties'][property_name]['getter'] = {
                    'procedure': procedure,
                    'remote_name': name,
                    'remote_id': procedure['id']
                }

            elif Attributes.is_a_property_setter(name):
                property_name = self.parse_name(
                    Attributes.get_property_name(name))
                params = self.generate_context_parameters(procedure)
                if property_name not in context['properties']:
                    context['properties'][property_name] = {
                        'type': params[0]['type'],
                        'getter': None,
                        'setter': None,
                        'documentation': self.parse_documentation(
                            procedure['documentation'])
                    }
                context['properties'][property_name]['setter'] = {
                    'procedure': procedure,
                    'remote_name': name,
                    'remote_id': procedure['id']
                }

            elif Attributes.is_a_class_method(name):
                class_name = Attributes.get_class_name(name)
                method_name = self.parse_name(
                    Attributes.get_class_member_name(name))
                params = self.generate_context_parameters(procedure)
                context['classes'][class_name]['methods'][method_name] = {
                    'procedure': procedure,
                    'remote_name': name,
                    'remote_id': procedure['id'],
                    'parameters': params[1:],
                    'return_type': self.parse_return_type(
                        self.get_return_type(procedure)),
#.........这里部分代码省略.........
开发者ID:Loran425,项目名称:krpc,代码行数:103,代码来源:generator.py

示例4: create_service

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import get_class_member_name [as 别名]
def create_service(client, service):
    """ Create a new service type """
    cls = type(
        str(service.name),
        (ServiceBase,),
        {
            '_client': client,
            '_name': service.name,
            '__doc__': _parse_documentation(service.documentation)
        }
    )

    # Add class types to service
    for cls2 in service.classes:
        cls._add_service_class(cls2)

    # Add enumeration types to service
    for enumeration in service.enumerations:
        cls._add_service_enumeration(enumeration)

    # Add exception types to service
    for exception in service.exceptions:
        cls._add_service_exception(exception)

    # Add procedures
    for procedure in service.procedures:
        if Attributes.is_a_procedure(procedure.name):
            cls._add_service_procedure(procedure)

    # Add properties
    properties = defaultdict(lambda: [None, None])
    for procedure in service.procedures:
        if Attributes.is_a_property_accessor(procedure.name):
            name = Attributes.get_property_name(procedure.name)
            if Attributes.is_a_property_getter(procedure.name):
                properties[name][0] = procedure
            else:
                properties[name][1] = procedure
    for name, procedures in properties.items():
        cls._add_service_property(name, procedures[0], procedures[1])

    # Add class methods
    for procedure in service.procedures:
        if Attributes.is_a_class_method(procedure.name):
            class_name = Attributes.get_class_name(procedure.name)
            method_name = Attributes.get_class_member_name(procedure.name)
            cls._add_service_class_method(class_name, method_name, procedure)

    # Add static class methods
    for procedure in service.procedures:
        if Attributes.is_a_class_static_method(procedure.name):
            class_name = Attributes.get_class_name(procedure.name)
            method_name = Attributes.get_class_member_name(procedure.name)
            cls._add_service_class_static_method(
                class_name, method_name, procedure)

    # Add class properties
    properties = defaultdict(lambda: [None, None])
    for procedure in service.procedures:
        if Attributes.is_a_class_property_accessor(procedure.name):
            class_name = Attributes.get_class_name(procedure.name)
            property_name = Attributes.get_class_member_name(procedure.name)
            key = (class_name, property_name)
            if Attributes.is_a_class_property_getter(procedure.name):
                properties[key][0] = procedure
            else:
                properties[key][1] = procedure
    for (class_name, property_name), procedures in properties.items():
        cls._add_service_class_property(
            class_name, property_name, procedures[0], procedures[1])

    return cls()
开发者ID:Loran425,项目名称:krpc,代码行数:74,代码来源:service.py


注:本文中的krpc.attributes.Attributes.get_class_member_name方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。