[PATCH] D56341: [python] Make the collections import future-proof
Jakub Stasiak via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 4 16:38:05 PST 2019
jstasiak created this revision.
jstasiak added reviewers: mgorny, michaelplatings, serge-sans-paille.
Herald added subscribers: cfe-commits, arphaman.
On Python 3.7 the old code raises a warning:
DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
class ArgumentsIterator(collections.Sequence):
On Python 3.8 it wouldn't work anymore.
Repository:
rC Clang
https://reviews.llvm.org/D56341
Files:
bindings/python/clang/cindex.py
Index: bindings/python/clang/cindex.py
===================================================================
--- bindings/python/clang/cindex.py
+++ bindings/python/clang/cindex.py
@@ -64,7 +64,6 @@
# o implement additional SourceLocation, SourceRange, and File methods.
from ctypes import *
-import collections
import clang.enumerations
@@ -123,6 +122,14 @@
def b(x):
return x
+# Importing ABC-s directly from collections is deprecated since Python 3.7,
+# will stop working in Python 3.8.
+# See: https://docs.python.org/dev/whatsnew/3.7.html#id3
+if sys.version_info[:2] >= (3, 7):
+ from collections import abc as collections_abc
+else:
+ import collections as collections_abc
+
# We only support PathLike objects on Python version with os.fspath present
# to be consistent with the Python standard library. On older Python versions
# we only support strings and we have dummy fspath to just pass them through.
@@ -2181,7 +2188,7 @@
The returned object is iterable and indexable. Each item in the
container is a Type instance.
"""
- class ArgumentsIterator(collections.Sequence):
+ class ArgumentsIterator(collections_abc.Sequence):
def __init__(self, parent):
self.parent = parent
self.length = None
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56341.180339.patch
Type: text/x-patch
Size: 1325 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190105/c397b385/attachment.bin>
More information about the cfe-commits
mailing list