blob: b49ee2f8d875d14e245ed0fc4ae2e5015b0ab0e4 [file] [log] [blame]
[build-system]
requires = ["setuptools>=64.0", "wheel>=0.37.1"]
build-backend = "setuptools.build_meta"
[project]
name = "astroid"
license = {text = "LGPL-2.1-or-later"}
description = "An abstract syntax tree for Python with inference support."
readme = "README.rst"
keywords = ["static code analysis", "python", "abstract syntax tree"]
classifiers = [
"Development Status :: 6 - Mature",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Quality Assurance",
"Topic :: Software Development :: Testing",
]
requires-python = ">=3.7.2"
dependencies = [
"lazy_object_proxy>=1.4.0",
"wrapt>=1.14,<2;python_version>='3.11'",
"wrapt>=1.11,<2;python_version<'3.11'",
"typed-ast>=1.4.0,<2.0;implementation_name=='cpython' and python_version<'3.8'",
"typing-extensions>=4.0.0;python_version<'3.11'",
]
dynamic = ["version"]
[project.urls]
"Docs" = "https://pylint.readthedocs.io/projects/astroid/en/latest/"
"Source Code" = "https://github.com/PyCQA/astroid"
"Bug tracker" = "https://github.com/PyCQA/astroid/issues"
"Discord server" = "https://discord.gg/Egy6P8AMB5"
[tool.setuptools]
license-files = ["LICENSE", "CONTRIBUTORS.txt"] # Keep in sync with setup.cfg
[tool.setuptools.packages.find]
include = ["astroid*"]
[tool.setuptools.dynamic]
version = {attr = "astroid.__pkginfo__.__version__"}
[tool.aliases]
test = "pytest"
[tool.pytest.ini_options]
addopts = '-m "not acceptance"'
python_files = ["*test_*.py"]
testpaths = ["tests"]
filterwarnings = "error"
[tool.isort]
include_trailing_comma = true
known_first_party = ["astroid"]
known_third_party = ["attr", "nose", "numpy", "pytest", "six", "sphinx"]
line_length = 88
multi_line_output = 3
skip_glob = ["tests/testdata"]
[tool.mypy]
enable_error_code = "ignore-without-code"
no_implicit_optional = true
scripts_are_modules = true
show_error_codes = true
warn_redundant_casts = true
[[tool.mypy.overrides]]
# Importlib typeshed stubs do not include the private functions we use
module = [
"_io.*",
"gi.*",
"importlib.*",
"lazy_object_proxy.*",
"nose.*",
"numpy.*",
"pytest",
"setuptools",
"wrapt.*",
]
ignore_missing_imports = true