Removed code that is not needed any more

Close #219
Close #218
This commit is contained in:
Hernan Grecco
2015-02-06 17:13:06 -03:00
parent b32c2ec3bb
commit ec58b26d64
4 changed files with 1 additions and 163 deletions

View File

@@ -65,11 +65,6 @@ try:
except ImportError:
from .chainmap import ChainMap
try:
from collections import TransformDict
except ImportError:
from .transformdict import TransformDict
try:
from functools import lru_cache
except ImportError:

View File

@@ -1,136 +0,0 @@
# -*- coding: utf-8 -*-
"""
pint.compat.transformdict
~~~~~~~~~~~~~~~~~~~~~~~~~
Taken from the Python 3.4 source code.
:copyright: 2013, PSF
:license: PSF License
"""
from collections import MutableMapping
_sentinel = object()
class TransformDict(MutableMapping):
'''Dictionary that calls a transformation function when looking
up keys, but preserves the original keys.
>>> d = TransformDict(str.lower)
>>> d['Foo'] = 5
>>> d['foo'] == d['FOO'] == d['Foo'] == 5
True
>>> set(d.keys())
{'Foo'}
'''
__slots__ = ('_transform', '_original', '_data')
def __init__(self, transform, init_dict=None, **kwargs):
'''Create a new TransformDict with the given *transform* function.
*init_dict* and *kwargs* are optional initializers, as in the
dict constructor.
'''
if not callable(transform):
raise TypeError("expected a callable, got %r" % transform.__class__)
self._transform = transform
# transformed => original
self._original = {}
self._data = {}
if init_dict:
self.update(init_dict)
if kwargs:
self.update(kwargs)
def getitem(self, key):
'D.getitem(key) -> (stored key, value)'
transformed = self._transform(key)
original = self._original[transformed]
value = self._data[transformed]
return original, value
@property
def transform_func(self):
"This TransformDict's transformation function"
return self._transform
# Minimum set of methods required for MutableMapping
def __len__(self):
return len(self._data)
def __iter__(self):
return iter(self._original.values())
def __getitem__(self, key):
return self._data[self._transform(key)]
def __setitem__(self, key, value):
transformed = self._transform(key)
self._data[transformed] = value
self._original.setdefault(transformed, key)
def __delitem__(self, key):
transformed = self._transform(key)
del self._data[transformed]
del self._original[transformed]
# Methods overriden to mitigate the performance overhead.
def clear(self):
'D.clear() -> None. Remove all items from D.'
self._data.clear()
self._original.clear()
def __contains__(self, key):
return self._transform(key) in self._data
def get(self, key, default=None):
'D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.'
return self._data.get(self._transform(key), default)
def pop(self, key, default=_sentinel):
'''D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised.
'''
transformed = self._transform(key)
if default is _sentinel:
del self._original[transformed]
return self._data.pop(transformed)
else:
self._original.pop(transformed, None)
return self._data.pop(transformed, default)
def popitem(self):
'''D.popitem() -> (k, v), remove and return some (key, value) pair
as a 2-tuple; but raise KeyError if D is empty.
'''
transformed, value = self._data.popitem()
return self._original.pop(transformed), value
# Other methods
def copy(self):
'D.copy() -> a shallow copy of D'
other = self.__class__(self._transform)
other._original = self._original.copy()
other._data = self._data.copy()
return other
__copy__ = copy
def __getstate__(self):
return (self._transform, self._data, self._original)
def __setstate__(self, state):
self._transform, self._data, self._original = state
def __repr__(self):
try:
equiv = dict(self)
except TypeError:
# Some keys are unhashable, fall back on .items()
equiv = list(self.items())
return '%s(%r, %s)' % (self.__class__.__name__,
self._transform, repr(equiv))

View File

@@ -27,16 +27,6 @@ _header_re = re.compile('@context\s*(?P<defaults>\(.*\))?\s+(?P<name>\w+)\s*(=(?
_varname_re = re.compile('[A-Za-z_][A-Za-z0-9_]*')
def _freeze(d):
"""Return a hashable view of dict.
"""
if isinstance(d, string_types):
d = ParserHelper.from_string(d)
if isinstance(d, frozenset):
return d
return frozenset(d.items())
def _expression_to_function(eq):
def func(ureg, value, **kwargs):
return ureg.parse_expression(eq, value=value, **kwargs)

View File

@@ -6,7 +6,7 @@ import itertools
from collections import defaultdict
from pint import UnitRegistry
from pint.context import Context, _freeze
from pint.context import Context
from pint.util import UnitsContainer
from pint.testsuite import QuantityTestCase
@@ -81,17 +81,6 @@ def add_sharedargdef_ctxs(ureg):
class TestContexts(QuantityTestCase):
def test_freeze(self):
self.assertEqual(_freeze('meter'), frozenset([('meter', 1)]))
self.assertEqual(_freeze('meter/second'), frozenset((('meter', 1), ('second', -1))))
x = frozenset((('meter', 1)))
self.assertIs(_freeze(x), x)
self.assertEqual(_freeze({'meter': 1}),
frozenset([('meter', 1)]))
self.assertEqual(_freeze({'meter': -1, 'second': -1}),
frozenset((('meter', -1), ('second', -1))))
def test_known_context(self):
ureg = UnitRegistry()
add_ctxs(ureg)