init instructions
This commit is contained in:
commit
73a811ce1d
BIN
data/ringe.xlsx
Normal file
BIN
data/ringe.xlsx
Normal file
Binary file not shown.
BIN
data/zählungen.xlsx
Normal file
BIN
data/zählungen.xlsx
Normal file
Binary file not shown.
60
instructions/countings_formater.py
Normal file
60
instructions/countings_formater.py
Normal file
@ -0,0 +1,60 @@
|
||||
from mappings import *
|
||||
|
||||
EXPECTED_INPUT_TABLE_SCHEMA = [
|
||||
"Anzahl",
|
||||
"Art",
|
||||
"Geschlecht",
|
||||
"Datum",
|
||||
"Ort",
|
||||
"Davon m",
|
||||
"Davon w",
|
||||
"Fangart",
|
||||
"Bemerkung"
|
||||
]
|
||||
|
||||
EXPECTED_OUTPUT_TABLE_SCHEMA = EXPECTED_INPUT_TABLE_SCHEMA.remove("Geschlecht")
|
||||
|
||||
COL_INSTRUCTIONS = {
|
||||
["Fangart"]: {
|
||||
"command": {
|
||||
"name": "FIND_AND_REPLACE",
|
||||
"map": CATCHED_BY
|
||||
}
|
||||
},
|
||||
["Ort"]: {
|
||||
"command": {
|
||||
"name": "REGEX_MOVE_TO_COL",
|
||||
"with_input_iteration": flatten_dict(CATCHED_BY), # Moves matching group {{% 1 %}} to "to"
|
||||
"match": r"^(?:[^ ]* +)*({{% 1 %}}),?(?: .*+)*$",
|
||||
"to": "Fangart"
|
||||
}
|
||||
},
|
||||
["Fangart"]: {
|
||||
"command": {
|
||||
"name": "REGEX_EDIT_COL",
|
||||
"match": r"^ *$",
|
||||
"to": "1"
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
ROW_INSTRUCTION = [
|
||||
{
|
||||
"command": "CONDITIONAL_COPY",
|
||||
"when_regex": {
|
||||
"Geschlecht": r"^(?:[^ ]* +)*(m),?(?: .*+)*$",
|
||||
"Anzahl": r"/d"
|
||||
},
|
||||
"source": "Anzahl",
|
||||
"target": "Davon m"
|
||||
},
|
||||
{
|
||||
"command": "CONDITIONAL_COPY",
|
||||
"when_regex": {
|
||||
"Geschlecht": r"^(?:[^ ]* +)*(w),?(?: .*+)*$",
|
||||
"Anzahl": r"/d"
|
||||
},
|
||||
"source": "Anzahl",
|
||||
"target": "Davon w"
|
||||
},
|
||||
]
|
||||
343
instructions/mappings.py
Normal file
343
instructions/mappings.py
Normal file
@ -0,0 +1,343 @@
|
||||
SPICIES = {
|
||||
"Bbar": [
|
||||
"B.bar.",
|
||||
"B.bar",
|
||||
"BBAR",
|
||||
"bbar",
|
||||
"Barbastella",
|
||||
"barbastellus",
|
||||
"B.b.",
|
||||
"B.b",
|
||||
"BB",
|
||||
"bb",
|
||||
],
|
||||
"Mbra": [
|
||||
"M.bra.",
|
||||
"M.bra",
|
||||
"MBRA",
|
||||
"mbra",
|
||||
"Myotis brandtii",
|
||||
"M.br.",
|
||||
"M.br",
|
||||
"MBR",
|
||||
"mbr",
|
||||
],
|
||||
"Mmys": [
|
||||
"M.myst.",
|
||||
"M.myst",
|
||||
"MMYST",
|
||||
"mmyst",
|
||||
"Myotis mystacinus",
|
||||
"M.mys.",
|
||||
"M.mys",
|
||||
"MMYS",
|
||||
"mmys",
|
||||
],
|
||||
"Ppip": [
|
||||
"P.pip.",
|
||||
"P.pip",
|
||||
"PPIP",
|
||||
"ppip",
|
||||
"Pipistrellus pipistrellus",
|
||||
],
|
||||
"Vmur": [
|
||||
"V.mur.",
|
||||
"Vmur",
|
||||
"VMUR",
|
||||
"vmur",
|
||||
"Vespertilio murinus",
|
||||
"V.m.",
|
||||
"V.m",
|
||||
"VM",
|
||||
"vm",
|
||||
],
|
||||
"Plespec": [
|
||||
"Plec. spec.",
|
||||
"Pl. spec",
|
||||
"PLEC SPEC",
|
||||
"plec spec",
|
||||
"Plecotus",
|
||||
"Plec. spe.",
|
||||
"Pl. spe",
|
||||
"PLEC SPE",
|
||||
"plec spe",
|
||||
"Plecotus species",
|
||||
],
|
||||
"Enil": [
|
||||
"E.nil.",
|
||||
"E.nil",
|
||||
"ENIL",
|
||||
"enil",
|
||||
"Eptesicus nilssonii",
|
||||
"E.n.",
|
||||
"E.n",
|
||||
"EN",
|
||||
"en",
|
||||
],
|
||||
"Mdas": [
|
||||
"M.das.",
|
||||
"M.das",
|
||||
"MDAS",
|
||||
"mdas",
|
||||
"Myotis dasycneme",
|
||||
],
|
||||
"Mnat": [
|
||||
"M.nat.",
|
||||
"M.nat",
|
||||
"MNAT",
|
||||
"mnat",
|
||||
"Myotis nattereri",
|
||||
"M.n.",
|
||||
"M.n",
|
||||
"MN",
|
||||
"mn",
|
||||
],
|
||||
"Ppyg": [
|
||||
"P.pyg.",
|
||||
"P.pyg",
|
||||
"PPYG",
|
||||
"ppyg",
|
||||
"Pipistrellus pygmaeus",
|
||||
],
|
||||
"Rhip": [
|
||||
"R.hip.",
|
||||
"R.hip",
|
||||
"RHIP",
|
||||
"rhip",
|
||||
"Rhinolophus hipposideros",
|
||||
"R.h.",
|
||||
"R.h",
|
||||
"RH",
|
||||
"rh",
|
||||
],
|
||||
"Bart": [
|
||||
"Bartfledermaus",
|
||||
"Bartfledermäuse",
|
||||
"Bart",
|
||||
"Bart spec",
|
||||
"Bärte",
|
||||
"Bartspec",
|
||||
],
|
||||
"Eser": [
|
||||
"E.ser.",
|
||||
"E.ser",
|
||||
"ESER",
|
||||
"eser",
|
||||
"Eptesicus serotinus",
|
||||
"E.s.",
|
||||
"E.s",
|
||||
"ES",
|
||||
"es",
|
||||
],
|
||||
"Mdau": [
|
||||
"M.dau.",
|
||||
"M.dau",
|
||||
"MDAU",
|
||||
"mdau",
|
||||
"Myotis daubentonii",
|
||||
],
|
||||
"Nlei": [
|
||||
"N.lei.",
|
||||
"N.lei",
|
||||
"NLEI",
|
||||
"nlei",
|
||||
"Nyctalus leisleri",
|
||||
"N.l.",
|
||||
"N.l",
|
||||
"NL",
|
||||
"nl",
|
||||
"Nleisl.",
|
||||
"N.leis",
|
||||
"NLEISL",
|
||||
"nleis",
|
||||
],
|
||||
"Pnat": [
|
||||
"P.nat.",
|
||||
"P.nat",
|
||||
"PNAT",
|
||||
"pnat",
|
||||
"Pipistrellus nathusii",
|
||||
"P.n.",
|
||||
"P.n",
|
||||
"PN",
|
||||
"pn",
|
||||
],
|
||||
"kl. FM": [
|
||||
"kleine Fledermaus",
|
||||
"kl.FM",
|
||||
],
|
||||
"FM": [
|
||||
"Fledermaus",
|
||||
"spec",
|
||||
],
|
||||
"Cluster": [
|
||||
"Klasta",
|
||||
],
|
||||
"unbestimmt": [
|
||||
"unbekannt",
|
||||
"unb.",
|
||||
"Unbestimmt",
|
||||
],
|
||||
"Malc": [
|
||||
"M.alc.",
|
||||
"M.alc",
|
||||
"MALC",
|
||||
"malc",
|
||||
"Myotis alcathoe",
|
||||
"M.a.",
|
||||
"M.a",
|
||||
"MA",
|
||||
"ma",
|
||||
],
|
||||
"Mema": [
|
||||
"M.ema.",
|
||||
"M.ema",
|
||||
"MEMA",
|
||||
"mema",
|
||||
"Myotis emarginatus",
|
||||
"M.e.",
|
||||
"M.e",
|
||||
"ME",
|
||||
],
|
||||
"Nnoc": [
|
||||
"N.noc.",
|
||||
"N.noc",
|
||||
"NNOC",
|
||||
"nnoc",
|
||||
"Nyctalus noctula",
|
||||
"N.n.",
|
||||
"N.n",
|
||||
"NN",
|
||||
"nn",
|
||||
"N.nyt.",
|
||||
"N.nyt",
|
||||
"NNYT",
|
||||
"nnyt",
|
||||
],
|
||||
"Paur": [
|
||||
"P.aur.",
|
||||
"P.aur",
|
||||
"PAUR",
|
||||
"paur",
|
||||
"Plecotus auritus",
|
||||
],
|
||||
"Mspec": [
|
||||
"M.spec.",
|
||||
"M.spec",
|
||||
"MSPEC",
|
||||
"mspec",
|
||||
"Myotis",
|
||||
"M.spe.",
|
||||
"M.spe",
|
||||
"MSPE",
|
||||
"mspe",
|
||||
"Myotis species",
|
||||
"M",
|
||||
],
|
||||
"Mbec": [
|
||||
"M.bech.",
|
||||
"M.bech",
|
||||
"MBECH",
|
||||
"mbech",
|
||||
"Myotis bechsteinii",
|
||||
"M.bec.",
|
||||
"M.bec",
|
||||
"MBEC",
|
||||
"mbec",
|
||||
],
|
||||
"Mmyo": [
|
||||
"M.myo.",
|
||||
"M.myo",
|
||||
"MMYO",
|
||||
"mmyo",
|
||||
"Myotis Myotis",
|
||||
"M.m.",
|
||||
"M.m",
|
||||
"MM",
|
||||
"mm",
|
||||
],
|
||||
"Pkuh": [
|
||||
"P.kuh.",
|
||||
"P.kuh",
|
||||
"PKUH",
|
||||
"pkuh",
|
||||
"Pipistrellus kuhlii",
|
||||
"P.k.",
|
||||
"P.k",
|
||||
"PK",
|
||||
"pk",
|
||||
],
|
||||
"Paus": [
|
||||
"P.aus.",
|
||||
"Paus",
|
||||
"PAUS",
|
||||
"paus",
|
||||
"Plecotus austriacus",
|
||||
"P.aust.",
|
||||
"P.aust",
|
||||
"PAUST",
|
||||
"paust",
|
||||
],
|
||||
"Pipspec": [
|
||||
"Pip.spec.",
|
||||
"Pip.spec",
|
||||
"PIPSPEC",
|
||||
"pipspec",
|
||||
"Pipistrellus",
|
||||
"Pip.spe.",
|
||||
"Pip.spe",
|
||||
"PIPSPE",
|
||||
"pipspe",
|
||||
"Pipistrellus species",
|
||||
],
|
||||
}
|
||||
|
||||
CATCHED_BY = [
|
||||
"Nfg",
|
||||
"WQK",
|
||||
"Wst",
|
||||
"KK",
|
||||
"AFZ",
|
||||
"Detektor",
|
||||
]
|
||||
|
||||
AGE = {
|
||||
"j": [
|
||||
"j",
|
||||
"juv"
|
||||
],
|
||||
"sub": [
|
||||
"sub",
|
||||
"subad",
|
||||
"sub ad"
|
||||
"sub adult",
|
||||
"sub-adult"
|
||||
],
|
||||
"a": [
|
||||
"a",
|
||||
"ad"
|
||||
]
|
||||
}
|
||||
|
||||
REPRODUCTION = {
|
||||
"p": [
|
||||
"plak",
|
||||
"pl",
|
||||
"p"
|
||||
],
|
||||
"g": [
|
||||
"g"
|
||||
],
|
||||
"z": [
|
||||
"lak",
|
||||
"l",
|
||||
"z"
|
||||
]
|
||||
}
|
||||
|
||||
def flatten_dict(d):
|
||||
flat = {}
|
||||
for key, values in d.items():
|
||||
for value in values:
|
||||
flat[value] = key
|
||||
return flat
|
||||
83
instructions/ring_formater.py
Normal file
83
instructions/ring_formater.py
Normal file
@ -0,0 +1,83 @@
|
||||
from mappings import *
|
||||
|
||||
EXPECTED_INPUT_TABLE_SCHEMA = [
|
||||
"Ringnummer",
|
||||
"Art",
|
||||
"Geschlecht"
|
||||
"Alter",
|
||||
"Reproduktionsstatus",
|
||||
"Unterarmlänge",
|
||||
"Gewicht",
|
||||
"Datum",
|
||||
"Ort",
|
||||
"Fangart",
|
||||
"Uhrzeit",
|
||||
"Proben",
|
||||
"Wiederfunde",
|
||||
"Bemerkung"
|
||||
]
|
||||
|
||||
EXPECTED_OUTPUT_TABLE_SCHEMA = EXPECTED_INPUT_TABLE_SCHEMA
|
||||
|
||||
COL_INSTRUCTIONS = {
|
||||
["Geschlecht"]: {
|
||||
"command": {
|
||||
"name": "REGEX_MOVE_TO_COL",
|
||||
"with_input_iteration": flatten_dict(REPRODUCTION), # Moves matching group {{% 1 %}} to "to"
|
||||
"match": r"^(?:[^ ]* +)*({{% 1 %}}),?(?: .*+)*$",
|
||||
"to": "Reproduktionsstatus"
|
||||
}
|
||||
},
|
||||
["Geschlecht"]: {
|
||||
"command": {
|
||||
"name": "REGEX_MOVE_TO_COL",
|
||||
"with_input_iteration": flatten_dict(AGE), # Moves matching group {{% 1 %}} to "to"
|
||||
"match": r"^(?:[^ ]* +)*({{% 1 %}}),?(?: .*+)*$",
|
||||
"to": "Alter"
|
||||
}
|
||||
},
|
||||
["Geschlecht"]: {
|
||||
# Special case ma -> Geschlecht a | Alter a
|
||||
"command": {
|
||||
"name": "REGEX_MOVE_TO_COL",
|
||||
"match": r"^(?:[^ ]* +)*m(a),?(?: .*+)*$",
|
||||
"to": "Alter"
|
||||
}
|
||||
},
|
||||
["Ringnummer"]: {
|
||||
"command": {
|
||||
"name": "REGEX_EDIT_COL",
|
||||
"match": r"^[^a-zA-Z\d]*([a-zA-Z]*)[^a-zA-Z\d]*(\d+)$",
|
||||
"to": "{{% 1 %}}{{% 2 %}}"
|
||||
}
|
||||
},
|
||||
["Art"]: {
|
||||
"command": {
|
||||
"name": "FIND_AND_REPLACE",
|
||||
"map": SPICIES
|
||||
}
|
||||
},
|
||||
["Ort"]: {
|
||||
"command": {
|
||||
"name": "REGEX_MOVE_TO_COL",
|
||||
"with_input_iteration": flatten_dict(CATCHED_BY), # Moves matching group {{% 1 %}} to "to"
|
||||
"match": r"^(?:[^ ]* +)*({{% 1 %}}),?(?: .*+)*$",
|
||||
"to": "Fangart"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
ROW_INSTRUCTIONS = [
|
||||
{
|
||||
"command": "ROW_COLOR_TO_BOOL", # Match when found as text color in any col of the row
|
||||
"color": ["#ff0000", "#0000ff"],
|
||||
"approximate": True,
|
||||
"column": "Wiederfunde",
|
||||
"value": "TRUE"
|
||||
},
|
||||
{
|
||||
"command": "ROW_COPY_REMAINING"
|
||||
}
|
||||
]
|
||||
Loading…
x
Reference in New Issue
Block a user