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
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 )
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)
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)
def description( me): return StaticType.description(me) + Sizer.__str__( me)
def __str__( me): return StaticType.__str__( me) + Sizer.__str__( me)
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