Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Ujednolicenie interfejsu usług domain_recordexecute + DTO + wspólny wynik#1366

Open
bgembalczyk wants to merge 1 commit into
main from
codex/standaryzuj-klasy-domenowe-w-scrapers/services
Open

Ujednolicenie interfejsu usług domain_recordexecute + DTO + wspólny wynik #1366
bgembalczyk wants to merge 1 commit into
main from
codex/standaryzuj-klasy-domenowe-w-scrapers/services

Conversation

@bgembalczyk

@bgembalczyk bgembalczyk commented Apr 10, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Ujednolicić API klas domenowych w scrapers/services/domain_record/ tak, by różne domeny miały spójną metodę wywołania i jednoznaczne wejście/wyjście.
  • Ułatwić podmianę implementacji, testowanie i czytelność przez jawne DTO oraz jednolity typ wyniku.

Description

  • Wprowadziłem wspólny wynik DomainRecordResult w scrapers/services/domain_record/_shared.py i zexportowałem typy w scrapers/services/domain_record/__init__.py.
  • Dla każdej usługi dodałem jawny DTO wejściowy (ConstructorDomainRecordInput, DriverDomainRecordInput, CircuitDomainRecordInput, SeasonDomainRecordInput) i zastąpiłem dotychczasowe publiczne metody jedną metodą execute(...) zwracającą DomainRecordResult.
  • Ukryłem pomocnicze operacje za prywatnymi metodami (_extract_tables, _collect_lap_record_rows, _build_payload) i przeniosłem odpowiedzialność za składanie pełnego payloadu do serwisów domenowych.
  • Zaktualizowałem callerów (SingleConstructorScraper, SingleDriverScraper, F1SingleCircuitScraper, SingleSeasonScraper) aby przekazywali odpowiednie DTO do execute i używali result.record, oraz uprościłem/modyfikowałem miejsce budowy payloadów tabel tam, gdzie logika przeniesiona została do serwisów.

Testing

  • Uruchomiłem pytest -q tests/scrapers/circuits/test_domain_record.py tests/test_single_scraper_components_and_orchestration.py i kolekcja zakończyła się błędem z powodu brakującego modułu scrapers.wiki (import error), więc testy nie wykonały się dalej.
  • Sprawdziłem poprawność składni i importów dla zmienionych plików przez python -m compileall ... dla zmienionych modułów i kompilacja zakończyła się pomyślnie.
  • Zaktualizowałem test tests/scrapers/circuits/test_domain_record.py do nowego kontraktu execute + CircuitDomainRecordInput + DomainRecordResult.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /