2018-05-21 23:23:21 -04:00
|
|
|
"""Shim class to not have to depend on typing module in prod."""
|
|
|
|
|
import sys
|
|
|
|
|
|
2019-12-09 15:50:20 -05:00
|
|
|
|
2018-05-21 23:23:21 -04:00
|
|
|
class TypingClass(object):
|
|
|
|
|
"""Ignore import errors by getting anything"""
|
|
|
|
|
def __getattr__(self, name):
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# mypy doesn't respect modifying sys.modules
|
|
|
|
|
from typing import * # pylint: disable=wildcard-import, unused-wildcard-import
|
|
|
|
|
# pylint: disable=unused-import
|
|
|
|
|
from typing import Collection, IO # type: ignore
|
|
|
|
|
# pylint: enable=unused-import
|
|
|
|
|
except ImportError:
|
|
|
|
|
sys.modules[__name__] = TypingClass()
|