Editeringsrammeverket
Editeringsrammeverket er et Python-bibliotek som hjelper deg lage en editeringsapplikasjon for å se gjennom dataene dine og hvis nødvendig korrigere feilaktige verdier.
Målsettingen er at rammeverket skal være fleksibelt nok til at du kan tilpasse det til egne behov, spare mye tid ved å ha store deler av koden ferdig laget til gjenbruk, og at mest mulig av vedlikeholdet gjøres sentralt.
Hva er Editeringsrammeverket?
Grunnen til at det heter Editeringsrammeverk og ikke Editeringsløsning er ganske enkelt at det ikke er en ferdig løsning, noe montering må påberegnes.
Rammeverket tilrettelegger for gjenbruk på to måter:
Modulbasert Rammeverket inneholder moduler/komponenter som kan gjenbrukes. Disse krever litt ulike grader av tilpasning, alt fra null tilpasning til at dataene dine må settes opp på en spesifikk måte.
Standardisert oppsett for kode Man må følge et standard oppsett for hvordan koden kan struktureres. Se contributing.md for detaljer.
Disse prinsippene bidrar til å redusere personavhengighet og samle mest mulig vedlikeholdsarbeid på ett sted. I tillegg kan en felles struktur gjøre det enklere å lære av hverandre og utvide med mer felles funksjonalitet.
Rammeverket er ikke låst til en spesifikk lagringsteknologi eller datastruktur: Så lenge du kan få dataene dine inn i en pandas dataframe kan du bruke rammeverket.
Men noen moduler forutsetter foreløpig en spesifikk datastruktur lagret i eimerdb.
Hvordan kan jeg ta det i bruk?
Det er noen forutsetninger før du kan sette igang med rammeverket. Det viktigste er at du må forberede dataene dine slik at de er klare for editering. Dette vil si at åpenbare feil skal rettes, maskinelle/automatiske rettinger skal være gjort og dataene må være strukturert på en måte som gjør at det er lett å bearbeide. Hva som gjør data lett å bearbeide er vanskelig å gi en fasit på siden det kan være ulike hensyn for ulike data. For eksempel vil det for Altinn undersøkelser være nødvendig å strukturere data slik at du kan holde styr på hvilke enheter som har rapportert, hvilke innsendinger som tilhører hvilken enhet og hvilken innsending dataene dine kommer fra, for å håndtere dubletter.
Du kan finne et forslag til datastruktur i dokumentasjonen i neste avsnitt og noen moduler forutsetter at dette oppsettet følges, men rammeverket er ikke låst til ett spesifikt oppsett.
Hva trenger jeg å kunne?
Du må ha litt python kompetanse, men hvor komfortabel du må være med python avhenger av hvor kompliserte behov du har.
Grovt sett kan kompetansekravet deles i tre nivåer.
Nivå 1: Gjenbruk av ferdigbygde moduler er tilstrekkelig. Nivå 2: Noen skreddersydde tabeller, figurer eller skjermbilder kreves. Nivå 3: Du har behov for skreddersydd funksjonalitet og egne moduler.
Kompleksiteten reduseres om du:
- kan bruke eimerdb for å lagre dataene dine.
- har enkle data:
- få variabler
- flat struktur
- ingen repeterende verdier (hver variabel kun forekommer 1 gang for hver observasjon)
- kan følge anbefalt datastruktur.
- kan gjenbruke eksisterende moduler.
Kompleksitet økes om:
- samme variabel kan ha mellom 0 og uendelig antall verdier for samme enhet
- Eks. en bedrift kan ha gjort 0 eller mange investeringer og rapporterer opplysninger for hver enkelt investering, som skal behandles enkeltvis.
- datene har flere nivåer.
- dataene har kompliserte/sammensatte sammenhenger mellom variabler.
- du har behov for skreddersydde og sammensatte moduler
Hvor er dokumentasjonen?
Nedenfor er en oversikt over dokumentasjonen for Editeringsrammeverket. Det er strukturert slik at dokumentasjon som er tett knyttet til selve koden er i repoet, mens dokumentasjon om hvordan du tilrettelegger data o.l. er på Confluence.
For konkret bruk av biblioteket og koden er det best å se på dokumentasjonen i repoet og i koden, enten ved å se på denne siden eller se direkte i repoet github repoet. Hvis du sjekker i repoet, ta gjerne en tur innom docs/ mappen.
Vi har demoer som du kan se på, og som kan kjøres med dapla-felles tilgangen i Dapla Lab. Du kan finne demoene her.
Hvis du vil teste hvordan det er å lage en editeringsapplikasjon så kan du bruke de samme dataene som demoene bruker.
Vi har skrevet en veiledning for hvordan du kan tilpasse Altinn 3 data til å passe editeringsrammeverket som du kan se på Confluence.
- Noen moduler forutsetter at dataene dine er i eimerdb og følger foreslått datastruktur.
- Om du ikke har en Altinn 3 undersøkelse kan veiledningen fortsatt være nyttig for å se en foreslått struktur på dataene.
- Strukturen på dataene kan følges uavhengig av om du har dataene dine i parquet filer, eimerdb eller andre lagringsteknologier.
Er Editeringsrammeverket ferdig?
Vi mener at Editeringsrammeverket er klart til at det kan tas i bruk og at det er fleksibelt nok til å være nyttig for mange som skal legge over statistikken sin til Dapla.
Vi mener også at strukturen vi har lagt opp til gjør det mulig å utvide funksjonalitet, lage egne moduler, skreddersy og tilpasse i stor nok grad til at de aller fleste kan tilpasse det til egne behov. - Det kan kreve litt ekstra innsats, men det vil kreve mer innsats å starte fra ingenting enn å starte fra rammeverket. - Om ny funksjonalitet legges til i rammeverket vil du ha lettere for å gjenbruke om du allerede har tilpasset deg kodestrukturen i editeringsrammeverket.
Samtidig kan vi nok aldri si at rammeverket er ferdig. Det vil alltid være muligheter til å utvide, lage ny funksjonalitet, nye moduler og rom for forbedring. Behov kan forandre seg over tid, nye kan dukke opp og gamle behov kan bli irrelevante.
Hvis du ønsker å bidra ønskes det velkommen, enten om det er å fikse på dokumentasjonen eller lage hele moduler.
Hvor kan jeg få hjelp?
Det er supert om du stiller spørsmål og deler erfaringer eller tips på Viva kanalen vår.
For hjelp kan du også kontakte støtteteamene.