$89 GRAYBYTE WORDPRESS FILE MANAGER $98

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 84.32.84.45 | ADMIN IP 216.73.216.215
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python311/lib/python3.11/site-packages/typish/functions/

HOME
Current File : /opt/alt/python311/lib/python3.11/site-packages/typish/functions//_get_origin.py
import typing
from collections import deque, defaultdict
from collections.abc import Set
from inspect import isclass

from typish.functions._is_from_typing import is_from_typing


def get_origin(t: type) -> type:
    """
    Return the origin of the given (generic) type. For example, for
    ``t=List[str]``, the result would be ``list``.
    :param t: the type of which the origin is to be found.
    :return: the origin of ``t`` or ``t`` if it is not generic.
    """
    from typish.functions._get_simple_name import get_simple_name

    simple_name = get_simple_name(t)
    result = _type_per_alias.get(simple_name, None)
    if isclass(t) and not is_from_typing(t):
        # Get the origin in case of a parameterized generic.
        result = getattr(t, '__origin__', t)
    elif not result:
        result = getattr(typing, simple_name, t)
    return result


_type_per_alias = {
    'List': list,
    'Tuple': tuple,
    'Dict': dict,
    'Set': set,
    'FrozenSet': frozenset,
    'Deque': deque,
    'DefaultDict': defaultdict,
    'Type': type,
    'AbstractSet': Set,
    'Optional': typing.Union,
}

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
8 May 2024 6.34 PM
root / root
0755
__pycache__
--
8 May 2024 6.34 PM
root / root
0755
__init__.py
0 KB
8 May 2024 6.34 PM
root / root
0644
_common_ancestor.py
1.146 KB
8 May 2024 6.34 PM
root / root
0644
_get_alias.py
1.206 KB
8 May 2024 6.34 PM
root / root
0644
_get_args.py
0.421 KB
8 May 2024 6.34 PM
root / root
0644
_get_mro.py
0.919 KB
8 May 2024 6.34 PM
root / root
0644
_get_origin.py
1.126 KB
8 May 2024 6.34 PM
root / root
0644
_get_simple_name.py
0.54 KB
8 May 2024 6.34 PM
root / root
0644
_get_type.py
4.482 KB
8 May 2024 6.34 PM
root / root
0644
_get_type_hints_of_callable.py
1.595 KB
8 May 2024 6.34 PM
root / root
0644
_instance_of.py
1.497 KB
8 May 2024 6.34 PM
root / root
0644
_is_from_typing.py
0.247 KB
8 May 2024 6.34 PM
root / root
0644
_is_optional_type.py
0.633 KB
8 May 2024 6.34 PM
root / root
0644
_is_type_annotation.py
0.855 KB
8 May 2024 6.34 PM
root / root
0644
_subclass_of.py
5.729 KB
8 May 2024 6.34 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF