11[project ]
22authors = [
3- {name = " Daniel Sanz" , email = " imsdn4z@gmail.com" },
4- {name = " Sergio Castillo" , email = " s.cast.lara@gmail.com" },
5- {name = " Ludo van Orden" },
6- {name = " Dmitrii Fedotov" },
3+ { name = " Daniel Sanz" , email = " imsdn4z@gmail.com" },
4+ { name = " Sergio Castillo" , email = " s.cast.lara@gmail.com" },
5+ { name = " Ludo van Orden" },
6+ { name = " Dmitrii Fedotov" },
77]
88maintainers = [
9- {name = " Daniel Sanz" , email = " imsdn4z@gmail.com" },
10- {name = " Sergio Castillo" , email = " s.cast.lara@gmail.com" },
9+ { name = " Daniel Sanz" , email = " imsdn4z@gmail.com" },
10+ { name = " Sergio Castillo" , email = " s.cast.lara@gmail.com" },
1111]
1212requires-python = " <4,>=3.9"
1313dependencies = [
@@ -34,13 +34,7 @@ pattern = "v(?P<version>[^\\s]+)"
3434packages = [" src/twyn" ]
3535
3636[tool .hatch .build .targets .sdist ]
37- include = [
38- " /src" ,
39- " /README.md" ,
40- " /LICENSE" ,
41- " /VERSION" ,
42- " /pyproject.toml" ,
43- ]
37+ include = [" /src" , " /README.md" , " /LICENSE" , " /VERSION" , " /pyproject.toml" ]
4438
4539[project .scripts ]
4640twyn = " twyn.cli:entry_point"
@@ -53,13 +47,9 @@ dev = [
5347 " ruff<0.12.4,>=0.5.1" ,
5448 " types-requests<3.0.0.0,>=2.32.4.20250611" ,
5549 " types-python-dateutil>=2.9.0.20250809" ,
56- " freezegun>=1.5.5" ,
57- ]
58- local = [
59- " ipdb<1.0.0,>=0.13.9" ,
60- " commitizen<5.0,>=2.38" ,
61- " pdbpp<1.0.0,>=0.11.6" ,
50+ " freezegun>=1.5.5" ,
6251]
52+ local = [" ipdb<1.0.0,>=0.13.9" , " commitizen<5.0,>=2.38" , " pdbpp<1.0.0,>=0.11.6" ]
6353
6454
6555[build-system ]
@@ -73,39 +63,39 @@ line-length = 120
7363src = [" twyn" , " tests" ]
7464[tool .ruff .lint ]
7565select = [
76- " B" , # flake8-bugbear
77- " C" , # mccabe
78- " E" , # pycodestyle
79- " W" , # pycodestyle warnings
80- " F" , # pyflakes
81- " I" , # isort
82- " B" , # bugbear
83- " D" , # pydocstyle
84- " I" , # isort
85- " C4" , # comprehensions
86- " SIM" , # simplify
87- " N" , # pep8-naming
88- " TRY" , # tryceratops
89- " UP" , # pyupgrade
90- " PT" , # pytest-style
91- " TCH" , # type-checking
92- " PL" , # pylint
93- " G" , # logging format
94- " TID" , # tidy-imports
66+ " B" , # flake8-bugbear
67+ " C" , # mccabe
68+ " E" , # pycodestyle
69+ " W" , # pycodestyle warnings
70+ " F" , # pyflakes
71+ " I" , # isort
72+ " B" , # bugbear
73+ " D" , # pydocstyle
74+ " I" , # isort
75+ " C4" , # comprehensions
76+ " SIM" , # simplify
77+ " N" , # pep8-naming
78+ " TRY" , # tryceratops
79+ " UP" , # pyupgrade
80+ " PT" , # pytest-style
81+ " TCH" , # type-checking
82+ " PL" , # pylint
83+ " G" , # logging format
84+ " TID" , # tidy-imports
9585]
9686ignore = [
97- " E501" , # line-length (enforced by black instead)
98- ' D1' , # pydocstyle enforces docstrings everywhere
99- ' TRY003' , # tryceratops rule not useful
100- " PLR0913" , # pylint rule not useful
101- " B008" , # checks for function calls in default function arguments.
102- ' D206' , # conflicts with formatter
103- ' W191' , # conflicts with formatter
104- ' D203' , # conflicts with formatter
105- ' D211' , # conflicts with formatter
106- ' D212' , # conflicts with formatter
107- ' UP031' , # allow strings formated with %s
108- ' PLR2004' # magic value
87+ " E501" , # line-length (enforced by black instead)
88+ ' D1' , # pydocstyle enforces docstrings everywhere
89+ ' TRY003' , # tryceratops rule not useful
90+ " PLR0913" , # pylint rule not useful
91+ " B008" , # checks for function calls in default function arguments.
92+ ' D206' , # conflicts with formatter
93+ ' W191' , # conflicts with formatter
94+ ' D203' , # conflicts with formatter
95+ ' D211' , # conflicts with formatter
96+ ' D212' , # conflicts with formatter
97+ ' UP031' , # allow strings formated with %s
98+ ' PLR2004' , # magic value
10999]
110100
111101[tool .ruff .lint .pydocstyle ]
@@ -137,4 +127,21 @@ omit = ["tests/*"]
137127fail_under = 95
138128exclude_lines = [" if TYPE_CHECKING:" , " pragma: no cover" ]
139129
140-
130+ [tool .lgtm ]
131+ categories = [" Correctness" , " Quality" , " Testing" , " Security" ]
132+ model = " gemini-2.5-pro"
133+ silent = false
134+ publish = true
135+ ai_retries = 2
136+ exclude = [
137+ " *.md" ,
138+ " poetry.lock" ,
139+ " uv.lock" ,
140+ " gradle.lockfile" ,
141+ " Podfile.lock" ,
142+ " Package.resolved" ,
143+ " Cartfile.resolved" ,
144+ " yarn.lock" ,
145+ " package-lock.json" ,
146+ " pnpm-lock.yaml" ,
147+ ]
0 commit comments