22requires = [" hatchling" ]
33build-backend = " hatchling.build"
44
5+ [tool .hatch .metadata ]
6+ allow-direct-references = true
7+
8+ [tool .hatch .build ]
9+ include = [" pythonLogs/**/*" ]
10+
11+ [tool .hatch .build .targets .wheel ]
12+ packages = [" pythonLogs" ]
13+
514[project ]
615name = " pythonLogs"
7- version = " 6.0.1 "
16+ version = " 6.0.2 "
817description = " High-performance Python logging library with file rotation and optimized caching for better performance"
18+ urls.Repository = " https://github.com/ddc/pythonLogs"
19+ urls.Homepage = " https://pypi.org/project/pythonLogs"
920license = {text = " MIT" }
1021readme = " README.md"
11- authors = [{name = " Daniel Costa" , email = " danieldcsta@gmail.com" }]
12- maintainers = [{name = " Daniel Costa" }]
22+ authors = [
23+ {name = " Daniel Costa" , email = " danieldcsta@gmail.com" },
24+ ]
25+ maintainers = [
26+ {name = " Daniel Costa" },
27+ ]
1328keywords = [
14- " python3 " , " python-3 " , " python" ,
29+ " python " , " python3 " , " python-3 " ,
1530 " log" , " logging" , " logger" ,
1631 " logutils" , " log-utils" , " pythonLogs"
1732]
@@ -20,6 +35,7 @@ classifiers = [
2035 " Development Status :: 5 - Production/Stable" ,
2136 " License :: OSI Approved :: MIT License" ,
2237 " Programming Language :: Python :: 3" ,
38+ " Programming Language :: Python :: 3.11" ,
2339 " Programming Language :: Python :: 3.12" ,
2440 " Programming Language :: Python :: 3.13" ,
2541 " Programming Language :: Python :: 3.14" ,
@@ -28,52 +44,44 @@ classifiers = [
2844 " Intended Audience :: Developers" ,
2945 " Natural Language :: English" ,
3046]
31- requires-python = " >=3.12 "
47+ requires-python = " >=3.11 "
3248dependencies = [
3349 " pydantic-settings>=2.11.0" ,
3450]
3551
36- [project .urls ]
37- Homepage = " https://pypi.org/project/pythonLogs"
38- Repository = " https://github.com/ddc/pythonLogs"
39-
40- [project .optional-dependencies ]
41- test = [
42- " poethepoet>=0.40.0" ,
52+ [dependency-groups ]
53+ dev = [
4354 " psutil>=7.2.2" ,
44- " pytest>=9.0.2" ,
4555 " pytest-cov>=7.0.0" ,
56+ " poethepoet>=0.41.0" ,
57+ " ruff>=0.15.0" ,
58+ " black>=26.1.0" ,
4659]
4760
48- [tool .hatch .build ]
49- include = [" pythonLogs/**/*" ]
50-
51- [tool .hatch .build .targets .wheel ]
52- packages = [" pythonLogs" ]
53-
5461[tool .poe .tasks ]
55- build = " uv build --wheel"
56- updatedev.shell = " uv lock && uv sync --no-install-project --all-extras"
5762linter.shell = " uv run ruff check --fix . && uv run black ."
58- profile = " uv run python -m cProfile -o cprofile.prof -m pytest"
59- test = " uv run pytest"
63+ profile.sequence = [" linter" , {shell = " uv run python -m cProfile -o cprofile_unit.prof -m pytest --no-cov" }]
64+ test.sequence = [" linter" , {shell = " uv run pytest" }]
65+ updatedev.sequence = [" linter" , {shell = " uv lock --upgrade && uv sync --all-extras --group dev" }]
66+ build.sequence = [" updatedev" , " test" , {shell = " uv build --wheel" }]
6067
6168[tool .pytest .ini_options ]
6269addopts = " -v --cov --cov-report=term --cov-report=xml --junitxml=junit.xml"
6370junit_family = " legacy"
6471testpaths = [" tests" ]
6572markers = [
66- " slow: marks tests as slow (deselect with '-m \" not slow\" ')"
73+ " slow: marks tests as slow (deselect with '-m \" not slow\" ')" ,
6774]
6875
6976[tool .coverage .run ]
7077omit = [
7178 " tests/*" ,
7279 " */__init__.py" ,
73- " */_version.py" ,
7480]
7581
7682[tool .coverage .report ]
83+ show_missing = true
84+ skip_covered = false
7785exclude_lines = [
7886 " pragma: no cover" ,
7987 " def __repr__" ,
@@ -86,31 +94,25 @@ exclude_lines = [
8694 " class .*\\ bProtocol\\ ):" ,
8795 " @(abc\\ .)?abstractmethod" ,
8896]
89- show_missing = true
90- skip_covered = false
9197
9298[tool .black ]
9399line-length = 120
94100skip-string-normalization = true
95101
96102[tool .ruff ]
97103line-length = 120
104+ target-version = " py311"
98105
99106[tool .ruff .lint ]
100- # I - Import sorting and organization
101- # F401 - Detect and remove unused imports
102- select = [" I" , " F401" ]
107+ select = [" E" , " W" , " F" , " I" , " B" , " C4" , " UP" ]
108+ ignore = [" E501" , " E402" , " UP046" , " UP047" ]
109+
110+ [tool .ruff .lint .per-file-ignores ]
111+ "__init__.py" = [" F401" ]
112+ "tests/**/*.py" = [" S101" , " S105" , " S106" , " S311" , " SLF001" , " F841" ]
103113
104114[tool .ruff .lint .isort ]
105115known-first-party = [" pythonLogs" ]
106116force-sort-within-sections = false
107117from-first = false
108118no-sections = true
109-
110- [tool .ruff .lint .per-file-ignores ]
111- # S101 Use of `assert` detected
112- # S105 Possible hardcoded password assigned to variable
113- # S106 Possible hardcoded password assigned to argument
114- # S311 Standard pseudo-random generators are not suitable for cryptographic purposes
115- # SLF001 Private member accessed
116- "tests/**/*.py" = [" S101" , " S105" , " S106" , " S311" , " SLF001" ]
0 commit comments