diff options
| author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2019-12-23 10:21:19 +0000 |
|---|---|---|
| committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2019-12-23 10:21:19 +0000 |
| commit | 9d01f14e3e6e5b2056e7d7f41372cdde80bc8b10 (patch) | |
| tree | 62476c0d85529c6b0a43c51028b023f37bfd5080 /docutils | |
| parent | e96e2a66f4d53bd44e26a6ad2109f8c7177987cd (diff) | |
| download | docutils-9d01f14e3e6e5b2056e7d7f41372cdde80bc8b10.tar.gz | |
Extend _traversal_list auxiliary class.
The return value of node.traverse will change to an iterator in future.
The auxiliary class giving a FutureWarning was missing
functions used in Sphinx < 2.3.0.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@8445 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils')
| -rw-r--r-- | docutils/docutils/nodes.py | 45 |
1 files changed, 38 insertions, 7 deletions
diff --git a/docutils/docutils/nodes.py b/docutils/docutils/nodes.py index 164126a1b..2e84c74cf 100644 --- a/docutils/docutils/nodes.py +++ b/docutils/docutils/nodes.py @@ -37,17 +37,14 @@ if sys.version_info >= (3, 0): class _traversal_list(): # auxiliary class to report a FutureWarning + msg = ("\n The iterable returned by Node.traverse()" + "\n will become an iterator instead of a list in " + "Docutils > 0.16.") def __init__(self, iterable): self.nodes = list(iterable) - def __getattr__(self, name): - msg = ("The iterable returned by Node.traverse()\n " - "will become an iterator instead of a list in " - "Docutils > 0.16.") - warnings.warn(msg, FutureWarning, stacklevel=2) - return getattr(self.nodes, name) - + # iterating is not affected from the future change: def __iter__(self): return iter(self.nodes) @@ -55,6 +52,40 @@ class _traversal_list(): # used in Python 2.7 when typecasting to `list` or `tuple` return len(self.nodes) + # other methods give a FutureWarning: + + def __getattr__(self, name): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return getattr(self.nodes, name) + + def __getitem__(self, i): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes[i] + + def __getslice__(self, i, j): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes[i:j] + + def __reversed__(self): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes.__reversed__() + + def append(self, object): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes.append(object) + + def extend(self, iterable): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes.extend(iterable) + + def pop(self): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes.pop() + + def reverse(self): + warnings.warn(self.msg, FutureWarning, stacklevel=2) + return self.nodes.reverse() + # ============================== # Functional Node Base Classes |
