From ea44deff14a59da731ffeeafbbcf721921f1404d Mon Sep 17 00:00:00 2001 From: Jason Kirtland Date: Wed, 22 Aug 2007 15:15:52 +0000 Subject: Adjusted ColumnDefault default function fitness check to only insure that a given function had no more than one non-defaulted positional arg. --- lib/sqlalchemy/schema.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/sqlalchemy') 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 -- cgit v1.2.1