Example #1
0
 def _validate( me, value, obj =None, **kargs_ignore):
     value = me.validate_typecheck( value)
     Sizer.validate( me, value)
     item_validator = me._item_validator
     #print me.name, item_validator
     if item_validator:
         val = []
         for v in value:   #XXX notSetYet bypasses validate!
             if v not in (config.notSetYet, _NONE): v = item_validator( v)
             val.append(v)
         value = val
     typ = me.container_type
     if not isinstance( value, typ): value = typ( value )
     value = me.validate_validator( value, obj)
     return value
Example #2
0
    def __init__( me, type =int, item_type =None,
                    sync_size_masters =None,    # list-of-other vectors
                    sync_size_slaves  =None,    # list-of-other vectors
                    **kargs):
        item_type = StaticType.makeStaticType( item_type or type )
        item_type.name = 'item'                         #??
        me.item_type = item_type
        me._item_validator = item_type._validate

        kargs = Sizer.__init__( me, **kargs)

        class Container_type( SeqContainer):
            __slots__ = ()
            _parent = me
        me.container_type = Container_type

        if sync_size_slaves is not None:
            if isinstance( sync_size_slaves, Syncer.DualList):
                sync_size_slaves.append( me)
            me._sync_slaves = sync_size_slaves
        if sync_size_masters is not None:
            if isinstance( sync_size_masters, Syncer.DualList):
                sync_size_masters.append( me)
            me._sync_masters = sync_size_masters

        StaticType.__init__( me, Container_type, default_value= Container_type,
                    typ_matcher= lambda value,typ: isinstance( value, (tuple,list)),
                    **kargs )
Example #3
0
 def __str__( me):
     m = me.typ
     me.typ = me.item_type
     try:
         r = StaticType.__str__( me)
     finally:
         me.typ = m
     return r + Sizer.__str__( me)
Example #4
0
 def __init__( me, type_description ='',
                 UI_width = None,
                 **kargs):
     kargs = Sizer.__init__( me, **kargs)
     UI_width = UI_width or me.max
     StaticType.__init__( me, str,
         type_description=type_description or me.__class__.__name__,
         UI_width=UI_width,
         **kargs)
Example #5
0
 def description( me):
     return StaticType.description(me) + Sizer.__str__( me)
Example #6
0
 def __str__( me):
     return StaticType.__str__( me) + Sizer.__str__( me)
Example #7
0
 def _validate( me, value, obj =None, **kargs_ignore):
     value = me.validate_typecheck( value)
     value = me.validate_validator( value, obj)
     Sizer.validate( me, value)
     return value