Skip to content

fix(gcs): list_objects con auth=False pagina correttamente#72

Merged
Gabrymi93 merged 3 commits into
mainfrom
fix/gcs-list-pagination
Jul 21, 2026
Merged

fix(gcs): list_objects con auth=False pagina correttamente#72
Gabrymi93 merged 3 commits into
mainfrom
fix/gcs-list-pagination

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Sintesi

list_objects(bucket, auth=False) restituiva solo la prima pagina di risultati (default GCS: 1000 oggetti), ignorando nextPageToken. Slug che iniziano con lettere alfabeticamente successive (u, v, w, x, y, z) venivano persi.

Causa

_gcs_http_list restituisce correttamente (items, next_page_token) ma list_objects ignorava il token e restituiva solo la prima pagina. Questo causava la scomparsa di unified_comuni e who_is_who_pa dal clean_catalog.json di dataset-incubator a ogni rebuild.

Fix

Aggiunta paginazione completa nel ramo auth=False: loop fintanto che nextPageToken è presente, rispettando l'eventuale limit.

Test

# Prima: unify_comuni e who_is_who_pa non apparivano (seconda pagina)
# Dopo: tutti gli slug sono presenti
items = list_objects('dataciviclab-clean', auth=False)
slugs = {o['name'].split('/')[0] for o in items}
assert 'unified_comuni' in slugs
assert 'who_is_who_pa' in slugs

La funzione _gcs_http_list restituisce solo 1000 oggetti per pagina
(default GCS). list_objects() ignorava nextPageToken e restituiva
solo la prima pagina, perdendo slug che iniziano con lettere finali
(u, v, w, x, y, z). Ora fa paginazione completa fintanto che
nextPageToken e' presente, rispettando l'eventuale limit.
3 nuovi test per il ramo auth=False:
- test_auth_false_no_pagination: pagina singola
- test_auth_false_with_pagination: 2 pagine con merge
- test_auth_false_with_limit: limit rispettato item per item

Allineata la logica di limit a item-level (non page-level) per
coerenza con il ramo auth=None fallback.
@Gabrymi93
Gabrymi93 merged commit 04b50af into main Jul 21, 2026
2 checks passed
@Gabrymi93
Gabrymi93 deleted the fix/gcs-list-pagination branch July 21, 2026 11:51
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