aboutsummaryrefslogtreecommitdiff
path: root/dateutil/parser/__init__.py
diff options
context:
space:
mode:
authorPaul Ganssle <paul@ganssle.io>2017-11-12 10:42:41 -0500
committerPaul Ganssle <paul@ganssle.io>2017-11-12 10:42:41 -0500
commit12f120d17772f5afde051dc57b2f9f74f7dad111 (patch)
tree6f3779b2a612cf8881fba072659bb79a724d71e6 /dateutil/parser/__init__.py
parent840ea60efe5930ffe8a38e42b43fffbfcd96979a (diff)
downloaddateutil-12f120d17772f5afde051dc57b2f9f74f7dad111.tar.gz
Add deprecated private interface into parser
Diffstat (limited to 'dateutil/parser/__init__.py')
-rw-r--r--dateutil/parser/__init__.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/dateutil/parser/__init__.py b/dateutil/parser/__init__.py
index 56783d1..2d6b1a3 100644
--- a/dateutil/parser/__init__.py
+++ b/dateutil/parser/__init__.py
@@ -5,3 +5,51 @@ from ._parser import InvalidDateError, InvalidDatetimeError, InvalidTimeError
__all__ = ['parse', 'parser', 'parserinfo',
'InvalidDatetimeError', 'InvalidDateError', 'InvalidTimeError']
+
+
+###
+# Deprecate portions of the private interface so that downstream code that
+# is improperly relying on it is given *some* notice.
+
+
+def __deprecated_private_func(f):
+ from functools import wraps
+ import warnings
+
+ msg = ('{name} is a private function and may break without warning, '
+ 'it will be moved and or renamed in future versions.')
+ msg = msg.format(name=f.__name__)
+
+ @wraps(f)
+ def deprecated_func(*args, **kwargs):
+ warnings.warn(msg, DeprecationWarning)
+ return f(*args, **kwargs)
+
+ return deprecated_func
+
+def __deprecate_private_class(c):
+ import warnings
+
+ msg = ('{name} is a private class and may break without warning, '
+ 'it will be moved and or renamed in future versions.')
+ msg = msg.format(name=c.__name__)
+
+ class private_class(c):
+ __doc__ = c.__doc__
+
+ def __init__(self, *args, **kwargs):
+ warnings.warn(msg, DeprecationWarning)
+ super(private_class, self).__init__(*args, **kwargs)
+
+ private_class.__name__ = c.__name__
+
+ return private_class
+
+
+from ._parser import _timelex, _resultbase
+from ._parser import _tzparser, _parsetz
+
+_timelex = __deprecate_private_class(_timelex)
+_tzparser = __deprecate_private_class(_tzparser)
+_resultbase = __deprecate_private_class(_resultbase)
+_parsetz = __deprecated_private_func(_parsetz)