Standards
Modulen standards
i dapla-toolbelt-metadata tilbyr metoder for å sjekke om filer i bøtter er i tråd med SSBs definerte navnestandard. Metodene inkluderer:
- Validere at bøtter, mapper og filer eksisterer
- Validere at filstier som ikke eksisterer følger navnestandard1
- Informasjon om hva som bryter med navnestandarden.
For å effektivisere validering av bøtter med store mengder filer, benytter metoden asynkronitet.
Funksjonalitet
standards
tilbyr to typer av funksjonalitet. Den første er å sjekke om en bøtte, mappe eller fil følger standarden. Den andre er å produsere en rapport som oppsummerer resultatet av valideringen.
Validering
For å sjekke om en bøtte, mappe eller fil følger navnestandarden kan man benytte funksjonen check_naming_standard()
. Den returnerer en liste med resultater for alle objektene du har bedt om å få validert.
Notebook
from dapla_metadata.standards.standard_validators import check_naming_standard
= await check_naming_standard("<bøttenavn/mappe/filsti>"))
results results
ValidationResult(=False,
success="/buckets/produkt/stat/inndata/bil_v1.parquet",
file_path=[
messages"Det er oppdaget brudd på SSB-navnestandard:"
], =[
violations"Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn"
] )
Siden metoden bruker asynkrone kall, må nøkkelordet await
brukes foran metodenavnet.
For å få tilgang til spesifikke deler av resultatet, kan du bruke punktnotasjon .
. Hvis du for eksempel ønsker å hente ut listen med regelbrudd fra det første valideringsresultatet, kan du gjøre følgende:
0].violations results[
Hvis du har validert et stort antall filer så kan du benytte følgende kode for å få ut resultatene på en mer lesbar form:
Notebook
= [r for r in results if not r.success]
violations
if not violations:
print("Gratulerer, ingen feil å vise")
else:
for v in violations:
print(v.file_path)
print("\t" + "\n\t".join(v.messages))
print("\t\t" + "\n\t\t".join(v.violations) + "\n")
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/butikker_kongsvinger.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/butikkbygg_kongsvinger.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/butikkbygg_oslo.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/noen_boliger_kongsvinger.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/noen_boliger_oslo.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/butikker_oslo.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/noen_boligbygg_oslo.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/noen_boligbygg_kongsvinger.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/NVE_Trafostasjon_punkt_p2023.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/enkle_kommuner.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/bygg_kongsvinger.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/veger_kongsvinger.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/noen_tettsteder_2023.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/bygg_oslo.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/veger_oslo.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe //manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler gyldighetsperiode ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#filnavn
Filnavn mangler versjon ref: https:
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/ABAS_kommune_flate_p2024_v1.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/SSB_tettsted_flate_p2022_v1.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper
Mappe
//ssb-dapla-felles-data-produkt-prod/GIS/testdata/SSB_tettsted_flate_p2023_v1.parquet
gs:-navnestandard:
Det er oppdaget brudd på SSBfor datatilstand mangler ref: https://manual.dapla.ssb.no/statistikkere/navnestandard.html#obligatoriske-mapper Mappe
Rapport
Hvis du ønsker en kort oppsummering og vurdering av resultatet, kan du importere følgende metode:
Notebook
from dapla_metadata.standards.standard_validators import generate_validation_report
= generate_validation_report(results) report
Metoden tar en liste med valideringsresultater som input:
Og hvis alt ser bra ut:
For å få tilgang til spesifikke deler av rapporten, kan du bruke punktnotasjon .
. Hvis du for eksempel ønsker å hente ut kun suksess raten i prosent, kan du gjøre følgende:
report.success_rate()
Eller hvis du ønsker direkte tilgang til tallene:
report.num_files_validated
report.num_success report.num_failures
Hvis man ønsker å benytte valideringsfunksjonaliteten i koden som kjøres i en statistikkproduksjon, så kan pre-commit hooks feile på grunn av nøkkelordet await
benyttes utenfor en asynkron funksjon. En enkel løsning er å legge til # noqa: F704 på samme linje som await, slik:
Notebook
= await check_naming_standard("") # noqa: F704 results
Fotnoter
Når man validerer en filsti som ikke eksisterer så får man beskjed om at
Filen eksisterer ikke. Validerer uansett.
.↩︎