[build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" [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.mypy] ignore_missing_imports = true follow_imports = "skip" html_report = "mypyhtml" python_version = "3.7" mypy_path = "typeshed/pyi:typeshed/imports" [tool.pytest.ini_options] addopts = "-ra" plugins = "xdist" testpaths = ["tests"] # Add vendor and patched in addition to the default list of ignored dirs # Additionally, ignore tasks, news, test subdirectories and peeps directory norecursedirs = [ ".*", "build", "dist", "CVS", "_darcs", "{arch}", "*.egg", "vendor", "patched", "news", "tasks", "docs", "tests/test_artifacts", "tests/pypi", "peeps", ] filterwarnings = [ "ignore::DeprecationWarning", "ignore::PendingDeprecationWarning", ] # These are not all the custom markers, but most of the ones with repeat uses # `pipenv run pytest --markers` will list all markers inlcuding 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.ruff] exclude = [ "pipenv/patched/*", "pipenv/vendor/*", ] select = [ "ASYNC", "B", "C9", "E", "F", "FLY", "G", "I", "ISC", "PIE", "PL", "TID", "UP", "W", "YTT" ] ignore = [ "B904", "PIE790", "PLR5501", "PLW2901", ] line-length = 137 target-version = "py37" [tool.ruff.mccabe] max-complexity = 44 [tool.ruff.pylint] allow-magic-value-types = ["int", "str"] max-args = 20 max-branches = 38 max-returns = 9 max-statements = 155 [tool.ruff.per-file-ignores] "docs/conf.py" = ["E402", "E501"] "get-pipenv.py" = ["E402"] "pipenv/__init__.py" = ["E401"] "pipenv/cli/command.py" = ["TID252"] "pipenv/utils/internet.py" = ["PLW0603"] "pipenv/utils/resolver.py" = ["B018"] "tests/*" = ["E501", "F401", "I", "PLC1901", "S101"] "tests/integration/conftest.py" = ["B003", "PIE800", "PLW0603"] "tests/integration/test_pipenv.py" = ["E741"] "tests/integration/test_requirements.py" = ["E741"] "tests/unit/test_funktools.py" = ["B015"] "tests/unit/test_utils.py" = ["F811"] [tool.towncrier] package = "pipenv" filename = "CHANGELOG.rst" issue_format = "`#{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