Skip to content

Publiczne helpery oświadczeń: diff/klucze + dekodowanie objectId#6

Merged
mpasternak merged 1 commit into
mainfrom
feat/pbn-statement-helpers
Jul 14, 2026
Merged

Publiczne helpery oświadczeń: diff/klucze + dekodowanie objectId#6
mpasternak merged 1 commit into
mainfrom
feat/pbn-statement-helpers

Conversation

@mpasternak

Copy link
Copy Markdown
Member

Co i po co

Promocja prywatnych helperów StatementsMixin do publicznego, testowanego API. Komenda hosta (BPP: pbn_test_wysylka_interaktywna) obecnie re-implementuje tę logikę u siebie — po tym PR będzie mogła wołać pakiet.

Zmiany

  • diff_statements / statement_key_pbn / statement_key_intended — dotychczas prywatne metody dostały publiczne nazwy. Warianty z podkreśleniem (_diff_statements itd.) pozostają jako aliasy klasowe wskazujące na te same obiekty — istniejący kod woła je bez zmian, zachowanie identyczne.
  • decode_publication_object_id(response, *, bez_oswiadczen) — nowa publiczna funkcja modułowa wyciągająca logikę dict-vs-1-elementowa-lista z _post_publication_data:
    • bez_oswiadczen=False{"objectId": ...} (dict) → zwraca objectId (lub None gdy brak / nie-dict),
    • bez_oswiadczen=True[{"id": ...}] (lista) → zwraca id; przy len != 1 rzuca wyjątek (kanoniczna, stricter semantyka pakietu — nie ciche None).
  • _post_publication_data deleguje do nowego helpera — zachowanie bez zmian (potwierdzone testami).
  • Eksport StatementsMixin i decode_publication_object_id z pbn_client.

Testy

Nowy tests/test_statement_helpers.py (16 testów): diff dwóch zestawów oświadczeń → poprawne (only_in_pbn, only_in_intended); dekodowanie objectId z dict i z 1-elementowej listy; wyjątek przy len != 1; tożsamość aliasów prywatnych z publicznymi nazwami; regresja _post_publication_data.

Pełna suita: 58 passed, ruff check clean, ruff format bez zmian.

🤖 Generated with Claude Code

Promocja prywatnych helperów StatementsMixin do publicznego,
testowanego API (komenda hosta dotąd je re-implementowała):

- diff_statements / statement_key_pbn / statement_key_intended —
  publiczne nazwy; warianty z podkreśleniem pozostają jako aliasy
  wskazujące na te same obiekty (zgodność wsteczna, zachowanie bez zmian).
- decode_publication_object_id(response, *, bez_oswiadczen) — nowa
  publiczna funkcja modułowa wyciągająca logikę dict-vs-lista z
  _post_publication_data; kanoniczna semantyka: wyjątek przy wyniku
  niejednoznacznym (len != 1), nie ciche None.
- _post_publication_data deleguje do nowego helpera — zachowanie
  identyczne jak dotąd.
- Eksport StatementsMixin i decode_publication_object_id z pbn_client.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mpasternak
mpasternak force-pushed the feat/pbn-statement-helpers branch from 31fa4b3 to cfc2821 Compare July 14, 2026 17:22
@mpasternak
mpasternak merged commit df1650f into main Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant