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


Python Attributes.is_a_property_accessor方法代码示例

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


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

示例1: __init__

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_property_accessor [as 别名]
    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))
开发者ID:Kerbal007,项目名称:krpc,代码行数:36,代码来源:nodes.py

示例2: __init__

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_property_accessor [as 别名]
    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()])
开发者ID:artwhaley,项目名称:krpc,代码行数:37,代码来源:nodes.py

示例3: create_service

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

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

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

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

    # Add properties
    properties = defaultdict(lambda: [None,None])
    for procedure in service.procedures:
        if Attributes.is_a_property_accessor(procedure.attributes):
            name = Attributes.get_property_name(procedure.attributes)
            if Attributes.is_a_property_getter(procedure.attributes):
                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.attributes):
            class_name = Attributes.get_class_name(procedure.attributes)
            method_name = Attributes.get_class_method_name(procedure.attributes)
            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.attributes):
            class_name = Attributes.get_class_name(procedure.attributes)
            method_name = Attributes.get_class_method_name(procedure.attributes)
            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.attributes):
            class_name = Attributes.get_class_name(procedure.attributes)
            property_name = Attributes.get_class_property_name(procedure.attributes)
            key = (class_name, property_name)
            if Attributes.is_a_class_property_getter(procedure.attributes):
                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:602p,项目名称:krpc,代码行数:60,代码来源:service.py

示例4: test_is_a_property_accessor

# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_property_accessor [as 别名]
 def test_is_a_property_accessor(self):
     self.assertFalse(Attributes.is_a_property_accessor([]))
     self.assertTrue(Attributes.is_a_property_accessor(
         ['Property.Get(PropertyName)']))
     self.assertTrue(Attributes.is_a_property_accessor(
         ['Property.Set(PropertyName)']))
     self.assertFalse(Attributes.is_a_property_accessor(
         ['Class.Method(ServiceName.ClassName,MethodName)']))
     self.assertFalse(Attributes.is_a_property_accessor(
         ['Class.StaticMethod(ServiceName.ClassName,MethodName)']))
     self.assertFalse(Attributes.is_a_property_accessor(
         ['Class.Property.Get(ServiceName.ClassName,PropertyName)']))
     self.assertFalse(Attributes.is_a_property_accessor(
         ['Class.Property.Set(ServiceName.ClassName,PropertyName)']))
开发者ID:paperclip,项目名称:krpc,代码行数:16,代码来源:test_attributes.py


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