Esempio n. 1
0
File: session.py Progetto: serah/HR
 def _save_impl(self, instance, **kwargs):
     if hasattr(instance, '_instance_key'):
         raise exceptions.InvalidRequestError("Instance '%s' is already persistent" % mapperutil.instance_str(instance))
     else:
         # TODO: consolidate the steps here
         attributes.manage(instance)
         instance._entity_name = kwargs.get('entity_name', None)
         self._attach(instance)
         self.uow.register_new(instance)
Esempio n. 2
0
class User(object):
    pass
class Address(object):
    pass

if manage_attributes:
    attributes.register_attribute(User, 'id', False, False)
    attributes.register_attribute(User, 'name', False, False)
    attributes.register_attribute(User, 'addresses', True, False, trackparent=True)
    attributes.register_attribute(Address, 'email', False, False)

now = time.time()
for i in range(0,130):
    u = User()
    if init_attributes:
        attributes.manage(u)
    u.id = i
    u.name = "user " + str(i)
    if not manage_attributes:
        u.addresses = []
    for j in range(0,200):
        a = Address()
        if init_attributes:
            attributes.manage(a)
        a.email = '*****@*****.**'
        u.addresses.append(a)
#    print len(managed_attributes)
#    managed_attributes.clear()
total = time.time() - now
print "Total time", total
# with this test, run top.  make sure the Python process doenst grow in size arbitrarily.

class User(object):
    pass

class Address(object):
    pass

attributes.register_attribute(User, 'id', False, False)
attributes.register_attribute(User, 'name', False, False)
attributes.register_attribute(User, 'addresses', True, False)
attributes.register_attribute(Address, 'email', False, False)
attributes.register_attribute(Address, 'user', False, False)


for i in xrange(1000):
  for j in xrange(1000):
    u = User()
    attributes.manage(u)
    u.name = str(random.randint(0, 100000000))
    for k in xrange(10):
      a = Address()
      a.email_address = str(random.randint(0, 100000000))
      attributes.manage(a)
      u.addresses.append(a)
      a.user = u
  print "clearing"
  #managed_attributes.clear()
  gc_collect()