Skip to content

Repository files navigation

reko

AI Cost Tracking

PyPIVersionPythonLicenseAI CostHuman TimeModel

  • 🤖 LLM usage: $0.7300 (4 commits)
  • 👤 Human dev: ~$332 (3.3h @ $100/h, 30min dedup)

Generated on 2026-07-06 using openrouter/qwen/qwen3-coder-next


Narzędzie do wykrywania i refaktoryzacji hardkodowanych wartości, struktur danych i kodu w projektach Python.

Co robi

  • scan — wykrywa magic numbers, długie stringi, osadzone słowniki/listy, powtarzające się literały
  • extract — wyciąga hardkod do modułu stałych (constants.py lub wskazany plik)
  • split — rozbija duże struktury (dict/list) na mniejsze nazwane fragmenty
  • move — przenosi stałe między modułami i aktualizuje importy
  • remove — usuwa nieużywane stałe modułowe
  • apply — stosuje plan refaktoryzacji (YAML/JSON)

Instalacja

cd~/github/semcod/reko
pip install -e ".[apply,dev]"

Użycie

# skan projektu
reko scan .# skan z raportem JSON
reko scan src/ --format json -o report.json
# wyciągnij hardkod do constants.py (dry-run)
reko extract src/ --target src/myapp/constants.py --dry-run
# rozbij dużą strukturę w pliku
reko split src/config.py --min-keys 5
# przenieś stałe
reko move src/old.py src/new_constants.py --names TIMEOUT,API_URL
# usuń nieużywane stałe
reko remove src/constants.py --dry-run
# zastosuj plan
reko apply plan.yaml

Konfiguracja

Plik reko.yaml w katalogu projektu:

scan:
extensions: [".py"]exclude:
- "**/tests/**"
- "**/__pycache__/**"min_string_length: 8min_dict_keys: 4allowed_numbers: [0, 1, -1, 2, 10, 100, 1000]extract:
target: "constants.py"naming: "upper_snake"group_by: "file"# file | kind | none

API

frompathlibimportPathfromrekoimportscan_project, extract_constants, apply_planfindings=scan_project(Path("src/"))
result=extract_constants(Path("src/app.py"), target=Path("src/constants.py"))

Licencja

Apache-2.0

About

Refaktoryzacja hardkodowanych wartości, struktur i kodu w projektach Python

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages