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
|
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "flatdict"
description = "Python module for interacting with nested dicts as a single level dict with delimited keys."
readme = "README.md"
license = "BSD-3-Clause"
requires-python = ">=3.10"
dynamic = ["version"]
authors = [{name = "Gavin M. Roy", email = "gavinmroy@gmail.com"}]
classifiers = [
"Topic :: Software Development :: Libraries",
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"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",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
[dependency-groups]
dev = [
"coverage[toml]",
"pytest",
"ruff",
]
[project.urls]
Homepage = "https://github.com/gmr/flatdict"
Documentation = "https://flatdict.readthedocs.io"
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.hooks.vcs]
version-file = "flatdict/_version.py"
[tool.ruff]
line-length = 79
target-version = "py310"
exclude = ["flatdict/_version.py"]
[tool.ruff.format]
quote-style = "single"
[tool.ruff.lint]
select = [
"BLE", # flake8-blind-except
"C4", # flake8-comprehensions
"C90", # mccabe
"E", "W", # pycodestyle
"F", # pyflakes
"G", # flake8-logging-format
"I", # isort
"N", # pep8-naming
"Q", # flake8-quotes
"S", # flake8-bandit
"ASYNC", # flake8-async
"B", # flake8-bugbear
"DTZ", # flake8-datetimez
"FURB", # refurb
"RUF", # ruff-specific
"T20", # flake8-print
"UP", # pyupgrade
]
flake8-quotes = {inline-quotes = "single"}
[tool.ruff.lint.per-file-ignores]
"tests.py" = ["S301", "S311"]
[tool.ruff.lint.isort]
known-first-party = ["flatdict"]
[tool.pytest.ini_options]
testpaths = ["."]
python_files = ["tests.py"]
[tool.coverage.run]
branch = true
command_line = "-m pytest"
[tool.coverage.report]
show_missing = true
omit = ["tests.py"]
[tool.coverage.html]
directory = "build/coverage"
[tool.coverage.xml]
output = "build/coverage.xml"
|