def __setitem__(self, name, value): value = removeAllProxies(value) if isinstance(value, Attribute): value.interface = name if not value.__name__: value.__name__ = name elif isinstance(value, FunctionType): attrs[name] = fromFunction(value, name, name=name) else: raise InvalidInterface("Concrete attribute, %s" % name) setitem(self, self._attrs.__setitem__, name, value)
def __setitem__(self, name, object): """Add the given object to the folder under the given name.""" if not (isinstance(name, str) or isinstance(name, unicode)): raise TypeError("Name must be a string rather than a %s" % name.__class__.__name__) try: unicode(name) except UnicodeError: raise TypeError("Non-unicode names must be 7-bit-ascii only") if not name: raise TypeError("Name must not be empty") if name in self.data: raise DuplicationError("name, %s, is already in use" % name) setitem(self, self.data.__setitem__, name, object)
def __setitem__(self, name, object): """Add the given object to the folder under the given name.""" if ECHO: print 'Folder:setitem' if not (isinstance(name, str) or isinstance(name, unicode)): raise TypeError("Name must be a string rather than a %s" % name.__class__.__name__) try: unicode(name) except UnicodeError: raise TypeError("Non-unicode names must be 7-bit-ascii only") if not name: raise TypeError("Name must not be empty") if name in self.data: raise DuplicationError("name, %s, is already in use" % name) # TODO: need to change setitem so that events are fired for the object, # not the object stored form - override the __setitem__ method of self.data setitem(self, self.set_data_item, name, object)
def __setitem__(self, key, object): """ See `IOrderedContainer`. >>> oc = OrderedContainer() >>> oc.keys() [] >>> oc['foo'] = 'bar' >>> oc._order ['foo'] >>> oc['baz'] = 'quux' >>> oc._order ['foo', 'baz'] >>> int(len(oc._order) == len(oc._data)) 1 """ existed = self._data.has_key(key) bad = False if isinstance(key, StringTypes): try: unicode(key) except UnicodeError: bad = True else: bad = True if bad: raise TypeError("'%s' is invalid, the key must be an " "ascii or unicode string" % key) if len(key) == 0: raise ValueError("The key cannot be an empty string") setitem(self, self._data.__setitem__, key, object) if not existed: self._order.append(key) return key
def __setitem__(self, name, object): setitem(self, super(Directory, self).__setitem__, name, object) self.modified = datetime.datetime.now()
def makeObjects(self): checker = NamesChecker(["__getitem__"]) defineChecker(SiteManagerStub, checker) self.futurama = futurama = SampleSite() directlyProvides(futurama, IContainmentRoot) planetexpress = SampleContainer() robotfactory = SampleContainer() nimbus = SampleContainer() omicronpersei = SampleSite() bender = SampleContent() fry = SampleContent() leela = SampleContent() mom = SampleContent() zapp = SampleContent() kif = SampleContent() setitem(futurama, futurama.__setitem__, "planetexpress", planetexpress) setitem(futurama, futurama.__setitem__, "robotfactory", robotfactory) setitem(futurama, futurama.__setitem__, "nimbus", nimbus) setitem(futurama, futurama.__setitem__, "omicronpersei", omicronpersei) setitem(planetexpress, planetexpress.__setitem__, "bender", bender) setitem(planetexpress, planetexpress.__setitem__, "fry", fry) setitem(planetexpress, planetexpress.__setitem__, "leela", leela) setitem(robotfactory, robotfactory.__setitem__, "mom", mom) setitem(nimbus, nimbus.__setitem__, "zapp", zapp) setitem(nimbus, nimbus.__setitem__, "kif", kif)
def __setitem__(self, key, object): '''See interface `IWriteContainer`''' setitem(self, self.__data.__setitem__, key, object)