mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
nmbug-status: Add an OrderedDict stub for Python 2.6
Tomi Ollila and David Bremner (and presumably others) are running Python 2.6 on their nmbug-status boxes, so it makes sense to keep support for that version. This commit adds a really minimal OrderedDict stub (e.g. it doesn't handle key removal), but it gets the job done for Page._get_threads. Once we reach a point where Python 2.6 is no longer important (it's already out of it's security-fix window [1]), we can pull this stub back out. [1]: http://www.python.org/download/releases/2.6.9/
This commit is contained in:
parent
98cb4779c0
commit
c48a12365f
1 changed files with 19 additions and 1 deletions
|
@ -5,7 +5,6 @@
|
|||
# dependencies
|
||||
# - python 2.6 for json
|
||||
# - argparse; either python 2.7, or install separately
|
||||
# - collections.OrderedDict; python 2.7
|
||||
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
@ -30,6 +29,25 @@ _ENCODING = locale.getpreferredencoding() or sys.getdefaultencoding()
|
|||
_PAGES = {}
|
||||
|
||||
|
||||
if not hasattr(collections, 'OrderedDict'): # Python 2.6 or earlier
|
||||
class _OrderedDict (dict):
|
||||
"Just enough of a stub to get through Page._get_threads"
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(_OrderedDict, self).__init__(*args, **kwargs)
|
||||
self._keys = [] # record key order
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
super(_OrderedDict, self).__setitem__(key, value)
|
||||
self._keys.append(key)
|
||||
|
||||
def __values__(self):
|
||||
for key in self._keys:
|
||||
yield self[key]
|
||||
|
||||
|
||||
collections.OrderedDict = _OrderedDict
|
||||
|
||||
|
||||
def read_config(path=None, encoding=None):
|
||||
"Read config from json file"
|
||||
if not encoding:
|
||||
|
|
Loading…
Reference in a new issue