network_inventory/pyproject.toml

89 lines
2.1 KiB
TOML

[project]
description = "A Django application designed to track IT inventory of multiple customers."
authors = [
{name = "Andreas Zweili", email = "andreas@zweili.ch"},
]
dependencies = [
"Django>=4.1.3",
"django-crispy-forms>=1.14,<2.0.0", # version 2 breaks tests
"django-filter>=23.2",
"django-floppyforms>=1.9.0",
"django-guardian>=2.4.0",
"django-htmx>=1.16.0",
"django-model-utils>=4.3.1",
"django-nested-admin>=4.0.2",
"django-tables2>=2.4.1,<2.6.0", # version 2.6 breaks tests
"gunicorn>=21.2.0",
"psycopg2-binary>=2.9.7",
"PyYAML>=6.0.1",
"setuptools>=68.1.2",
]
requires-python = ">=3.10"
license = {text = "GPLv3+"}
classifiers = [
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
]
[tool.pylint]
max-line-length = 88
load-plugins = [
"pylint_django",
]
[tool.mypy]
exclude = [
"tests/",
]
plugins = ["mypy_django_plugin.main"]
mypy_path = "./src"
# Start off with these
warn_unused_configs = true
warn_redundant_casts = true
warn_unused_ignores = true
# Getting these passing should be easy
strict_equality = true
strict_concatenate = true
# Strongly recommend enabling this one as soon as you can
#check_untyped_defs = true
# These shouldn't be too much additional work, but may be tricky to
# get passing if you use a lot of untyped libraries
#disallow_subclassing_any = true
#disallow_untyped_decorators = true
#disallow_any_generics = true
[tool.django-stubs]
django_settings_module = "network_inventory.settings.local"
[[tool.mypy.overrides]]
module = [
"nested_admin.*",
"django_tables2.*",
"floppyforms.*",
"django_filters.*",
"crispy_forms.*",
"mixer.*",
"guardian.*",
]
ignore_missing_imports = true
[tool.pdm.dev-dependencies]
linting = [
"black>=23.7.0",
"django-stubs>=4.2.3",
"mypy>=1.5.1",
"pylint>=2.17.5",
"pylint-django>=2.5.3",
]
test = [
"coverage>=7.3.0",
"mixer>=7.2.2",
"pytest>=7.4.0",
"pytest-cov>=4.1.0",
"pytest-django>=4.5.2",
"pytest-xdist>=3.3.1",
"python-lsp-server>=1.7.4",
]