1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
# Build system requirements.
[build-system]
requires = ["flit_core >=3.11,<4"]
build-backend = "flit_core.buildapi"
# Project metadata
[project]
name = "typing_extensions"
version = "4.15.0"
description = "Backported and Experimental Type Hints for Python 3.9+"
readme = "README.md"
requires-python = ">=3.9"
license = "PSF-2.0"
license-files = ["LICENSE"]
keywords = [
"annotations",
"backport",
"checker",
"checking",
"function",
"hinting",
"hints",
"type",
"typechecking",
"typehinting",
"typehints",
"typing",
]
# Classifiers list: https://pypi.org/classifiers/
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Software Development",
]
[project.urls]
Home = "https://github.com/python/typing_extensions"
Repository = "https://github.com/python/typing_extensions"
Changes = "https://github.com/python/typing_extensions/blob/main/CHANGELOG.md"
Documentation = "https://typing-extensions.readthedocs.io/"
"Bug Tracker" = "https://github.com/python/typing_extensions/issues"
"Q & A" = "https://github.com/python/typing/discussions"
# Project metadata -- authors. Flit stores this as a list of dicts, so it can't
# be inline above.
[[project.authors]]
name = "Guido van Rossum, Jukka Lehtosalo, Ćukasz Langa, Michael Lee"
email = "levkivskyi@gmail.com"
[tool.flit.sdist]
include = ["CHANGELOG.md", "README.md", "tox.ini", "*/*test*.py"]
exclude = []
[tool.ruff]
line-length = 90
target-version = "py39"
[tool.ruff.lint]
select = [
"B",
"C4",
"E",
"F",
"I",
"ISC001",
"PGH004",
"RUF",
"SIM201",
"SIM202",
"UP",
"W",
]
ignore = [
# Ignore various "modernization" rules that tell you off for importing/using
# deprecated things from the typing module, etc.
"UP006",
"UP007",
"UP013",
"UP014",
"UP019",
"UP035",
"UP038",
"UP045", # X | None instead of Optional[X]
# Not relevant here
"RUF012", # Use ClassVar for mutables
"RUF022", # Unsorted __all__
"RUF023", # Unsorted __slots__
"B903", # Use dataclass / namedtuple
"RUF031", # parentheses for tuples in subscripts
# Ruff doesn't understand the globals() assignment; we test __all__
# directly in test_all_names_in___all__.
"F822",
]
[tool.ruff.lint.per-file-ignores]
"!src/typing_extensions.py" = [
"B018",
"B024",
"C4",
"E302",
"E306",
"E501",
"E701",
# Harmful for tests if applied.
"RUF036", # None not at end of Union
"RUF041", # nested Literal
]
[tool.ruff.lint.isort]
extra-standard-library = ["tomllib"]
known-first-party = ["typing_extensions", "_typed_dict_test_helper"]
[tool.coverage.report]
fail_under = 96
show_missing = true
# Omit files that are created in temporary directories during tests.
# If not explicitly omitted they will result in warnings in the report.
omit = ["inspect*", "ann*"]
ignore_errors = true
exclude_also = [
# Exclude placeholder function and class bodies.
'^\s*((async )?def|class) .*:\n\s*(pass|raise NotImplementedError)',
]
|