Skip to main content

Backport for type hinting generics in standard collections and union types as X | Y

Project description

future-typing

Tests codecov pypi versions license

Backport for type hinting generics in standard collections and union types as X | Y

(greatly inspired by future-annotations!)

Installation

    pip install future_typing

Usage

Just add this custom source code encoding at the top of your file

# -*- coding: future_typing -*-

and then use | and list[str], dict[str, int], ... as if you were using python 3.10

# -*- coding: future_typing -*-
from typing import Literal


class C:
    @staticmethod
    def g(t: tuple[int, ...]) -> tuple[int, ...]:
        return t


def f(a: list[str] | dict[str, str], b: Literal['pika'] | None = None) -> type[C]:
    x: set[str] = set(a)
    t: tuple[int, ...] = (1, 2)
    print(f'it works! a: {a!r}, b: {b!r}')
    return C


f(['a', 'b'], 'pika')
$ python3.8 pika.py
it works! a: ['a', 'b'], b: 'pika'

$ mypy pika.py
Success: no issues found in 1 source file

See transformed source

$ python3.8 future_typing.py pika.py
# -*- coding: utf-8 -*-
import typing as typing___
from typing import Literal


class C :
    @staticmethod
    def g (t :typing___.Tuple [int ,...])->typing___.Tuple [int ,...]:
        return t


def f (a :typing___.Union [typing___.List [str ],typing___.Dict [str ,str ]],b :typing___.Union [Literal ['pika'],None ]=None )->typing___.Type [C ]:
    x :typing___.Set [str ]=set (a )
    t :typing___.Tuple [int ,...]=(1 ,2 )
    print (f'it works! a: {a!r}, b: {b!r}')
    return C


f (['a','b'],'pika')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

future_typing-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

future_typing-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file future_typing-0.1.0.tar.gz.

File metadata

  • Download URL: future_typing-0.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.2

File hashes

Hashes for future_typing-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e5c19fa809a298b9647cfda31babb31752cff92f9df7e9f47534bdb740aa5073
MD5 390f44d6e9d73b98de57275df90ba85f
BLAKE2b-256 e8de84c1ac502b361fe62963d77117e70f90152c3ded992aa3e15ffa6fa1809e

See more details on using hashes here.

File details

Details for the file future_typing-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: future_typing-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.2

File hashes

Hashes for future_typing-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dddee6b3e9d6fd763b0ae9fce632f36dfae0c2641473f546a68a15a7539ee94c
MD5 b9ca8e6bc3775a4bbe1957af7668eba1
BLAKE2b-256 df6ac125d5fa873028f6f01fe6343e6240866439ad299b6bce821321cca42f3e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page