本文整理汇总了Python中krpc.attributes.Attributes.is_a_class_property_accessor方法的典型用法代码示例。如果您正苦于以下问题:Python Attributes.is_a_class_property_accessor方法的具体用法?Python Attributes.is_a_class_property_accessor怎么用?Python Attributes.is_a_class_property_accessor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类krpc.attributes.Attributes
的用法示例。
在下文中一共展示了Attributes.is_a_class_property_accessor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_class_property_accessor [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(lambda: dict())
for pname,pinfo in procedures.iteritems():
#assert(Attributes.is_a_class_member(pinfo['attributes']))
#assert(Attributes.get_class_name(pinfo['attributes']) == name)
if Attributes.is_a_class_method(pinfo['attributes']):
members.append(ClassMethod(service_name, name, pname, **pinfo))
elif Attributes.is_a_class_static_method(pinfo['attributes']):
members.append(ClassStaticMethod(service_name, name, pname, **pinfo))
elif Attributes.is_a_class_property_accessor(pinfo['attributes']):
propname = Attributes.get_class_property_name(pinfo['attributes'])
proc = Procedure(service_name, pname, **pinfo)
if Attributes.is_a_class_property_getter(pinfo['attributes']):
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))
示例2: __init__
# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_class_property_accessor [as 别名]
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
示例3: create_service
# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_class_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()
示例4: test_is_a_class_property_accessor
# 需要导入模块: from krpc.attributes import Attributes [as 别名]
# 或者: from krpc.attributes.Attributes import is_a_class_property_accessor [as 别名]
def test_is_a_class_property_accessor(self):
self.assertFalse(Attributes.is_a_class_property_accessor([]))
self.assertFalse(Attributes.is_a_class_property_accessor(
['Property.Get(PropertyName)']))
self.assertFalse(Attributes.is_a_class_property_accessor(
['Property.Set(PropertyName)']))
self.assertFalse(Attributes.is_a_class_property_accessor(
['Class.Method(ServiceName.ClassName,MethodName)']))
self.assertFalse(Attributes.is_a_class_property_accessor(
['Class.StaticMethod(ServiceName.ClassName,MethodName)']))
self.assertTrue(Attributes.is_a_class_property_accessor(
['Class.Property.Get(ServiceName.ClassName,PropertyName)']))
self.assertTrue(Attributes.is_a_class_property_accessor(
['Class.Property.Set(ServiceName.ClassName,PropertyName)']))