summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/util.py
diff options
context:
space:
mode:
authorJonathan Ellis <jbellis@gmail.com>2007-07-30 23:38:27 +0000
committerJonathan Ellis <jbellis@gmail.com>2007-07-30 23:38:27 +0000
commitb3c1b32fac892b6ac676eebaa2dba684709bf410 (patch)
tree8f776ea42934998adcba606f3ad0920fca13314f /lib/sqlalchemy/util.py
parent030554d41b5ce16c692b037f5ee20320431cc202 (diff)
downloadsqlalchemy-b3c1b32fac892b6ac676eebaa2dba684709bf410.tar.gz
add warnings for deprecated methods and options
Diffstat (limited to 'lib/sqlalchemy/util.py')
-rw-r--r--lib/sqlalchemy/util.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py
index e711de3a3..c9c20ef45 100644
--- a/lib/sqlalchemy/util.py
+++ b/lib/sqlalchemy/util.py
@@ -539,3 +539,26 @@ class ScopedRegistry(object):
def _get_key(self):
return self.scopefunc()
+
+
+_warned = Set()
+
+def warn_deprecated(msg):
+ if msg in _warned:
+ return
+ _warned.add(msg)
+ warnings.warn(msg, category=DeprecationWarning, stacklevel=3)
+
+def deprecated(func, add_deprecation_to_docstring=True):
+ def func_with_warning(*args, **kwargs):
+ if func in _warned:
+ return func(*args, **kwargs)
+ _warned.add(func)
+ warnings.warn("Call to deprecated function %s" % func.__name__,
+ category=DeprecationWarning,
+ stacklevel=2)
+ return func(*args, **kwargs)
+ func_with_warning.__name__ = func.__name__
+ func_with_warning.__doc__ = (add_deprecation_to_docstring and 'Deprecated.\n' or '') + func.__doc__
+ func_with_warning.__dict__.update(func.__dict__)
+ return func_with_warning