Files
pipenv/pyproject.toml
Oz Tiram 33f8e7592b chore: drop python3.8
Signed-off-by: Oz Tiram <oz.tiram@gmail.com>
2025-01-22 21:51:50 +01:00

308 lines
7.0 KiB
TOML

[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools>=67",
]
[project]
name = "pipenv"
description = "Python Development Workflow for Humans."
readme = "README.md"
license = { text = "MIT License (MIT)" }
authors = [
{ name = "Pipenv maintainer team", email = "distutils-sig@python.org" },
]
requires-python = ">=3.9"
classifiers = [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
dynamic = [
"version",
]
dependencies = [
"certifi",
"packaging>=22",
"setuptools>=67",
"virtualenv>=20.24.2",
]
optional-dependencies.dev = [
"beautifulsoup4",
"black==24.3.0",
"flake8<4,>=3.3",
"invoke",
"parver",
"sphinx",
"towncrier",
]
optional-dependencies.tests = [
"flaky",
"mock",
"pytest>=5",
"pytest-timeout",
"pytest-xdist",
]
urls.Documentation = "https://pipenv.pypa.io/en/latest/"
urls.Homepage = "https://github.com/pypa/pipenv"
urls.Source = "https://github.com/pypa/pipenv.git"
scripts.pipenv = "pipenv:cli"
scripts.pipenv-resolver = "pipenv.resolver:main"
[tool.setuptools.packages.find]
where = [ "." ]
exclude = [ "tests*", "tests.*", "tasks*", "tasks.*" ]
[tool.setuptools.package-data]
"*" = [ "LICENSE", "NOTICES" ]
"pipenv.patched.safety" = [ "VERSION", "safety-policy-template.yml" ]
"pipenv.patched.pip._vendor.certifi" = [ "*.pem" ]
"pipenv.patched.pip._vendor.requests" = [ "*.pem" ]
"pipenv.patched.pip._vendor.distlib" = [
"t32.exe",
"t64.exe",
"t64-arm.exe",
"w32.exe",
"w64.exe",
"w64-arm.exe",
]
"pipenv.vendor.ruamel" = [ "yaml" ]
[tool.setuptools.dynamic]
version = { attr = "pipenv.__version__" }
## TESTING AND DEVELOPER CONFIGURATION BELOW ##
[tool.black]
line-length = 90
include = '\.pyi?$'
exclude = '''
/(
\.eggs
| \.git
| \.github
| \.hg
| \.mypy_cache
| \.tox
| \.pyre_configuration
| \.venv
| _build
| buck-out
| build
| dist
| pipenv/vendor
| pipenv/patched
| tests/pypi
| tests/test_artifacts
| get-pipenv.py
| pyproject.toml
)
'''
[tool.ruff]
target-version = "py37"
line-length = 137
exclude = [
"get-pipenv.py",
"pipenv/patched/*",
"pipenv/vendor/*",
"tests/fixtures/*",
"tests/pypi/*",
"tests/test_artifacts/*",
]
lint.select = [
"ASYNC",
"B",
"C4",
"C90",
"E",
"F",
"FLY",
"G",
"I",
"ISC",
"PERF",
"PIE",
"PL",
"TID",
"UP",
"W",
"YTT",
]
lint.ignore = [
"B904",
"PIE790",
"PLR0912", # Too many branches
"PLR0913", # Too many arguments
"PLR2004", # Magic numbers
"PLR5501",
"PLW2901",
"TID252", # Relative imports
]
lint.per-file-ignores = { "pipenv/cli/command.py" = [
"F811",
], "pipenv/__init__.py" = [
"E402",
"E501",
], "pipenv/utils/shell.py" = [
"E402",
], "pipenv/utils/internet.py" = [
"E401",
], "pipenv/utils/dependencies.py" = [
"TID252",
], "pipenv/vendor/requirementslib/models/requirements.py" = [
"PLW0603",
], "pipenv/vendor/requirementslib/models/utils.py" = [
"B018",
], "pipenv/project.py" = [
"E501",
"F401",
"I",
"PLC1901",
"S101",
], "pipenv/cli/options.py" = [
"B003",
"PIE800",
"PLW0603",
], "pipenv/utils/processes.py" = [
"E741",
], "pipenv/vendor/vistir/misc.py" = [
"E741",
], "pipenv/vendor/pythonfinder/models/python.py" = [
"B015",
] }
lint.mccabe.max-complexity = 44
lint.pylint.max-args = 9
lint.pylint.max-branches = 20
lint.pylint.max-returns = 38
lint.pylint.max-statements = 155
[tool.pyproject-fmt]
# after how many column width split arrays/dicts into multiple lines, 1 will force always
column_width = 120
# how many spaces use for indentation
indent = 2
# if false will remove unnecessary trailing ``.0``'s from version specifiers
keep_full_version = true
# maximum Python version to use when generating version specifiers
max_supported_python = "3.13"
[tool.pytest.ini_options]
addopts = "-ra --no-cov"
plugins = "xdist"
testpaths = [ "tests" ]
# Add vendor and patched in addition to the default list of ignored dirs
# Additionally, ignore tasks, news, test subdirectories
norecursedirs = [
".*",
"build",
"dist",
"CVS",
"_darcs",
"{arch}",
"*.egg",
"vendor",
"patched",
"news",
"tasks",
"docs",
"tests/test_artifacts",
"tests/pypi",
]
filterwarnings = [ ]
# These are not all the custom markers, but most of the ones with repeat uses
# `pipenv run pytest --markers` will list all markers including these
markers = [
"install: tests having to do with `pipenv install`",
"update: tests having to do with `pipenv update`",
"needs_internet: integration tests that require internet to pass",
"basic: basic pipenv tests grouping",
"dev: tests having to do with dev and dev packages",
"system: related or interacting with the os",
"utils: grouping of pipenv utility functions",
"cli: test grouping that relate to command line like `pipenv --flag args`",
"requirements: tests that save and alter pip requirements",
"run: tests that run or execute python through pipenv",
"script: grouping of tests that execute scripts",
"keep_outdated: when an activity is supposed to keep something out of date",
"lock: tests that interact with pipenv lock",
"markers: pipenv environment markers",
"vcs: tests integration with pipenv and vertsion control systems",
"project: tests with the project object",
"sync: related to `pipenv sync`",
"rrule: relating to rrules (as in recurring time)",
"tzoffset: timezone offset",
"gettz: tests with gettz (get timezone) from dateutil lib",
"tzstr: timezone string",
"extras",
"extended",
"ext: extra non-categorized tests",
]
[tool.coverage.run]
parallel = true
[tool.towncrier]
package = "pipenv"
filename = "CHANGELOG.md"
issue_format = "`#{issue} <https://github.com/pypa/pipenv/issues/{issue}>`_"
directory = "news/"
title_format = "{version} ({project_date})"
template = "news/towncrier_template.rst"
[[tool.towncrier.type]]
directory = "feature"
name = "Features & Improvements"
showcontent = true
[[tool.towncrier.type]]
directory = "behavior"
name = "Behavior Changes"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug Fixes"
showcontent = true
[[tool.towncrier.type]]
directory = "vendor"
name = "Vendored Libraries"
showcontent = true
[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true
[[tool.towncrier.type]]
directory = "trivial"
name = "Trivial Changes"
showcontent = false
[[tool.towncrier.type]]
directory = "removal"
name = "Removals and Deprecations"
showcontent = true
[[tool.towncrier.type]]
directory = "process"
name = "Relates to dev process changes"
showcontent = true
[tool.mypy]
ignore_missing_imports = true
follow_imports = "skip"
html_report = "mypyhtml"
python_version = "3.7"
mypy_path = "typeshed/pyi:typeshed/imports"