def getmodeledproperties(obj): """Get a list of all :class:`modeled.property` (name, instance) pairs of a :class:`modeleled.object` subclass or (name, value) pairs of a :class:`modeled.object` instance in property creation and inheritance order. """ if modeled.ismodeledclass(obj): return builtins.list(obj.model.properties) if modeled.ismodeledobject(obj): return [(name, getattr(obj, name)) for (name, _) in obj.model.properties] raise TypeError("getmodeledproperties() arg must be a subclass or instance" " of modeled.object")
def mtype_to_statement(cls, mtype, yangname, parent=None): if ismodeledclass(mtype): return YANGContainer[mtype].to_statement( yangname=yangname, parent=parent) leaf = Statement(None, parent, None, 'leaf', yangname) # if member.title: # description = Statement( # None, leaf, None, 'description', member.title) # leaf.substmts.append(description) type_ = Statement(None, leaf, None, 'type', TYPES[mtype]) leaf.substmts.append(type_) return leaf
def getmodeledproperties(obj): """Get a list of all :class:`modeled.property` (name, instance) pairs of a :class:`modeleled.object` subclass or (name, value) pairs of a :class:`modeled.object` instance in property creation and inheritance order. """ if modeled.ismodeledclass(obj): return builtins.list(obj.model.properties) if modeled.ismodeledobject(obj): return [(name, getattr(obj, name)) for (name, _) in obj.model.properties] raise TypeError( "getmodeledproperties() arg must be a subclass or instance" " of modeled.object")
def __init__(cls, clsname, bases, clsattrs): if not ismodeledclass(cls): return def widgets(): for name, obj in getmembers(cls): if ismodeledwidgetclass(obj): obj = obj() obj.id = name setattr(cls, name, obj) yield name, obj elif ismodeledwidget(obj): if not obj.id: obj.id = name yield name, obj cls.model.widgets = WidgetsDict.struct(cls.model, widgets())
def __init__(self, items=None, **options): if items is None: items = [] try: assert(issubclass(self.mtype, modeled.list)) except AttributeError: items = modeled.list(items) self.__class__ = type(self)[items.mtype] member.__init__(self, items, **options) self.indexname = options.get('indexname', 'index') try: self.itemname = options['itemname'] except KeyError: if modeled.ismodeledclass(self.itemtype): self.itemname = decamelize(self.itemtype.__name__) else: self.itemname = 'item'
def __init__(self, items=None, **options): if items is None: items = [] try: assert (issubclass(self.mtype, modeled.list)) except AttributeError: items = modeled.list(items) self.__class__ = type(self)[items.mtype] member.__init__(self, items, **options) self.indexname = options.get('indexname', 'index') try: self.itemname = options['itemname'] except KeyError: if modeled.ismodeledclass(self.itemtype): self.itemname = decamelize(self.itemtype.__name__) else: self.itemname = 'item'
def __init__(self, items=None, **options): if items is None: items = {} try: assert(issubclass(self.mtype, modeled.dict)) except AttributeError: items = modeled.dict(items) self.__class__ = type(self)[items.mtype.mtypes] member.__init__(self, items, **options) self.keyname = options.get('keyname', 'key') try: self.valuename = options['valuename'] except KeyError: if modeled.ismodeledclass(self.valuetype): self.valuename = decamelize(self.valuetype.__name__) else: self.valuename = 'value'
def member_to_statement(cls, member, yangname, parent=None): if ismodeledclass(member.mtype): return YANGContainer[member.mtype].to_statement( yangname=yangname, parent=parent) if member.islist(): list_ = Statement(None, parent, None, 'list', yangname) yangindexname = member.indexname.replace('_', '-') key = Statement(None, list_, None, 'key', yangindexname) list_.substmts.append(key) leaf = Statement(None, list_, None, 'leaf', yangindexname) list_.substmts.append(leaf) type_ = Statement(None, leaf, None, 'type', TYPES[int]) leaf.substmts.append(type_) yangitemname = member.itemname.replace('_', '-') statement = cls.mtype_to_statement( member.itemtype, yangname=yangitemname, parent=list_) list_.substmts.append(statement) return list_ if member.isdict(): list_ = Statement(None, parent, None, 'list', yangname) yangkeyname = member.keyname.replace('_', '-') key = Statement(None, list_, None, 'key', yangkeyname) list_.substmts.append(key) leaf = Statement(None, list_, None, 'leaf', yangkeyname) list_.substmts.append(leaf) type_ = Statement( None, leaf, None, 'type', TYPES[member.keytype]) leaf.substmts.append(type_) yangvaluename = member.valuename.replace('_', '-') statement = cls.mtype_to_statement( member.valuetype, yangname=yangvaluename, parent=list_) list_.substmts.append(statement) return list_ return cls.mtype_to_statement( member.mtype, yangname=yangname, parent=parent)
def getmodeledmembers(obj, properties=True): """Get a list of all :class:`modeled.member` (name, instance) pairs of a :class:`modeleled.object` subclass or (name, value) pairs of a :class:`modeled.object` instance in member creation and inheritance order. :param properties: Include :class:`modeled.property` instances? """ if modeled.ismodeledclass(obj): if properties: return builtins.list(obj.model.members) return [(name, m) for name, m in obj.model.members if not modeled.ismodeledproperty(m)] if modeled.ismodeledobject(obj): if properties: return [(name, getattr(obj, name)) for (name, _) in obj.model.members] return [(name, getattr(obj, name)) for (name, im) in obj.model.members if not modeled.ismodeledproperty(im.m)] raise TypeError( "getmodeledmembers() arg must be a subclass or instance" " of modeled.object")