forked from OSchip/llvm-project
[python] Make the collections import future-proof
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. Commited on behalf of Jakub Stasiak. Differential Revision: https://reviews.llvm.org/D56341 llvm-svn: 350467
This commit is contained in:
parent
964f816dba
commit
e8775ad169
|
@ -64,7 +64,6 @@ from __future__ import absolute_import, division, print_function
|
|||
# o implement additional SourceLocation, SourceRange, and File methods.
|
||||
|
||||
from ctypes import *
|
||||
import collections
|
||||
|
||||
import clang.enumerations
|
||||
|
||||
|
@ -123,6 +122,14 @@ elif sys.version_info[0] == 2:
|
|||
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 @@ class Type(Structure):
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue