57233aa8d5
refactor(keyboard_coop): remove dead/unreachable code
...
- Remove unreachable force-submit check (line 351): available_letters
always contains the clicked letter after add(letter)
- Remove unreachable hover color branch (lines 398-404): the available
check at line 396 catches all available letters first
- Remove unused KEY_HOVER_COLOR constant
- Remove unused mouse_pos variable in _draw_keyboard
- Update test from hover to unavailable key color test
Coverage: 97% -> 100%
2025-12-01 20:15:40 +01:00
a3956d856b
refactor: clean up pyproject.toml - remove defaults and redundant configs
2025-12-01 16:33:42 +01:00
0e73b27d50
fix: address all pylint warnings
...
- R0914 (too many locals): Extract helper functions in generate_jpeg.py,
engine.py, lichess_api.py, main.py
- R0902 (too many instance attributes): Use dataclasses in keyboard_coop
- W0621 (redefined outer name): Rename parameters/variables to avoid shadowing
- W0201 (attribute outside init): Initialize all attrs in __init__
- R1705 (no-else-return): Remove unnecessary else after return
- C1805 (implicit booleaness): Use implicit boolean checks
- R1732 (consider-using-with): Use context manager for subprocess.Popen
- E0401 (import-error): Add pylint disable for optional deps (selenium, mitmproxy)
- Clean up pyproject.toml: update comments, remove redundant settings
Pylint score: 10.00/10
2025-12-01 16:11:15 +01:00
8ecc13cb56
fix(lint): fix G004 and PTH123 violations across codebase
...
- Convert f-string logging to % style (G004)
- Convert open() to Path.open() (PTH123)
- Remove G004 and PTH123 from global ignores in pyproject.toml
2025-11-30 23:57:49 +01:00
d22619b483
fix(lint): convert os.path to pathlib - remove PTH per-file ignores
...
- Converted os.path patterns to pathlib.Path in 15+ files
- os.path.join → Path /
- os.path.dirname → Path.parent
- os.path.exists → Path.exists()
- os.path.isfile → Path.is_file()
- os.path.abspath → Path.resolve()
- os.mkdir → Path.mkdir()
- os.listdir → Path.iterdir()
- os.getcwd → Path.cwd()
- os.replace → Path.replace()
- Updated function type hints to accept str | Path
Added PTH123 (open() vs Path.open()) to global ignores as stylistic preference
2025-11-30 23:03:03 +01:00
b1a5f245a2
fix(lint): LOG015 - replace root logger with module loggers
...
- Add _logger = logging.getLogger(__name__) to all modules
- Replace logging.X() calls with _logger.X() calls
- Remove logging.basicConfig() from module level (keep in run_bot())
- Add G004 to global ignores (f-strings in logging are more readable)
- Remove LOG015 and G004 per-file ignores from pyproject.toml
- Fix pytest_ignore_collect hook signature in conftest.py
2025-11-30 21:59:24 +01:00
2dd4e68edb
refactor: rename folders to fix N999, INP001, S311 linting rules
...
- Rename PYTHON/ to python_pkg/ (fix N999 uppercase folder)
- Rename camelCase folders to snake_case:
- randomJPG -> random_jpg
- tagDivider -> tag_divider
- downloadCats -> download_cats
- keyboardCoop -> keyboard_coop
- extractLinks -> extract_links
- scapeWebsite -> scrape_website
- Rename camelCase files:
- generateJpeg.py -> generate_jpeg.py
- tagDivider.py -> tag_divider.py
- Rename poker-modifier-app to poker_modifier_app (fix INP001)
- Add __init__.py to poker_modifier_app
- Replace random module with secrets.SystemRandom (fix S311)
- Fix S110 try-except-pass with contextlib.suppress
- Update all imports and config references
2025-11-30 21:20:17 +01:00