[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" authors = [ {name = "Python Code Quality Authority", email = "code-quality@python.org"} ] 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