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 100 101 102 103 104 105 106 107 108
|
[build-system]
requires = ["setuptools"]
build-backend = 'setuptools.build_meta'
[project]
name = "cron_descriptor"
license = "MIT"
dynamic = ["version"]
requires-python = ">= 3.9"
description = "A Python library that converts cron expressions into human readable strings."
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Environment :: Console",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development",
]
dependencies = [
"typing_extensions"
]
[project.optional-dependencies]
dev = [
"ruff",
"mypy",
"polib"
]
test = ["pytest"]
[project.readme]
file = "README.md"
content-type = "text/markdown"
[[project.authors]]
name = "Adam Schubert"
email = "adam.schubert@sg1-game.net"
[project.urls]
Homepage = "https://github.com/Salamek/cron-descriptor"
[tool.setuptools.dynamic]
version = {attr = "cron_descriptor.__version__"}
[tool.setuptools.packages.find]
include = ["cron_descriptor", "cron_descriptor*"]
[tool.setuptools.package-data]
"cron_descriptor" = ["locale/*.mo"]
[tool.ruff]
line-length = 200
target-version = "py39"
[tool.ruff.lint]
select = ["ALL"]
ignore = ["N999", "D"] # Invalid module name GetText instead of get_text, comments
[tool.ruff.lint.mccabe]
max-complexity = 20
[tool.ruff.lint.pylint]
allow-magic-value-types = ["int", "str"]
max-args = 8
max-branches = 16
max-returns = 10
[tool.ruff.lint.per-file-ignores]
"cron_descriptor/__main__.py" = ["T201"] # print in code
"tests/*" = ["S101"] # Use of assert detected
"tests/test_import.py" = ["PLC0415"] # Top level import
"examples/crontabReader.py" = ["T201", "INP001"] # print in code, not a package
"tools/resx2po.py" = ["S314", "INP001"] # xml parse untrusted and not a package
"tools/compilepos.py" = ["INP001"] # xml parse untrusted and not a package
"cron_descriptor/ExpressionValidator.py" = ["PLR0915", "PLR0912"] # too many statements/branches
"cron_descriptor/Exception.py" = ["N818"] # Deprecated incorrect exception names
[tool.mypy]
files = ["cron_descriptor", "tests"]
python_version = 3.9
ignore_missing_imports = true
strict = true
[tool.pytest.ini_options]
# Tell pytest where to look for tests
testpaths = [
"tests",
]
# Pattern to match test files
python_files = [
"test_*.py",
]
|