fire.cli package

Module contents

Kommandoliniebrugergrænsefladen (en command-line interface, CLI) til FIREs API.

fire.cli.default_options(**kwargs)

Create decorator that handles all default options

fire.cli.farvelæg(tekst: str, farve: str)

Farvelæg en tekst der udskrives via Click.

fire.cli.grøn(tekst: str)

Farv en tekst der udskrives via Click grøn.

fire.cli.luk_pænt_ved_ctrl_c(signal, frame)
fire.cli.override_firedb(new_firedb: FireDb)

Tillad at bruge en anden firedb end den der oprettes automatisk af fire.cli.

fire.cli.print(*args, **kwargs)

FIRE-specifik print funktion baseret på click.secho.

Tilsidesætter farven når --monokrom parameteren anvendes i kommandolinjekald.

fire.cli.rød(tekst: str)

Farv en tekst der udskrives via Click rød.

fire.cli.åbn_fil(fil: str) None

Åben en fil med et passende program.

Wrapperfunktion til os.startfile, der gør det muligt at undlade filåbning ved hjælp af indstilling i konfigurationsfil (niv_open_files).

Submodules

fire.cli.info.koordinat_linje(koord: Koordinat) str

Konstruer koordinatoutput i overensstemmelse med koordinatens dimensionalitet, enhed og proveniens.

fire.cli.info.koordinatrapport(koordinater: List[Koordinat], options: str, historik: bool) None

Hjælpefunktion for 'punkt_fuld_rapport': Udskriv formateret koordinatliste

fire.cli.info.observation_linje(obs: Observation) str
fire.cli.info.observationsrapport(observationer_til: List[Observation], observationer_fra: List[Observation], options: str, opt_detaljeret: bool) None

Hjælpefunktion for 'punkt_fuld_rapport': Udskriv formateret observationsliste

fire.cli.info.punkt_fuld_rapport(punkt: Punkt, ident: str, i: int, n: int, opt_obs: str, opt_koord: str, opt_detaljeret: bool, opt_historik: bool) None

Rapportgenerator for funktionen 'punkt' nedenfor.

fire.cli.info.punktinforapport(punktinformationer: List[PunktInformation], historik: bool) None

Hjælpefunktion for 'punkt_fuld_rapport'.

fire.cli.info.punktsamlingsrapport(punktsamlinger: list[PunktSamling], id: str = None)

Hjælpefunktion for funktionerne punkt_fuld_rapport og punktsamling.

fire.cli.info.tidsserierapport(tidsserier: list[Tidsserie])

Hjælpefunktion for funktionerne punkt_fuld_rapport og punktsamling.

Hovedindgang for kommondolinjeinterface til FIRE.

fire.cli.niv.afbryd_hvis_ugyldigt_jessenpunkt(jessenpunkt: Punkt) None

Smid fejl hvis valgt jessenpunkt ikke er et registreret jessenpunkt

fire.cli.niv.anvendte(arkdef: Dict) str

Anvendte søjler for given arkdef

fire.cli.niv.bekræft(spørgsmål: str, gentag=True) bool

Anmod bruger om at tage stilling til spørgsmålet.

fire.cli.niv.er_projekt_okay(projektnavn: str) None

Kontroller om det er okay at bruge et givet projekt.

Afbryder programmet og udskriver en fejl, hvis ikke projektet er okay.

Ellers gøres intet.

fire.cli.niv.find_faneblad(projektnavn: str, faneblad: str, arkdef: Dict, ignore_failure: bool = False) DataFrame
fire.cli.niv.find_parameter(projektnavn: str, parameter: str) str

Find parameter fra et projektregneark

fire.cli.niv.find_sag(projektnavn: str) Sag

Bomb hvis sag for projektnavn ikke er oprettet. Ellers returnér sagen

fire.cli.niv.find_sagsgang(projektnavn: str) DataFrame

Udtræk sagsgangsregneark fra Excelmappe

fire.cli.niv.find_sagsid(sagsgang: DataFrame) str
fire.cli.niv.gyldighedstidspunkt(projektnavn: str) datetime

Tid for sidste observation der har været brugt i beregningen

fire.cli.niv.hent_relevante_tidsserier(hts_ark: DataFrame, punkt: Punkt, fastholdt_punkt: Punkt, fastholdt_kote: float) list[Tidsserie]

