Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Remove DotExpandedDict, which was undocumented and unused.

commit c57abd3c29cedcca00821d2a0d5708f10977f3c6 1 parent 0f57935
Alex Gaynor alex authored
32 django/utils/datastructures.py
View
@@ -412,38 +412,6 @@ def dict(self):
"""
return dict((key, self[key]) for key in self)
-class DotExpandedDict(dict):
- """
- A special dictionary constructor that takes a dictionary in which the keys
- may contain dots to specify inner dictionaries. It's confusing, but this
- example should make sense.
-
- >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], \
- 'person.1.lastname': ['Willison'], \
- 'person.2.firstname': ['Adrian'], \
- 'person.2.lastname': ['Holovaty']})
- >>> d
- {'person': {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}}
- >>> d['person']
- {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}
- >>> d['person']['1']
- {'lastname': ['Willison'], 'firstname': ['Simon']}
-
- # Gotcha: Results are unpredictable if the dots are "uneven":
- >>> DotExpandedDict({'c.1': 2, 'c.2': 3, 'c': 1})
- {'c': 1}
- """
- def __init__(self, key_to_list_mapping):
- for k, v in key_to_list_mapping.items():
- current = self
- bits = k.split('.')
- for bit in bits[:-1]:
- current = current.setdefault(bit, {})
- # Now assign value to current position
- try:
- current[bits[-1]] = v
- except TypeError: # Special-case if current isn't a dict.
- current = {bits[-1]: v}
class ImmutableList(tuple):
"""
18 tests/regressiontests/utils/datastructures.py
View
@@ -6,8 +6,8 @@
import pickle
from django.test import SimpleTestCase
-from django.utils.datastructures import (DictWrapper, DotExpandedDict,
- ImmutableList, MultiValueDict, MultiValueDictKeyError, MergeDict, SortedDict)
+from django.utils.datastructures import (DictWrapper, ImmutableList,
+ MultiValueDict, MultiValueDictKeyError, MergeDict, SortedDict)
class SortedDictTests(SimpleTestCase):
@@ -251,20 +251,6 @@ def test_dict_translation(self):
self.assertEqual({}, MultiValueDict().dict())
-class DotExpandedDictTests(SimpleTestCase):
-
- def test_dotexpandeddict(self):
-
- d = DotExpandedDict({'person.1.firstname': ['Simon'],
- 'person.1.lastname': ['Willison'],
- 'person.2.firstname': ['Adrian'],
- 'person.2.lastname': ['Holovaty']})
-
- self.assertEqual(d['person']['1']['lastname'], ['Willison'])
- self.assertEqual(d['person']['2']['lastname'], ['Holovaty'])
- self.assertEqual(d['person']['2']['firstname'], ['Adrian'])
-
-
class ImmutableListTests(SimpleTestCase):
def test_sort(self):
2  tests/regressiontests/utils/tests.py
View
@@ -16,7 +16,7 @@
from .functional import FunctionalTestCase
from .timesince import TimesinceTests
from .datastructures import (MultiValueDictTests, SortedDictTests,
- DictWrapperTests, ImmutableListTests, DotExpandedDictTests, MergeDictTests)
+ DictWrapperTests, ImmutableListTests, MergeDictTests)
from .tzinfo import TzinfoTests
from .datetime_safe import DatetimeTests
from .baseconv import TestBaseConv
Please sign in to comment.
Something went wrong with that request. Please try again.