[tool.poetry] name = "poetry" version = "1.6.1" description = "Python dependency management and packaging made easy." authors = ["Sébastien Eustace "] maintainers = [ "Arun Babu Neelicattu ", "Bjorn Neergaard ", "Branch Vincent ", "Randy Döring ", "Steph Samson ", "finswimmer ", "Secrus ", ] license = "MIT" readme = "README.md" packages = [{ include = "poetry", from = "src" }] include = [{ path = "tests", format = "sdist" }] homepage = "https://python-poetry.org/" repository = "https://github.com/python-poetry/poetry" documentation = "https://python-poetry.org/docs" keywords = ["packaging", "dependency", "poetry"] classifiers = [ "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries :: Python Modules", ] [tool.poetry.urls] Changelog = "https://python-poetry.org/history/" # Requirements [tool.poetry.dependencies] python = "^3.8" poetry-core = "1.7.0" poetry-plugin-export = "^1.5.0" build = "^0.10.0" cachecontrol = { version = "^0.13.0", extras = ["filecache"] } cleo = "^2.0.0" crashtest = "^0.4.1" dulwich = "^0.21.2" importlib-metadata = { version = ">=4.4", python = "<3.10" } installer = "^0.7.0" # jsonschema 4.18 uses Rust-based libraries which causes issues when building from source jsonschema = ">=4.10.0,<4.18.0" keyring = "^24.0.0" # packaging uses calver, so version is unclamped packaging = ">=20.4" pexpect = "^4.7.0" pkginfo = "^1.9.4" platformdirs = "^3.0.0" pyproject-hooks = "^1.0.0" requests = "^2.26" requests-toolbelt = ">=0.9.1,<2" shellingham = "^1.5" tomli = { version = "^2.0.1", python = "<3.11" } tomlkit = ">=0.11.4,<1.0.0" # trove-classifiers uses calver, so version is unclamped trove-classifiers = ">=2022.5.19" virtualenv = "^20.22.0" xattr = { version = "^0.10.0", markers = "sys_platform == 'darwin'" } [tool.poetry.group.dev.dependencies] pre-commit = ">=2.6" [tool.poetry.group.test.dependencies] deepdiff = "^6.3" httpretty = "^1.0" pytest = "^7.1" pytest-cov = "^4.0" pytest-mock = "^3.9" pytest-randomly = "^3.12" pytest-xdist = { version = "^3.1", extras = ["psutil"] } [tool.poetry.group.typing.dependencies] mypy = ">=1.0" types-jsonschema = ">=4.9.0" types-requests = ">=2.28.8" # only used in github actions [tool.poetry.group.github-actions] optional = true [tool.poetry.group.github-actions.dependencies] pytest-github-actions-annotate-failures = "^0.1.7" [tool.poetry.scripts] poetry = "poetry.console.application:main" [build-system] requires = ["poetry-core>=1.5.0"] build-backend = "poetry.core.masonry.api" [tool.ruff] fix = true unfixable = [ "ERA", # do not autoremove commented out code ] target-version = "py38" line-length = 88 extend-select = [ "B", # flake8-bugbear "C4", # flake8-comprehensions "ERA", # flake8-eradicate/eradicate "I", # isort "N", # pep8-naming "PIE", # flake8-pie "PGH", # pygrep "RUF", # ruff checks "SIM", # flake8-simplify "TCH", # flake8-type-checking "TID", # flake8-tidy-imports "UP", # pyupgrade ] ignore = [ "B904", # use 'raise ... from err' "B905", # use explicit 'strict=' parameter with 'zip()' "N818", # Exception name should be named with an Error suffix ] extend-exclude = [ "docs/*", # External to the project's coding standards "tests/**/fixtures/*", ] [tool.ruff.flake8-tidy-imports] ban-relative-imports = "all" [tool.ruff.isort] force-single-line = true lines-between-types = 1 lines-after-imports = 2 known-first-party = ["poetry"] known-third-party = ["poetry.core"] required-imports = ["from __future__ import annotations"] [tool.ruff.per-file-ignores] "src/poetry/console/*" = ["RUF012"] # Can't annotate properly until new version of Cleo [tool.black] target-version = ['py38'] preview = true force-exclude = ''' .*/setup\.py$ ''' [tool.mypy] files = "src, tests" mypy_path = "src" namespace_packages = true explicit_package_bases = true show_error_codes = true strict = true enable_error_code = [ "ignore-without-code", "redundant-expr", "truthy-bool", ] exclude = [ "tests/fixtures", "tests/masonry/builders/fixtures", "tests/utils/fixtures", ] # use of importlib-metadata backport makes it impossible to satisfy mypy # without some ignores: but we get different sets of ignores at different # python versions. [[tool.mypy.overrides]] module = [ 'poetry.plugins.plugin_manager', 'poetry.repositories.installed_repository', 'poetry.utils.env.site_packages', 'tests.console.commands.self.test_show_plugins', 'tests.helpers', 'tests.repositories.test_installed_repository', ] warn_unused_ignores = false [[tool.mypy.overrides]] module = [ 'deepdiff.*', 'httpretty.*', 'keyring.*', 'pexpect.*', 'requests_toolbelt.*', 'shellingham.*', 'virtualenv.*', 'xattr.*', ] ignore_missing_imports = true [tool.pytest.ini_options] addopts = "-n auto" testpaths = ["tests"] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:" ]