@@ -16,6 +16,13 @@ classifiers = [
1616]
1717readme = { file = " README.md" , content-type = " text/markdown" }
1818
19+ [project .urls ]
20+ repository = " https://github.com/Cyber-Syntax/AutoTarCompress"
21+ issues = " https://github.com/Cyber-Syntax/AutoTarCompress/issues"
22+ changelog = " https://github.com/Cyber-Syntax/AutoTarCompress/blob/main/CHANGELOG.md"
23+ funding = " https://github.com/sponsors/Cyber-Syntax"
24+ documentation = " https://github.com/Cyber-Syntax/AutoTarCompress#readme"
25+
1926[project .scripts ]
2027autotarcompress = " autotarcompress.main:main"
2128
@@ -32,22 +39,30 @@ managed = true
3239required-environments = [" sys_platform == 'linux'" ]
3340
3441[tool .setuptools .packages .find ]
35- where = [" . " ]
42+ where = [" src " ]
3643include = [" autotarcompress*" ]
37- exclude = [" autocomplete*" , " tests*" , " scripts*" , " docs*" , " examples*" ]
38-
3944[tool .pytest .ini_options ]
40- addopts = [" -vq " ]
45+ addopts = [" --import-mode=importlib " ]
4146testpaths = [" tests" ]
4247python_files = " test_*.py"
4348python_classes = " Test*"
4449python_functions = " test_*"
45- pythonpath = [" ." , " autotarcompress" ]
50+ pythonpath = [" src" ]
51+ log_cli = false
52+ log_cli_level = " INFO"
53+ log_file_level = " DEBUG"
54+ log_cli_format = " %(asctime)s - %(name)s - %(levelname)s - %(message)s"
55+ log_cli_date_format = " %H:%M:%S"
4656markers = [
4757 " slow: marks tests as slow (deselect with '-m \" not slow\" ')" ,
4858 " integration: marks tests as integration tests (deselect with '-m \" not integration\" ')" ,
59+ " network: marks tests that make network requests to external services" ,
60+ " e2e: marks end-to-end integration tests" ,
4961]
5062
63+ [tool .pytest_env ]
64+ AutoTarCompress_LOG_DIR = { value = " /tmp/pytest-of-{USER}-logs/autotarcompress" , transform = true }
65+
5166[tool .ruff ]
5267line-length = 79
5368indent-width = 4
@@ -129,6 +144,10 @@ lines-after-imports = -1
129144lines-between-types = 0
130145
131146[tool .ruff .lint .per-file-ignores ]
147+ "scripts/*.py" = [
148+ " INP001" , # Scripts are standalone, not part of a package
149+ " T201" , # print() is expected in CLI scripts
150+ ]
132151"test_*.py" = [
133152 " S101" , # asserts allowed in tests...
134153 " ARG" , # Unused function args -> fixtures nevertheless are functionally relevant...
@@ -141,6 +160,13 @@ lines-between-types = 0
141160# Use Google-style docstrings.
142161convention = " google"
143162
163+ [tool .coverage .paths ]
164+ source = [" autotarcompress" ]
165+
166+ [tool .coverage .run ]
167+ source = [" src/autotarcompress" ]
168+ omit = [" tests/*" , " scripts/*" , " **/__pycache__/*" ]
169+
144170[tool .mypy ]
145171warn_return_any = true
146172warn_unused_configs = true
0 commit comments