diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-22 20:37:44 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-22 20:37:44 +0000 |
| commit | c8e8d77fdc0503bd1ac48ba35921745ff61f4cc3 (patch) | |
| tree | fc26f76c17077b177fc9381db10b3d05983b1a6f /lib/sqlalchemy/util.py | |
| parent | 258acbeb72f012abcba1618e6930dda58307c5cc (diff) | |
| download | sqlalchemy-c8e8d77fdc0503bd1ac48ba35921745ff61f4cc3.tar.gz | |
- added util.portable_instancemethod to provide a quick way to make an instancemethod "serializable"
- SchemaType and subclasses Boolean, Enum are now serializable,
including their ddl listener and other event callables.
[ticket:1694] [ticket:1698]
- AddConstraint/DropConstraint use the wrapper for _create_rule
- added test coverage for AddConstraint override of _create_rule
Diffstat (limited to 'lib/sqlalchemy/util.py')
| -rw-r--r-- | lib/sqlalchemy/util.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index 07b8269a9..873243de1 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -453,6 +453,18 @@ def unbound_method_to_callable(func_or_cls): else: return func_or_cls +class portable_instancemethod(object): + """Turn an instancemethod into a (parent, name) pair + to produce a serializable callable. + + """ + def __init__(self, meth): + self.target = meth.im_self + self.name = meth.__name__ + + def __call__(self, *arg, **kw): + return getattr(self.target, self.name)(*arg, **kw) + def class_hierarchy(cls): """Return an unordered sequence of all classes related to cls. |
