Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_compat.py73 linesDownload Raw Back to psycopg
1"""2compatibility functions for different Python versions3"""4 5# Copyright (C) 2021 The Psycopg Team6 7import sys8import asyncio9from typing import Any, Awaitable, Generator, Optional, Sequence, Union, TypeVar10 11# NOTE: TypeAlias cannot be exported by this module, as pyright special-cases it.12# For this raisin it must be imported directly from typing_extension where used.13# See https://github.com/microsoft/pyright/issues/419714from typing_extensions import TypeAlias15 16if sys.version_info >= (3, 8):17    from typing import Protocol18else:19    from typing_extensions import Protocol20 21T = TypeVar("T")22FutureT: TypeAlias = Union["asyncio.Future[T]", Generator[Any, None, T], Awaitable[T]]23 24if sys.version_info >= (3, 8):25    create_task = asyncio.create_task26    from math import prod27 28else:29 30    def create_task(31        coro: FutureT[T], name: Optional[str] = None32    ) -> "asyncio.Future[T]":33        return asyncio.create_task(coro)34 35    from functools import reduce36 37    def prod(seq: Sequence[int]) -> int:38        return reduce(int.__mul__, seq, 1)39 40 41if sys.version_info >= (3, 9):42    from zoneinfo import ZoneInfo43    from functools import cache44    from collections import Counter, deque as Deque45else:46    from typing import Counter, Deque47    from functools import lru_cache48    from backports.zoneinfo import ZoneInfo49 50    cache = lru_cache(maxsize=None)51 52if sys.version_info >= (3, 10):53    from typing import TypeGuard54else:55    from typing_extensions import TypeGuard56 57if sys.version_info >= (3, 11):58    from typing import LiteralString59else:60    from typing_extensions import LiteralString61 62__all__ = [63    "Counter",64    "Deque",65    "LiteralString",66    "Protocol",67    "TypeGuard",68    "ZoneInfo",69    "cache",70    "create_task",71    "prod",72]73 
codekingpro/portable-devtools · Team Ai