Commit 8b3c2f2c authored by Alex Gaynor's avatar Alex Gaynor
Browse files

Deprecate two methods (which I seriously doubt anyone ever used, but they were...

Deprecate two methods (which I seriously doubt anyone ever used, but they were documented so...) because they cannot be implemented efficiently on top of collections.SortedDict in Python 2.7 and up.
parent 9877d25d
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
import copy
import warning
from types import GeneratorType


class MergeDict(object):
    """
    A simple class for creating new "virtual" dictionaries that actually look
@@ -191,10 +193,17 @@ class SortedDict(dict):

    def value_for_index(self, index):
        """Returns the value of the item at the given zero-based index."""
        # This, and insert() are deprecated because they cannot be implemented
        # using collections.OrderedDict (Python 2.7 and up), which we'll
        # eventually switch to
        warning.warn(PendingDeprecationWarning,
            "SortedDict.value_for_index is deprecated", stacklevel=2)
        return self[self.keyOrder[index]]

    def insert(self, index, key, value):
        """Inserts the key, value pair before the item with the given index."""
        warning.warn(PendingDeprecationWarning,
            "SortedDict.insert is deprecated", stacklevel=2)
        if key in self.keyOrder:
            n = self.keyOrder.index(key)
            del self.keyOrder[n]
+4 −0
Original line number Diff line number Diff line
@@ -112,10 +112,14 @@ to distinguish caches by the ``Accept-language`` header.

    .. method:: insert(index, key, value)

        .. deprecated:: 1.5

        Inserts the key, value pair before the item with the given index.

    .. method:: value_for_index(index)

        .. deprecated:: 1.5

        Returns the value of the item at the given zero-based index.

Creating a new SortedDict