1# Build system requirements.
2[build-system]
3requires = ["flit_core >=3.4,<4"]
4build-backend = "flit_core.buildapi"
5
6# Project metadata
7[project]
8name = "typing_extensions"
9version = "4.12.2"
10description = "Backported and Experimental Type Hints for Python 3.8+"
11readme = "README.md"
12requires-python = ">=3.8"
13license = { file = "LICENSE" }
14keywords = [
15    "annotations",
16    "backport",
17    "checker",
18    "checking",
19    "function",
20    "hinting",
21    "hints",
22    "type",
23    "typechecking",
24    "typehinting",
25    "typehints",
26    "typing",
27]
28# Classifiers list: https://pypi.org/classifiers/
29classifiers = [
30    "Development Status :: 5 - Production/Stable",
31    "Environment :: Console",
32    "Intended Audience :: Developers",
33    "License :: OSI Approved :: Python Software Foundation License",
34    "Operating System :: OS Independent",
35    "Programming Language :: Python :: 3",
36    "Programming Language :: Python :: 3 :: Only",
37    "Programming Language :: Python :: 3.8",
38    "Programming Language :: Python :: 3.9",
39    "Programming Language :: Python :: 3.10",
40    "Programming Language :: Python :: 3.11",
41    "Programming Language :: Python :: 3.12",
42    "Programming Language :: Python :: 3.13",
43    "Topic :: Software Development",
44]
45
46[project.urls]
47Home = "https://github.com/python/typing_extensions"
48Repository = "https://github.com/python/typing_extensions"
49Changes = "https://github.com/python/typing_extensions/blob/main/CHANGELOG.md"
50Documentation = "https://typing-extensions.readthedocs.io/"
51"Bug Tracker" = "https://github.com/python/typing_extensions/issues"
52"Q & A" = "https://github.com/python/typing/discussions"
53
54# Project metadata -- authors. Flit stores this as a list of dicts, so it can't
55# be inline above.
56[[project.authors]]
57name = "Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee"
58email = "[email protected]"
59
60[tool.flit.sdist]
61include = ["CHANGELOG.md", "README.md", "tox.ini", "*/*test*.py"]
62exclude = []
63
64[tool.ruff]
65line-length = 90
66target-version = "py38"
67
68[tool.ruff.lint]
69select = [
70    "B",
71    "C4",
72    "E",
73    "F",
74    "I",
75    "ISC001",
76    "PGH004",
77    "RUF",
78    "SIM201",
79    "SIM202",
80    "UP",
81    "W",
82]
83
84# Ignore various "modernization" rules that tell you off for importing/using
85# deprecated things from the typing module, etc.
86ignore = ["UP006", "UP007", "UP013", "UP014", "UP019", "UP035", "UP038"]
87
88[tool.ruff.lint.per-file-ignores]
89"!src/typing_extensions.py" = [
90    "B018",
91    "B024",
92    "C4",
93    "E302",
94    "E306",
95    "E501",
96    "E701",
97]
98
99[tool.ruff.lint.isort]
100extra-standard-library = ["tomllib"]
101known-first-party = ["typing_extensions", "_typed_dict_test_helper"]
102