From ab4ca55620aa12cb6fd9e098f18ca59ad55cbc31 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sun, 27 Mar 2011 14:52:17 -0500 Subject: [PATCH] Don't copy attributes that don't exist to partial instances Classes don't have an `__name__` attribute, so when wrapping them in a `functools.partial` instance, don't try to copy it. Same goes for `__doc__`, but most objects should have that. --- src/milla/dispatch/routing.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/milla/dispatch/routing.py b/src/milla/dispatch/routing.py index 1927bff..ac92319 100644 --- a/src/milla/dispatch/routing.py +++ b/src/milla/dispatch/routing.py @@ -50,8 +50,10 @@ class Router(object): urlvars = match.groupdict() urlvars.update(vars) func = functools.partial(controller, **urlvars) - func.__name__ = controller.__name__ - func.__doc__ = controller.__doc__ + if hasattr(func, '__name__'): + func.__name__ = controller.__name__ + if hasattr(func, '__doc__'): + func.__doc__ = controller.__doc__ self._cache[path_info] = func return func raise UnresolvedPath