|
1 | | -# Copyright (c) 2010-2018 Benjamin Peterson |
| 1 | +# Copyright (c) 2010-2019 Benjamin Peterson |
2 | 2 | # |
3 | 3 | # Permission is hereby granted, free of charge, to any person obtaining a copy |
4 | 4 | # of this software and associated documentation files (the "Software"), to deal |
|
29 | 29 | import types |
30 | 30 |
|
31 | 31 | __author__ = "Benjamin Peterson <benjamin@python.org>" |
32 | | -__version__ = "1.12.0" |
| 32 | +__version__ = "1.13.0" |
33 | 33 |
|
34 | 34 |
|
35 | 35 | # Useful for very coarse version differentiation. |
@@ -255,8 +255,10 @@ class _MovedItems(_LazyModule): |
255 | 255 | MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), |
256 | 256 | MovedModule("builtins", "__builtin__"), |
257 | 257 | MovedModule("configparser", "ConfigParser"), |
| 258 | + MovedModule("collections_abc", "collections", "collections.abc" if sys.version_info >= (3, 3) else "collections"), |
258 | 259 | MovedModule("copyreg", "copy_reg"), |
259 | 260 | MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), |
| 261 | + MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"), |
260 | 262 | MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"), |
261 | 263 | MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), |
262 | 264 | MovedModule("http_cookies", "Cookie", "http.cookies"), |
@@ -825,7 +827,15 @@ def with_metaclass(meta, *bases): |
825 | 827 | class metaclass(type): |
826 | 828 |
|
827 | 829 | def __new__(cls, name, this_bases, d): |
828 | | - return meta(name, bases, d) |
| 830 | + if sys.version_info[:2] >= (3, 7): |
| 831 | + # This version introduced PEP 560 that requires a bit |
| 832 | + # of extra care (we mimic what is done by __build_class__). |
| 833 | + resolved_bases = types.resolve_bases(bases) |
| 834 | + if resolved_bases is not bases: |
| 835 | + d['__orig_bases__'] = bases |
| 836 | + else: |
| 837 | + resolved_bases = bases |
| 838 | + return meta(name, resolved_bases, d) |
829 | 839 |
|
830 | 840 | @classmethod |
831 | 841 | def __prepare__(cls, name, this_bases): |
|
0 commit comments