aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/shibokenmodule/support/signature/loader.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/shibokenmodule/support/signature/loader.py')
-rw-r--r--sources/shiboken2/shibokenmodule/support/signature/loader.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/sources/shiboken2/shibokenmodule/support/signature/loader.py b/sources/shiboken2/shibokenmodule/support/signature/loader.py
index 83493e511..170fb0a2a 100644
--- a/sources/shiboken2/shibokenmodule/support/signature/loader.py
+++ b/sources/shiboken2/shibokenmodule/support/signature/loader.py
@@ -59,7 +59,6 @@ import os
import traceback
import types
from contextlib import contextmanager
-from distutils.sysconfig import get_python_lib
"""
A note on the import problem (solved):
@@ -111,6 +110,30 @@ def ensure_import_support():
sys.path.pop(0)
+# patching inspect's formatting to keep the word "typing":
+def formatannotation(annotation, base_module=None):
+ # if getattr(annotation, '__module__', None) == 'typing':
+ # return repr(annotation).replace('typing.', '')
+ if isinstance(annotation, type):
+ if annotation.__module__ in ('builtins', base_module):
+ return annotation.__qualname__
+ return annotation.__module__+'.'+annotation.__qualname__
+ return repr(annotation)
+
+# patching __repr__ to disable the __repr__ of typing.TypeVar:
+"""
+ def __repr__(self):
+ if self.__covariant__:
+ prefix = '+'
+ elif self.__contravariant__:
+ prefix = '-'
+ else:
+ prefix = '~'
+ return prefix + self.__name__
+"""
+def _typevar__repr__(self):
+ return "typing." + self.__name__
+
with ensure_import_support():
# We store all needed modules in signature_loader.
# This way, they are always accessible.
@@ -119,6 +142,7 @@ with ensure_import_support():
if sys.version_info >= (3,):
import typing
import inspect
+ inspect.formatannotation = formatannotation
else:
import inspect
namespace = inspect.__dict__
@@ -129,6 +153,7 @@ with ensure_import_support():
inspect.__doc__ += _doc
# force inspect to find all attributes. See "heuristic" in pydoc.py!
inspect.__all__ = list(x for x in dir(inspect) if not x.startswith("_"))
+ typing.TypeVar.__repr__ = _typevar__repr__
def put_into_loader_package(module, loader=signature_loader):
# Note: the "with" statement hides that we are no longer in a