1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools>=77",
]
[project]
name = "flake8-comprehensions"
version = "3.17.0"
description = "A flake8 plugin to help you write better list/set/dict comprehensions."
readme = "README.rst"
keywords = [
"comprehensions",
"dict comprehension",
"flake8",
"list comprehension",
"set comprehension",
]
license = "MIT"
license-files = [ "LICENSE" ]
authors = [
{ name = "Adam Johnson", email = "me@adamj.eu" },
]
requires-python = ">=3.9"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Framework :: Flake8",
"Intended Audience :: Developers",
"Natural Language :: English",
"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 :: 3.14",
"Typing :: Typed",
]
dependencies = [
"flake8>=3,!=3.2",
]
urls = { Changelog = "https://github.com/adamchainz/flake8-comprehensions/blob/main/CHANGELOG.rst", Funding = "https://adamj.eu/books/", Repository = "https://github.com/adamchainz/flake8-comprehensions" }
entry-points."flake8.extension".C4 = "flake8_comprehensions:ComprehensionChecker"
[dependency-groups]
test = [
"pytest",
"pytest-flake8-path",
"pytest-randomly",
]
[tool.ruff]
lint.select = [
# flake8-bugbear
"B",
# flake8-comprehensions
"C4",
# pycodestyle
"E",
# Pyflakes errors
"F",
# isort
"I",
# flake8-simplify
"SIM",
# flake8-tidy-imports
"TID",
# pyupgrade
"UP",
# Pyflakes warnings
"W",
]
lint.ignore = [
# flake8-bugbear opinionated rules
"B9",
# line-too-long
"E501",
# suppressible-exception
"SIM105",
# if-else-block-instead-of-if-exp
"SIM108",
]
lint.extend-safe-fixes = [
# non-pep585-annotation
"UP006",
]
lint.isort.required-imports = [ "from __future__ import annotations" ]
[tool.pyproject-fmt]
max_supported_python = "3.14"
[tool.pytest.ini_options]
addopts = """\
--strict-config
--strict-markers
"""
xfail_strict = true
[tool.mypy]
enable_error_code = [
"ignore-without-code",
"redundant-expr",
"truthy-bool",
]
mypy_path = "src/"
namespace_packages = false
strict = true
warn_unreachable = true
[[tool.mypy.overrides]]
module = "tests.*"
allow_untyped_defs = true
[tool.rstcheck]
report_level = "ERROR"
|