cement/pyproject.toml
2024-03-11 19:46:56 +01:00

143 lines
2.7 KiB
TOML

[project]
name = "cement"
description = "Application Framework for Python"
readme = "README.md"
keywords = [
"python",
"module",
"cli framework"
]
authors=[{name = "Data Folk Labs, LLC", email= "derks@datafolklabs.com"}]
license={file="LICENSE"}
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
]
dynamic = ["version", "README"]
requires-python = ">=3.8"
dependencies = [
]
[project.optional-dependencies]
alarm = []
argparse = []
colorlog = ["colorlog"]
configparser = []
daemon = []
docs = ["sphinx", "sphinx_rtd_theme", "guzzle_sphinx_theme", "sphinxcontrib-napoleon"]
dummy = []
generate = ["pyYaml"]
jinja2 = ["jinja2"]
json = []
logging = []
memcached = ["pylibmc"]
mustache = ["pystache"]
plugin = []
print = []
redis = ["redis"]
scrub = []
smtp = []
tabulate = ["tabulate"]
watchdog = ["watchdog"]
yaml = ["pyYaml"]
[project.scripts]
cement = "cement.cli.main:main"
[project.urls]
homepage = "https://builtoncement.com"
documentation = "https://docs.builtoncement.com"
repository = "https://github.com/datafolklabs/cement"
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
###############
# DEVELOPMENT #
###############
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-v --cov-report=term --cov-report=html:coverage-report --capture=sys tests/"
python_files= "test_*.py"
[tool.coverage.report]
precision = 2
[tool.pdm.build]
package-dir = "cement"
includes = [
"cement",
"cement/cli/templates/generate",
"CONTRIBUTORS.md",
"CHANGELOG.md"
]
excludes = ["tests"]
[tool.pdm.version]
source = "scm"
[tool.pdm.dev-dependencies]
dev = [
"pytest>=4.3.1",
"pytest-cov>=2.6.1",
"coverage>=4.5.3",
"mypy>=1.9.0",
"ruff>=0.3.2",
]
[tool.ruff]
line-length = 100
exclude = [
".git",
"cement/cli/templates",
"cement/cli/contrib"
]
[tool.ruff.lint]
extend-select = [
"F", # pyflakes
"E", "W", # pycodestyle
# "N", # pep8-naming - enable later, some variables are not lowercase
]
ignore = [
"E402",
"E713",
"E721",
"E714",
"F841",
"F507"
]
# TBD
# [tool.ruff.format]
# quote-style = "single"
[tool.mypy]
files = [
"cement/",
# "tests/"
]
exclude = """(?x)(
^cement/cli/templates |
^cement/cli/contrib |
^.git/ |
^tests
)"""
# https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls
disallow_untyped_calls = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
# https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling
no_implicit_optional = true
strict_optional = true