Skip to content
pyproject.toml 2.7 KiB
Newer Older
requires = ["hatchling"]
build-backend = "hatchling.build"
version = "2024.1.20"
description = "A collection of tools for Python"
readme = "README.rst"
license = { text = "MIT" }
authors = [
    { name = "Andreas Kloeckner", email = "inform@tiker.net" },
]
Alexandru Fikl's avatar
Alexandru Fikl committed
requires-python = ">=3.10"
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: Other Audience",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: MIT License",
    "Natural Language :: English",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3 :: Only",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering :: Information Analysis",
    "Topic :: Scientific/Engineering :: Mathematics",
    "Topic :: Scientific/Engineering :: Visualization",
    "Topic :: Software Development :: Libraries",
    "Topic :: Utilities",
]
dependencies = [
Andreas Klöckner's avatar
Andreas Klöckner committed
    # for dataclass_transform with frozen_default
    "typing-extensions>=4.5",
]

[project.optional-dependencies]
numpy = [
siphash = [
    "siphash24>=1.6",
]

[project.urls]
Documentation = "https://documen.tician.de/pytools/"
Homepage = "https://github.com/inducer/pytools/"

[tool.hatch.build.targets.sdist]
exclude = [
  "/.git*",
  "/doc/_build",
  "/.editorconfig",
  "/run-*.sh",
[tool.ruff.lint]
extend-select = [
    "B",   # flake8-bugbear
    "C",   # flake8-comprehensions
    "E",   # pycodestyle
    "F",   # pyflakes
    "G",   # flake8-logging-format
    "I",   # flake8-isort
    "N",   # pep8-naming
    "NPY", # numpy
    "Q",   # flake8-quotes
    "UP",  # pyupgrade
    "RUF", # ruff
    "TC",
]
extend-ignore = [
    "C90",  # McCabe complexity
    "E221", # multiple spaces before operator
    "E226", # missing whitespace around arithmetic operator
    "E402", # module-level import not at top of file
    "UP031", # use f-strings instead of %
    "UP032", # use f-strings instead of .format
[tool.ruff.lint.flake8-quotes]
docstring-quotes = "double"
inline-quotes = "double"
multiline-quotes = "double"

[tool.ruff.lint.isort]
combine-as-imports = true
known-local-folder = [
    "pytools",
]
lines-after-imports = 2
required-imports = ["from __future__ import annotations"]
[tool.ruff.lint.pep8-naming]
extend-ignore-names = ["update_for_*"]


Alexandru Fikl's avatar
Alexandru Fikl committed
python_version = "3.10"
ignore_missing_imports = true
warn_unused_ignores = true
# TODO: enable this at some point
# check_untyped_defs = true

[tool.typos.default]
extend-ignore-re = [
  "(?Rm)^.*(#|//)\\s*spellchecker:\\s*disable-line$"
]