Skip to content

Commit

Permalink
♿ Python 3.8-compatible Mapping import
Browse files Browse the repository at this point in the history
DeprecationWarning: Using or importing the ABCs from 'collections'
instead of from 'collections.abc' is deprecated, and in 3.8 it will stop
working
  isinstance(base, collections.Mapping)
  • Loading branch information
tony committed Nov 10, 2018
1 parent e3ffd0b commit 7b54130
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
5 changes: 5 additions & 0 deletions unihan_etl/_compat.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# -*- coding: utf8 -*-
# flake8: noqa

import collections
import sys

PY2 = sys.version_info[0] == 2
Expand All @@ -16,6 +17,8 @@
from urllib import urlretrieve
from itertools import izip

Mapping = collections.Mapping

exec('def reraise(tp, value, tb=None):\n raise tp, value, tb')
else:
unichr = chr
Expand All @@ -28,6 +31,8 @@

izip = zip

Mapping = collections.abc.Mapping

def reraise(tp, value, tb=None):
if value.__traceback__ is not tb:
raise (value.with_traceback(tb))
Expand Down
9 changes: 3 additions & 6 deletions unihan_etl/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import re
import sys

from ._compat import string_types, text_type, unichr
from ._compat import Mapping, string_types, text_type, unichr


def ucn_to_unicode(ucn):
Expand Down Expand Up @@ -98,15 +98,12 @@ def merge_dict(base, additional):
if additional is None:
return base

if not (
isinstance(base, collections.Mapping)
and isinstance(additional, collections.Mapping)
):
if not (isinstance(base, Mapping) and isinstance(additional, Mapping)):
return additional

merged = base
for key, value in additional.items():
if isinstance(value, collections.Mapping):
if isinstance(value, Mapping):
merged[key] = merge_dict(merged.get(key), value)
else:
merged[key] = value
Expand Down

0 comments on commit 7b54130

Please sign in to comment.