summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/schema.py')
-rw-r--r--lib/sqlalchemy/schema.py10
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