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"
716version = " 6.0.2"
817description = " High-performance Python logging library with file rotation and optimized caching for better performance"
9- license = {text = " MIT" }
10- readme = " README.md"
11- authors = [{name = " Daniel Costa" , email = " danieldcsta@gmail.com" }]
12- maintainers = [{name = " Daniel Costa" }]
1318urls.Repository = " https://github.com/ddc/pythonLogs"
1419urls.Homepage = " https://pypi.org/project/pythonLogs"
20+ license = {text = " MIT" }
21+ readme = " README.md"
22+ authors = [
23+ {name = " Daniel Costa" , email = " danieldcsta@gmail.com" },
24+ ]
25+ maintainers = [
26+ {name = " Daniel Costa" },
27+ ]
1528keywords = [
16- " python3 " , " python-3 " , " python" ,
29+ " python " , " python3 " , " python-3 " ,
1730 " log" , " logging" , " logger" ,
1831 " logutils" , " log-utils" , " pythonLogs"
1932]
@@ -22,6 +35,7 @@ classifiers = [
2235 " Development Status :: 5 - Production/Stable" ,
2336 " License :: OSI Approved :: MIT License" ,
2437 " Programming Language :: Python :: 3" ,
38+ " Programming Language :: Python :: 3.11" ,
2539 " Programming Language :: Python :: 3.12" ,
2640 " Programming Language :: Python :: 3.13" ,
2741 " Programming Language :: Python :: 3.14" ,
@@ -30,54 +44,46 @@ classifiers = [
3044 " Intended Audience :: Developers" ,
3145 " Natural Language :: English" ,
3246]
33- requires-python = " >=3.12 "
47+ requires-python = " >=3.11 "
3448dependencies = [
3549 " pydantic-settings>=2.11.0" ,
3650]
3751
3852[dependency-groups ]
39- test = [
53+ dev = [
4054 " psutil>=7.2.2" ,
4155 " pytest>=9.0.2" ,
42- " coverage>=7.13.3" ,
4356 " pytest-cov>=7.0.0" ,
44- ]
45- dev = [
46- {include-group = " test" },
57+ " coverage>=7.13.3" ,
4758 " black>=26.1.0" ,
4859 " poethepoet>=0.40.0" ,
4960 " ruff>=0.15.0" ,
5061]
5162
52- [tool .hatch .build ]
53- include = [" pythonLogs/**/*" ]
54-
55- [tool .hatch .build .targets .wheel ]
56- packages = [" pythonLogs" ]
57-
5863[tool .poe .tasks ]
59- build = " uv build --wheel"
60- updatedev.shell = " uv lock && uv sync --no-install-project --all-groups"
6164linter.shell = " uv run ruff check --fix . && uv run black ."
62- profile = " uv run python -m cProfile -o cprofile .prof -m pytest"
65+ profile = " uv run python -m cProfile -o cprofile_unit .prof -m pytest --no-cov "
6366test = " uv run pytest"
67+ updatedev.sequence = [" linter" , {shell = " uv lock && uv sync --all-extras --group dev" }]
68+ build.sequence = [" updatedev" , {shell = " uv build --wheel" }]
6469
6570[tool .pytest .ini_options ]
6671addopts = " -v --cov --cov-report=term --cov-report=xml --junitxml=junit.xml"
6772junit_family = " legacy"
6873testpaths = [" tests" ]
6974markers = [
70- " slow: marks tests as slow (deselect with '-m \" not slow\" ')"
75+ " slow: marks tests as slow (deselect with '-m \" not slow\" ')" ,
7176]
7277
7378[tool .coverage .run ]
7479omit = [
7580 " tests/*" ,
7681 " */__init__.py" ,
77- " */_version.py" ,
7882]
7983
8084[tool .coverage .report ]
85+ show_missing = true
86+ skip_covered = false
8187exclude_lines = [
8288 " pragma: no cover" ,
8389 " def __repr__" ,
@@ -90,31 +96,25 @@ exclude_lines = [
9096 " class .*\\ bProtocol\\ ):" ,
9197 " @(abc\\ .)?abstractmethod" ,
9298]
93- show_missing = true
94- skip_covered = false
9599
96100[tool .black ]
97101line-length = 120
98102skip-string-normalization = true
99103
100104[tool .ruff ]
101105line-length = 120
106+ target-version = " py311"
102107
103108[tool .ruff .lint ]
104- # I - Import sorting and organization
105- # F401 - Detect and remove unused imports
106- select = [" I" , " F401" ]
109+ select = [" E" , " W" , " F" , " I" , " B" , " C4" , " UP" ]
110+ ignore = [" E501" , " E402" , " UP046" , " UP047" ]
111+
112+ [tool .ruff .lint .per-file-ignores ]
113+ "__init__.py" = [" F401" ]
114+ "tests/**/*.py" = [" S101" , " S105" , " S106" , " S311" , " SLF001" , " F841" ]
107115
108116[tool .ruff .lint .isort ]
109117known-first-party = [" pythonLogs" ]
110118force-sort-within-sections = false
111119from-first = false
112120no-sections = true
113-
114- [tool .ruff .lint .per-file-ignores ]
115- # S101 Use of `assert` detected
116- # S105 Possible hardcoded password assigned to variable
117- # S106 Possible hardcoded password assigned to argument
118- # S311 Standard pseudo-random generators are not suitable for cryptographic purposes
119- # SLF001 Private member accessed
120- "tests/**/*.py" = [" S101" , " S105" , " S106" , " S311" , " SLF001" ]
0 commit comments