Henter de relevante tidsserier fra Højdetidsserier-arket

Med "relevante" skal forstås tidsserier der har punkt som punkt, og som hører under en punktsamling der har fastholdt_punkt og fastholdt_kote som fastholdt punkt hhv. kote.

Derudover kontrolleres oplysningerne i Højdetidsserier-fanen. Hvis de er forkerte udsendes fejlmeddelelser.

fire.cli.niv.obs_feature(punkter: DataFrame, observationer: DataFrame, antal_målinger: Dict[Tuple, int]) Dict[str, str]

Omsæt observationsinformationer til JSON-egnet dict

fire.cli.niv.observationer_geojson(punkter: DataFrame, observationer: DataFrame) None

Skriv observationer til geojson-fil

fire.cli.niv.opret_region_punktinfo(punkt: Punkt) PunktInformation

Opret regionspunktinfo for et nyt punkt

fire.cli.niv.punkt_feature(punkter: DataFrame) Dict[str, str]

Omsæt punktinformationer til JSON-egnet dict

fire.cli.niv.punkter_geojson(punkter: DataFrame) str

Returner punkter/koordinater som geojson-streng

fire.cli.niv.skriv_ark(projektnavn: str, nye_faneblade: Dict[str, DataFrame], suffix: str = '') bool

Skriv resultater til excel-fil

Basalt en temmeligt simpel operation, men virkemåden er næsten overskygget af kontroller af at filoperationer gik godt. Det er et vilkår ved interaktioner med filsystemer, så for overblikkets skyld kommer her en kort prosabeskrivelse.

  1. Flyt projektnavn.xlsx til projektnavn-ex.xlsx

  2. Læs dict gamle_faneblade fra projektnavn-ex.xlsx

  3. Fjern elementer fra gamle_faneblade hvis navnet også findes i nye_faneblade

  4. Skriv nye_faneblade til projektnavn.xlsx

  5. Skriv gamle_faneblade til projektnavn.xlsx

Trin 4 kommer før trin 5 for at sikre at de nye faneblade er umiddelbart synlige når man åbner projektnavn.xlsx

Eller mere direkte sagt:

``` fil = Path(f"{projektnavn}{suffix}.xlsx") exfil = Path(f"{projektnavn}{suffix}-ex.xlsx") fil.replace(exfil)

gamle_faneblade = pd.read_excel(exfil, sheet_name=None) for fanebladnavn in set(gamle_faneblade).intersection(nye_faneblade):

gamle_faneblade.pop(fanebladnavn)

with pd.ExcelWriter(fil) as writer:

skriv nye_faneblade skriv gamle_faneblade

```

Hvilket er i omegnen af en faktor 10 mindre end den implementerede version - men it's a jungle out there...

fire.cli.niv.skriv_observationer_geojson(projektnavn: str, punkter: DataFrame, observationer: DataFrame, infiks: str = '') None

Skriv geojson-fil med observationsdata til disk

fire.cli.niv.skriv_punkter_geojson(projektnavn: str, punkter: DataFrame, infiks: str = '')

Skriv geojson-fil med punktdata til disk

fire.cli.niv.udled_jessenpunkt_fra_punktoversigt(punktoversigt: DataFrame) tuple[float, Punkt]

Udleder Jessenpunktet ud fra oplysningerne i Punktoversigten.

Returnerer oplysninger om det validerede jessenpunkt.

Diverse redskaber til brug i fire.cli.

class fire.cli.click_types.Datetime(format)

Bases: ParamType

A datetime object parsed via datetime.strptime. Format specifiers can be found here : https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

Stolen from https://github.com/click-contrib/click-datetime/blob/master/click_datetime/__init__.py

convert(value, param, ctx)

Convert the value to the correct type. This is not called if the value is None (the missing value).

This must accept string values from the command line, as well as values that are already the correct type. It may also convert other compatible types.

The param and ctx arguments may be None in certain situations, such as when converting prompt input.

If the value cannot be converted, call fail() with a descriptive message.

Parameters:
  • value -- The value to convert.

  • param -- The parameter that is using this type to convert its value. May be None.

  • ctx -- The current context that arrived at this value. May be None.

name: str = 'date'

the descriptive name of this type