diff options
author | Jason Kirtland <jek@discorporate.us> | 2007-08-22 15:15:52 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2007-08-22 15:15:52 +0000 |
commit | ea44deff14a59da731ffeeafbbcf721921f1404d (patch) | |
tree | bc2b1feb4f081b75b29cdff4c35180b8177dd231 /lib/sqlalchemy/schema.py | |
parent | 06881d849db31f5d4f17083dd3d8023a7d783b67 (diff) | |
download | sqlalchemy-ea44deff14a59da731ffeeafbbcf721921f1404d.tar.gz |
Adjusted ColumnDefault default function fitness check to only insure that a given function had no more than one non-defaulted positional arg.
Diffstat (limited to 'lib/sqlalchemy/schema.py')
-rw-r--r-- | lib/sqlalchemy/schema.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index b6f345be2..1dacad3de 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -735,10 +735,14 @@ class ColumnDefault(DefaultGenerator): argspec = inspect.getargspec(arg) if len(argspec[0]) == 0: self.arg = lambda ctx: arg() - elif len(argspec[0]) != 1: - raise exceptions.ArgumentError("ColumnDefault Python function takes zero or one positional arguments") else: - self.arg = arg + defaulted = argspec[3] is not None and len(argspec[3]) or 0 + if len(argspec[0]) - defaulted > 1: + raise exceptions.ArgumentError( + "ColumnDefault Python function takes zero or one " + "positional arguments") + else: + self.arg = arg else: self.arg = arg |