def make_persistent(self, instance): print 'Make persistent called with %s' % (instance, ) if not IPersistent.providedBy(instance): print '\tIPersistent not provided, directly providing' directly_provides(instance, IPersistent) persistent = IPersistentObject(instance) self._configure_persistence(persistent) persistent.set_unsaved() self.notify_modified(instance)
def make_persistent(self, instance): print 'Make persistent called with %s' % (instance,) if not IPersistent.providedBy(instance): print '\tIPersistent not provided, directly providing' directly_provides(instance, IPersistent) persistent = IPersistentObject(instance) self._configure_persistence(persistent) persistent.set_unsaved() self.notify_modified(instance)
def __new__(klass, instance): adapter = getattr(instance, '__persistenceAdapter__', None) if not adapter: isclass = inspect.isclass(instance) if not isclass and not IPersistent.providedBy(instance): raise ComponentLookupError( '%s must povide IPersistent.' % (instance)) adapter = super(PersistentAdapter, klass).__new__(klass, instance) adapter.initialize(instance) if not isclass: instance.__persistenceAdapter__ = adapter return adapter
def __new__(klass, instance): adapter = getattr(instance, '__persistenceAdapter__', None) if not adapter: isclass = inspect.isclass(instance) if not isclass and not IPersistent.providedBy(instance): raise ComponentLookupError('%s must povide IPersistent.' % (instance)) adapter = super(PersistentAdapter, klass).__new__(klass, instance) adapter.initialize(instance) if not isclass: instance.__persistenceAdapter__ = adapter return adapter
def get_oid(self, instance): print 'get_oid(%s)' % (instance,) if isinstance(instance, _never_persistent): print '\t-> None, is instance of _never_persistent' return None if type(instance) in (dict, list): print '\t-> None, type in dict, list' return None if not IPersistent.providedBy(instance): print '\t-> None, IPersistent not provided by instance' return None persistent = IPersistentObject(instance) if persistent.get_oid() is None: self._configure_persistence(persistent) persistent.set_loaded() persistent.set_unsaved() elif not persistent.is_persistent(): print '\t-> None, not persistent.is_persistent()' return None oid = persistent.get_oid() print '\t%s OID => %s' % (instance, oid) return oid
def get_oid(self, instance): print 'get_oid(%s)' % (instance, ) if isinstance(instance, _never_persistent): print '\t-> None, is instance of _never_persistent' return None if type(instance) in (dict, list): print '\t-> None, type in dict, list' return None if not IPersistent.providedBy(instance): print '\t-> None, IPersistent not provided by instance' return None persistent = IPersistentObject(instance) if persistent.get_oid() is None: self._configure_persistence(persistent) persistent.set_loaded() persistent.set_unsaved() elif not persistent.is_persistent(): print '\t-> None, not persistent.is_persistent()' return None oid = persistent.get_oid() print '\t%s OID => %s' % (instance, oid) return oid
def make_persistent_type(self, klass): if not inspect.isclass(klass): raise TypeError('Argument must be class.') if not IPersistent.implementedBy(klass): class_implements(klass, IPersistent)