Skip to content

Dodaj normalize_author_name — normalizacja autora z JSON-ów PBN#2

Merged
mpasternak merged 1 commit into
mainfrom
feat/pbn-author-normalize
Jul 14, 2026
Merged

Dodaj normalize_author_name — normalizacja autora z JSON-ów PBN#2
mpasternak merged 1 commit into
mainfrom
feat/pbn-author-normalize

Conversation

@mpasternak

Copy link
Copy Markdown
Member

Co i po co

PBN zwraca dane osobowe autora niespójnie, zależnie od endpointu: nazwisko raz jako lastName, raz jako familyName; imię jako firstName, givenNames albo name. Czasem zamiast słownika przychodzi goły PBN UID (string).

Nowa czysta funkcja pbn_client.normalize_author_name sprowadza wszystkie warianty do jednego kształtu {"lastName": <str|None>, "firstName": <str|None>}. To semantyczne scalenie dwóch wariantów z hostów (unia łańcuchów fallbacków):

  • lastName: familyNamelastNameNone
  • firstName: firstNamegivenNamesnameNone

Puste stringi traktowane jak brak wartości; wejście nie-dict daje oba pola None.

Testy

  • tests/test_authors.py — payloady firstName/lastName, familyName/givenNames, name-only, lastName-only, pusty dict, klucze nieistotne, wejścia nie-dict (None/string-UID/int/lista), priorytety unii (familyName > lastName; firstName > givenNames > name), puste stringi.
  • Pełna suita: uv run --isolated pytest -q → 57 passed. Ruff clean.

🤖 Generated with Claude Code

PBN podaje dane osobowe autora niespójnie zależnie od endpointu:
nazwisko jako lastName albo familyName, imię jako firstName,
givenNames albo name. Nowa czysta funkcja normalize_author_name
scala oba warianty spotykane w hostach (unia łańcuchów fallbacków):

- lastName: familyName → lastName → None
- firstName: firstName → givenNames → name → None

Puste stringi traktowane jak brak wartości; wejście nie-dict
(np. goły PBN UID jako string) daje oba pola None.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mpasternak
mpasternak merged commit 322ff51 into main Jul 14, 2026
5 checks passed
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