[tool.poetry]
name = "poetry"
version = "1.2.0-beta.2.dev0"
description = "Python dependency management and packaging made easy."
authors = [
    "Sébastien Eustace <sebastien@eustace.io>"
]
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.build]
generate-setup-file = false

# Requirements
[tool.poetry.dependencies]
python = "^3.7"

poetry-core = "^1.1.0a7"
poetry-plugin-export = "^1.0.2"
cachecontrol = { version = "^0.12.9", extras = ["filecache"] }
cachy = "^0.3.0"
cleo = "^1.0.0a4"
crashtest = "^0.3.0"
entrypoints = "^0.3"
html5lib = "^1.0"
importlib-metadata = { version = ">=1.6.0", python = "<3.8" }
# keyring uses calver, so version is unclamped
keyring = ">=21.2.0"
# packaging uses calver, so version is unclamped
packaging = ">=20.4"
pexpect = "^4.7.0"
pkginfo = "^1.5"
platformdirs = "^2.5.2"
requests = "^2.18"
requests-toolbelt = "^0.9.1"
shellingham = "^1.1"
tomlkit = ">=0.7.0,<1.0.0"
# exclude 20.4.5 - 20.4.6 due to https://github.com/pypa/pip/issues/9953
virtualenv = "(>=20.4.3,<20.4.5 || >=20.4.7)"
urllib3 = "^1.26.0"
dulwich = "^0.20.35"

[tool.poetry.dev-dependencies]
tox = "^3.18"
pytest = "^6.2"
pytest-cov = "^2.8"
pytest-mock = "^3.5"
pytest-sugar = "^0.9"
pre-commit = "^2.6"
deepdiff = "^5.0"
httpretty = "^1.0"
typing-extensions = { version = "^4.0.0", python = "<3.8" }
zipp = { version = "^3.4", python = "<3.8" }
flatdict = "^4.0.1"
mypy = ">=0.950"
types-requests = ">=2.27.11"

[tool.poetry.scripts]
poetry = "poetry.console.application:main"


[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"


[tool.isort]
py_version = 37
profile = "black"
force_single_line = true
combine_as_imports = true
lines_between_types = 1
lines_after_imports = 2
src_paths = ["src", "tests"]
extend_skip = ["setup.py"]


[tool.black]
target-version = ['py37']
preview = true
force-exclude = '''
.*/setup\.py$
'''


[tool.mypy]
files = "src"
show_error_codes = true
strict = true
enable_error_code = ["ignore-without-code"]

# The following whitelist is used to allow for incremental adoption
# of Mypy. Modules should be removed from this whitelist as and when
# their respective type errors have been addressed. No new modules
# should be added to this whitelist.
# see https://github.com/python-poetry/poetry/pull/4510.

[[tool.mypy.overrides]]
module = [
  'poetry.console.commands.init',
  'poetry.inspection.info',
  'poetry.installation.chef',
  'poetry.installation.chooser',
  'poetry.installation.executor',
  'poetry.installation.installer',
  'poetry.installation.pip_installer',
  'poetry.repositories.installed_repository',
  'poetry.utils.env',
]
ignore_errors = true

[[tool.mypy.overrides]]
module = [
  'cachecontrol.*',
  'cachy.*',
  'cleo.*',
  'crashtest.*',
  'entrypoints.*',
  'html5lib.*',
  'jsonschema.*',
  'pexpect.*',
  'poetry.core.*',
  'requests_toolbelt.*',
  'shellingham.*',
]
ignore_missing_imports = true

[tool.coverage.report]
exclude_lines = [
    "pragma: no cover",
    "if TYPE_CHECKING:"
]
