Make inheritance be done in the __init__ function
This commit is contained in:
1 parent
4c27c179dc
commit
a49da4d222
2 files changed
+2
-27
No files matched your search
+1
-15
@@ -172,21 +172,7 @@ class OSV(ORM):
|
||||
"""
|
||||
if pool.get(cls._name):
|
||||
parent_class = pool.get(cls._name).__class__
|
||||
nattr = {}
|
||||
for i in (
|
||||
'_columns',
|
||||
'_defaults',
|
||||
'_inherits',
|
||||
'_constraints',
|
||||
'_sql_constraints',
|
||||
):
|
||||
new = copy.copy(getattr(pool.get(cls._name), i))
|
||||
if hasattr(new, 'update'):
|
||||
new.update(cls.__dict__.get(i, {}))
|
||||
else:
|
||||
new.extend(cls.__dict__.get(i, []))
|
||||
nattr[i] = new
|
||||
cls = type(cls._name, (cls, parent_class), nattr)
|
||||
cls = type(cls._name, (cls, parent_class), {})
|
||||
|
||||
obj = object.__new__(cls)
|
||||
obj.__init__(pool)
|
||||
|
||||
@@ -116,18 +116,7 @@ class Wizard(object):
|
||||
"""
|
||||
if pool.get(cls._name):
|
||||
parent_class = pool.get(cls._name).__class__
|
||||
new_states = copy.copy(getattr(pool.get(cls._name), 'states'))
|
||||
for i in (
|
||||
'actions',
|
||||
'result',
|
||||
):
|
||||
new = copy.copy(getattr(new_states, i))
|
||||
if hasattr(new, 'update'):
|
||||
new.update(cls.__dict__.get(i, {}))
|
||||
else:
|
||||
new.extend(cls.__dict__.get(i, []))
|
||||
new_states[i] = new
|
||||
cls = type(cls._name, (cls, parent_class), {'states': new_states})
|
||||
cls = type(cls._name, (cls, parent_class), {})
|
||||
|
||||
obj = object.__new__(cls)
|
||||
obj.__init__(pool, pool_obj)
|
||||
|
||||
Reference in new issue
Block a user