コード例 #1
0
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")
コード例 #2
0
    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
コード例 #3
0
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")
コード例 #4
0
    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())
コード例 #5
0
ファイル: list.py プロジェクト: userzimmermann/python-modeled
 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'
コード例 #6
0
ファイル: list.py プロジェクト: userzimmermann/python-modeled
 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'
コード例 #7
0
 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'
コード例 #8
0
    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)
コード例 #9
0
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")