Skip to content

Commit

Permalink
🐛 Fix collections.abc deprecation warning for py 3.8
Browse files Browse the repository at this point in the history
  • Loading branch information
T4rk1n committed Feb 1, 2019
1 parent c9b392d commit 898ac22
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
8 changes: 8 additions & 0 deletions dash/_utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import uuid
import collections
import six


def interpolate_str(template, **data):
Expand Down Expand Up @@ -40,6 +42,12 @@ def get_asset_path(
])


def patch_collections_abc(member):
if six.PY2:
return getattr(collections, member)
return getattr(collections.abc, member)


class AttributeDict(dict):
"""
Dictionary subclass enabling attribute lookup/assignment of keys/values.
Expand Down
7 changes: 4 additions & 3 deletions dash/dash.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@
from ._utils import interpolate_str as _interpolate
from ._utils import format_tag as _format_tag
from ._utils import generate_hash as _generate_hash
from . import _watch
from ._utils import get_asset_path as _get_asset_path
from ._utils import patch_collections_abc as _patch_collections_abc
from . import _watch
from . import _configs


Expand Down Expand Up @@ -275,7 +276,7 @@ def layout(self):
return self._layout

def _layout_value(self):
if isinstance(self._layout, collections.Callable):
if isinstance(self._layout, _patch_collections_abc('Callable')):
self._cached_layout = self._layout()
else:
self._cached_layout = self._layout
Expand All @@ -284,7 +285,7 @@ def _layout_value(self):
@layout.setter
def layout(self, value):
if (not isinstance(value, Component) and
not isinstance(value, collections.Callable)):
not isinstance(value, _patch_collections_abc('Callable'))):
raise exceptions.NoLayoutException(
''
'Layout must be a dash component '
Expand Down
4 changes: 3 additions & 1 deletion dash/development/base_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import six

from .._utils import patch_collections_abc


# pylint: disable=no-init,too-few-public-methods
class ComponentRegistry:
Expand Down Expand Up @@ -58,7 +60,7 @@ def _check_if_has_indexable_children(item):


@six.add_metaclass(ComponentMeta)
class Component(collections.MutableMapping):
class Component(patch_collections_abc('MutableMapping')):
class _UNDEFINED(object):
def __repr__(self):
return 'undefined'
Expand Down

0 comments on commit 898ac22

Please sign in to comment.