PyInventory/pyproject.toml

229 wiersze
7.0 KiB
TOML

[tool.poetry]
name = "PyInventory"
version = "0.18.0rc1"
description = "Web based management to catalog things including state and location etc. using Python/Django."
authors = [
"Jens Diemer <PyInventory@jensdiemer.de>",
]
maintainers = [
"Jens Diemer <PyInventory@jensdiemer.de>",
]
homepage = "https://github.com/jedie/PyInventory"
packages = [
{ include = "inventory", from = "src" },
{ include = "inventory_project", from = "src" },
]
keywords=['inventory','django']
classifiers = [
# http://pypi.python.org/pypi?%3Aaction=list_classifiers
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3 :: Only",
'Framework :: Django',
"Topic :: Database :: Front-Ends",
"Topic :: Documentation",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Internet :: WWW/HTTP :: Site Management",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Operating System :: OS Independent",
]
include = ['AUTHORS', 'LICENSE']
license = "GPL-3.0-or-later"
readme = 'README.md'
[tool.poetry.urls]
"Bug Tracker" = "https://github.com/jedie/PyInventory/issues"
[tool.poetry.dependencies]
python = ">=3.9,<4.0.0" # Stay with 3.9 until YunoHost used >=Debian 11 (Bullseye)
django = "<4.1" # FIXME: https://github.com/jedie/django-processinfo/issues/19
colorlog = "*" # https://github.com/borntyping/python-colorlog
gunicorn = "*" # https://github.com/benoimyproject.wsgitc/gunicorn
django-processinfo = "*" # https://github.com/jedie/django-processinfo/
django-debug-toolbar = "*" # http://django-debug-toolbar.readthedocs.io/en/stable/changes.html
django-import-export = "*" # https://github.com/django-import-export/django-import-export
django-dbbackup = "*" # https://github.com/django-dbbackup/django-dbbackup
django-tools = "*" # https://github.com/jedie/django-tools/
django-reversion-compare = "*" # https://github.com/jedie/django-reversion-compare/
django-ckeditor = "*" # https://github.com/django-ckeditor/django-ckeditor
bx_py_utils = "*" # https://github.com/boxine/bx_py_utils
bx_django_utils = "*" # https://github.com/boxine/bx_django_utils
django-tagulous = "*" # https://github.com/radiac/django-tagulous
django-admin-sortable2 = "*" # https://github.com/jrief/django-admin-sortable2
django-axes = "*" # https://github.com/jazzband/django-axes
requests = "*" # https://github.com/psf/requests
pillow = "*"
docker-compose = { version = "*", optional = true } # install via: poetry install --extras "docker"
psycopg2-binary = { version = "*", optional = true } # install via: poetry install --extras "postgres-binary"
psycopg2 = { version = "*", optional = true } # install via: poetry install --extras "psycopg2-source"
[tool.poetry.extras]
postgres-binary = ["psycopg2-binary"]
psycopg2-source = ["psycopg2"]
[tool.poetry.dev-dependencies]
dev_shell = "*" # https://github.com/jedie/dev-shell
cmd2_ext_test = "*"
pytest = "*"
pytest-randomly = "*"
pytest-cov = "*"
pytest-django = "*"
pytest-playwright = "*" # https://playwright.dev/python/docs/test-runners
flynt = "*"
pyupgrade = "*"
model_bakery = "*" # https://github.com/model-bakers/model_bakery
beautifulsoup4 = "*"
lxml = "*"
requests-mock = "*"
tox = "*" # https://github.com/tox-dev/tox
coveralls = "*" # http://github.com/TheKevJames/coveralls-python
darker = "*" # https://github.com/akaihola/pytest-darker
isort = "*" # https://github.com/pycqa/isort
flake8 = "*" # https://github.com/pycqa/flake8
EditorConfig = "*" # https://github.com/editorconfig/editorconfig-core-py
safety = "*" # https://github.com/pyupio/safety
mypy = "*" # https://github.com/python/mypy
tomli = "*" # https://github.com/hukkin/tomli
packaging = "*" # https://github.com/pypa/packaging
poetry-publish = "*" # https://github.com/jedie/poetry-publish
[tool.poetry.scripts]
devshell = 'inventory_project.dev_shell:devshell_cmdloop'
run_testserver = 'inventory_project.manage:start_test_server'
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.darker]
src = ['.']
revision = "origin/main..."
line_length = 100
verbose = true
skip_string_normalization = true
diff = false
check = false
stdout = false
isort = true
lint = [
"flake8",
]
log_level = "INFO"
[tool.flynt]
line_length = 100
[tool.isort]
# https://pycqa.github.io/isort/docs/configuration/config_files/#pyprojecttoml-preferred-format
atomic=true
profile='black'
line_length = 100
skip_glob=[".*", "*/htmlcov/*","*/migrations/*","*/volumes/*"]
known_first_party=["inventory","inventory_project","inventory_tests"]
lines_after_imports=2
[tool.coverage.run]
omit = [".*"]
[tool.pytest.ini_options]
# https://docs.pytest.org/en/latest/customize.html#pyproject-toml
minversion = "6.0"
DJANGO_SETTINGS_MODULE="inventory_project.settings.tests"
# Don't overwrite settings.DEBUG:
django_debug_mode="keep"
markers = [
"playwright: marks Playwright tests",
]
norecursedirs = ".* .git __pycache__ coverage* dist htmlcov volumes"
# sometimes helpfull "addopts" arguments:
# -vv
# --verbose
# --capture=no
# --trace-config
# --full-trace
# -p no:warnings
# -m "not playwright"
addopts = """
--ignore-glob=deployment/django/*
--reuse-db
--nomigrations
--cov=.
--cov-report term-missing
--cov-report xml
--no-cov-on-fail
--showlocals
--doctest-modules
--failed-first
--last-failed-no-failures all
--new-first
-p no:randomly
"""
# TODO: --mypy
[tool.tox]
# https://tox.readthedocs.io/en/latest/example/basic.html#pyproject-toml-tox-legacy-ini
legacy_tox_ini = """
[tox]
isolated_build = True
envlist = py{39,310,311}
skip_missing_interpreters = True
[testenv]
passenv = *
whitelist_externals = poetry
commands =
python --version
poetry run django-admin --version
python devshell.py pytest
"""
[tool.mypy]
warn_unused_configs = true
ignore_missing_imports = true
allow_redefinition = true # https://github.com/python/mypy/issues/7165
show_error_codes = true
plugins = []
exclude = ['.venv', 'tests']
[manageprojects] # https://github.com/jedie/manageprojects
initial_revision = "b33d693"
initial_date = 2022-12-21T22:53:08+01:00
cookiecutter_template = "https://github.com/jedie/cookiecutter_templates/"
cookiecutter_directory = "poetry-python"
[manageprojects.cookiecutter_context.cookiecutter]
full_name = "Jens Diemer"
github_username = "jedie"
author_email = "PyInventory@jensdiemer.de"
package_name = "PyInventory"
package_version = "0.18.0"
package_description = "Web based management to catalog things including state and location etc. using Python/Django."
package_url = "https://github.com/jedie/PyInventory"
issues_url = "https://github.com/jedie/PyInventory/issues"
license = "GPL-3.0-or-later"
_template = "https://github.com/jedie/cookiecutter_templates/"