diff options
author | Anthon van der Neut <anthon@mnt.org> | 2016-05-02 08:50:15 +0200 |
---|---|---|
committer | Anthon van der Neut <anthon@mnt.org> | 2016-05-02 08:50:15 +0200 |
commit | 4fa9ad23e69dcea31fe1b3dc15dc3cc1510b797c (patch) | |
tree | cef93d3c5c2c9e40f58360df87958e3d8b8175fa /compat.py | |
parent | ad69246c90b178e99a752769ee4ac70dd4dedb26 (diff) | |
download | ruamel.yaml-4fa9ad23e69dcea31fe1b3dc15dc3cc1510b797c.tar.gz |
allow insert in CommentedMap (Py3) and add comment0.11.11
The insert() would only be available for CommentedMap on Py2 (thanks to
ruamel.ordereddict). The standard library lacks this functionality.
The method was added in the compatibility layer, and on CommentedMap
the optional comment parameter allows directly setting an end-of-line
comment on the inserted key.
Diffstat (limited to 'compat.py')
-rw-r--r-- | compat.py | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -18,7 +18,20 @@ except: # to get the right name import ... as ordereddict doesn't do that class ordereddict(OrderedDict): - pass + if not hasattr(OrderedDict, 'insert'): + def insert(self, pos, key, value): + if pos >= len(self): + self[key] = value + return + od = ordereddict() + od.update(self) + for k in od: + del self[k] + for index, old_key in enumerate(od): + if pos == index: + self[key] = value + self[old_key] = od[old_key] + PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 |