diff options
| author | Eli Collins <elic@assurancetechnologies.com> | 2015-01-10 19:06:27 -0500 |
|---|---|---|
| committer | Eli Collins <elic@assurancetechnologies.com> | 2015-01-10 19:06:27 -0500 |
| commit | 072dabd56cbd49ade133ade295b0f0013123f0cf (patch) | |
| tree | f4110f54d925b866030a8fb828147afbcfc4f6be /passlib/apache.py | |
| parent | 414b5642635c7f98ee7a2783c0652bb4e464f522 (diff) | |
| download | passlib-072dabd56cbd49ade133ade295b0f0013123f0cf.tar.gz | |
added the official OrderedDict backport, replaced existing refs
Diffstat (limited to 'passlib/apache.py')
| -rw-r--r-- | passlib/apache.py | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/passlib/apache.py b/passlib/apache.py index b3917fb..1c47fd8 100644 --- a/passlib/apache.py +++ b/passlib/apache.py @@ -14,7 +14,7 @@ from passlib.context import CryptContext from passlib.exc import ExpectedStringError from passlib.hash import htdigest from passlib.utils import render_bytes, to_bytes, deprecated_method, is_ascii_codec -from passlib.utils.compat import join_bytes, unicode, BytesIO, iteritems, PY3 +from passlib.utils.compat import join_bytes, unicode, BytesIO, iteritems, PY3, OrderedDict # local __all__ = [ 'HtpasswdFile', @@ -32,40 +32,6 @@ _BCOLON = b":" _INVALID_FIELD_CHARS = b":\n\r\t\x00" #============================================================================= -# backport of OrderedDict for PY2.5 -#============================================================================= -try: - from collections import OrderedDict -except ImportError: - # Python 2.5 - class OrderedDict(dict): - """hacked OrderedDict replacement. - - NOTE: this doesn't provide a full OrderedDict implementation, - just the minimum needed by the Htpasswd internals. - """ - def __init__(self): - self._keys = [] - - def __iter__(self): - return iter(self._keys) - - def __setitem__(self, key, value): - if key not in self: - self._keys.append(key) - super(OrderedDict, self).__setitem__(key, value) - - def __delitem__(self, key): - super(OrderedDict, self).__delitem__(key) - self._keys.remove(key) - - def iteritems(self): - return ((key, self[key]) for key in self) - - # these aren't used or implemented, so disabling them for safety. - update = pop = popitem = clear = keys = iterkeys = None - -#============================================================================= # common helpers #============================================================================= class _CommonFile(object): |
