summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2012-07-14 19:04:37 -0700
committerAlex Gaynor <alex.gaynor@gmail.com>2012-07-14 19:04:37 -0700
commitc57abd3c29cedcca00821d2a0d5708f10977f3c6 (patch)
treeb8c9bfce871ee5c8c5a6e373244d6c227020d450
parent0f57935bcd8cd525d8d661c5af4fb70b79e126ae (diff)
Remove DotExpandedDict, which was undocumented and unused.
-rw-r--r--django/utils/datastructures.py32
-rw-r--r--tests/regressiontests/utils/datastructures.py18
-rw-r--r--tests/regressiontests/utils/tests.py2
3 files changed, 3 insertions, 49 deletions
diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index 69be07ba7e..16741ba36b 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -412,38 +412,6 @@ class MultiValueDict(dict):
"""
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):
"""
diff --git a/tests/regressiontests/utils/datastructures.py b/tests/regressiontests/utils/datastructures.py
index 000f7f76a1..1af5018f3b 100644
--- a/tests/regressiontests/utils/datastructures.py
+++ b/tests/regressiontests/utils/datastructures.py
@@ -6,8 +6,8 @@ import copy
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 @@ class MultiValueDictTests(SimpleTestCase):
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):
diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py
index f5ca06ef1e..a7deeeefae 100644
--- a/tests/regressiontests/utils/tests.py
+++ b/tests/regressiontests/utils/tests.py
@@ -16,7 +16,7 @@ from .decorators import DecoratorFromMiddlewareTests
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