7 jauni mezgli (arhīvi, civildienesta politika, kapitālsabiedrības, ģeotelpiskā informācija, pārtikas drošība, veselības aprūpes finansēšana, jaunatne); 149 punkti pārvietoti. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016igpMJBtapmG6vHE4vSF9q
349 lines
24 KiB
Python
349 lines
24 KiB
Python
"""generate.py — data/funkcijas.xml no divām daļām:
|
|
H horizontālās funkcijas (definētas šeit, HORIZONTAL; lietvedība sadalīta pēc Arhīvu likuma 4. panta);
|
|
S nozaru funkcijas no valdības funkciju klasifikācijas (sources/cofog.csv — kodi, kā VDZP budžeta datos).
|
|
|
|
python3 tools/generate.py # raksta data/funkcijas.xml un pārbauda pret XSD
|
|
Izmaiņas katalogā veic šeit (vai CSV) un ģenerē no jauna; jauna izmaiņa → jauns DATA_VERSIONS ieraksts.
|
|
"""
|
|
import csv
|
|
import sys
|
|
from lxml import etree
|
|
|
|
NS = "urn:pppa:vpk:funkcijas:0.1"
|
|
Q = "{%s}" % NS
|
|
ARH = "lv-lik-2010-02-11" # Arhīvu likums
|
|
PIL = "lv-lik-2016-12-15" # Publisko iepirkumu likums
|
|
APL = "lv-lik-2001-10-25" # Administratīvā procesa likums
|
|
VPIL = "lv-lik-2002-06-06" # Valsts pārvaldes iekārtas likums
|
|
EADR = "lv-lik-2016-06-16" # Oficiālās elektroniskās adreses likums
|
|
IESN = "lv-lik-2007-09-27" # Iesniegumu likums
|
|
CSL = "lv-lik-1997-10-01" # Ceļu satiksmes likums
|
|
|
|
DATA_VERSIONS = [
|
|
("2026-10-24", ["Pirmā versija: nozaru funkcijas pēc COFOG (99 kodi no VDZP budžeta datiem), "
|
|
"horizontālās funkcijas H.01–H.10; lietvedība (H.01) sadalīta pēc Arhīvu likuma 4., 6.–9. panta."]),
|
|
("2026-10-24", ["Nozaru funkcijām atslēgvārdi (SECTOR_KEYWORDS), lai tām piesaistītu likumu pilnvarojumus un nolikumu punktus.",
|
|
"H.01.08 pamats — Oficiālās elektroniskās adreses likums, turētājs arī VDAA (sistēmas pārzinis); "
|
|
"H.01.09 pamats — Iesniegumu likums."]),
|
|
("2026-10-24", ["S.04.510 Autotransports sadalīts: reģistrācija, valsts tehniskā apskate, vadītāju apmācība un apliecības "
|
|
"(pamats — Ceļu satiksmes likums 10., 16., 22. pants)."]),
|
|
("2026-10-24", ["H.05 IKT sadalīts H.05.01–H.05.08; jaunas horizontālās funkcijas H.11–H.14.",
|
|
"Nolikumu punktu klasifikācija (sources/klasifikacija.csv): pirmā partija — VARAM resors un KISC, MI priekšlikums."]),
|
|
("2026-10-24", ["Visi 2176 nolikumu funkciju un uzdevumu punkti (95 nolikumi) klasificēti, MI priekšlikums; kataloga robi — docs/kataloga-robi.md."]),
|
|
("2026-10-24", ["Kataloga robu aizpilde: S.01.600.01–.03, S.04.210.01, S.07.610.01, S.08.290.01, S.08.620.01; punkti pārvietoti ar sources/remap.csv."]),
|
|
]
|
|
|
|
# Nozaru funkciju atslēgvārdi (vārda sākums mazajiem burtiem). Šauri, lai sasaiste ar likumu pilnvarojumiem un
|
|
# nolikumu punktiem būtu pārskatāma; plašākas grupas (S.NN) atslēgvārdus saņem tikai tad, ja nav precīzāka.
|
|
SECTOR_KEYWORDS = {
|
|
"S.01.110": ["saeim", "valsts prezident", "ministru kabinet sēd"],
|
|
"S.01.120": ["nodokļ", "valsts kas", "fiskāl", "budžeta likum"],
|
|
"S.01.131": ["ārlietu", "ārpolitik"],
|
|
"S.01.132": ["diplomātisk", "konsulār", "vēstniecīb"],
|
|
"S.01.133": ["starptautiskajās organizācijās", "dalības maks"],
|
|
"S.01.320": ["statistik", "reģionālās politik", "pašvaldību darbības uzraudzīb", "reģionālā attīstīb"],
|
|
"S.01.400": ["zinātnisk", "fundamentālo pētījum"],
|
|
"S.01.500": ["lietišķo pētījum", "eksperimentālās izstrād", "inovācij"],
|
|
"S.01.700": ["valsts parād", "aizņēmum"],
|
|
"S.02.100": ["valsts aizsardzīb", "nacionālo bruņoto spēk", "bruņoto spēk", "militār", "zemessardz"],
|
|
"S.02.500": ["mobilizācij", "aizsardzības industrij"],
|
|
"S.03.110": ["policij", "noziedzīg", "sabiedriskās kārtīb"],
|
|
"S.03.120": ["robežsardz", "valsts robež", "robežkontrol"],
|
|
"S.03.130": ["pilsonīb", "migrācij", "uzturēšanās atļauj", "patvērum", "vīzu", "vīzas"],
|
|
"S.03.200": ["ugunsdrošīb", "ugunsdzēs", "glābšan", "civilās aizsardzīb", "katastrof"],
|
|
"S.03.311": ["tiesu sistēm", "tiesneš", "tiesu administrācij", "tiesvedīb"],
|
|
"S.03.320": ["prokuratūr", "prokuror"],
|
|
"S.03.330": ["probācij"],
|
|
"S.03.390": ["zvērinātu advokāt", "notār", "tiesu izpildītāj", "maksātnespēj"],
|
|
"S.03.410": ["ieslodzījum", "brīvības atņemšan"],
|
|
"S.04.111": ["komercdarbīb", "uzņēmējdarbīb", "konkurenc", "patērētāju tiesīb"],
|
|
"S.04.112": ["komercreģistr", "uzņēmumu reģistr", "tirdzniecīb"],
|
|
"S.04.121": ["nodarbinātīb", "darba tiesīb", "darba aizsardzīb"],
|
|
"S.04.122": ["bezdarbniek", "darba meklētāj"],
|
|
"S.04.210": ["lauksaimniecīb", "lauksaimniecības dzīvniek", "augu aizsardzīb", "veterinār", "pārtikas aprit"],
|
|
"S.04.220": ["mežsaimniecīb", "meža resurs", "meža zem"],
|
|
"S.04.230": ["zivsaimniecīb", "zvejniecīb", "medīb", "medniecīb"],
|
|
"S.04.240": ["lauku attīstīb", "lauku atbalst"],
|
|
"S.04.300": ["enerģētik", "elektroenerģij", "siltumenerģij", "dabasgāz", "atjaunojamo energoresurs"],
|
|
"S.04.430": ["būvniecīb", "būvatļauj", "būvvald", "būvuzraudzīb"],
|
|
"S.04.510": ["autoceļ", "ceļu satiksm", "transportlīdzekļ", "autopārvadājum"],
|
|
"S.04.540": ["aviācij", "gaisa kuģ", "lidost", "gaisa satiksm"],
|
|
"S.04.500": ["dzelzceļ", "jūras transport", "ostu", "kuģošan"],
|
|
"S.04.600": ["elektronisko sakar", "pasta pakalpojum", "radiofrekvenč"],
|
|
"S.04.730": ["tūrism"],
|
|
"S.05.100": ["atkritum"],
|
|
"S.05.300": ["piesārņojum", "siltumnīcefekta gāz", "ūdens kvalitāt", "gaisa kvalitāt"],
|
|
"S.05.400": ["bioloģiskās daudzveidīb", "īpaši aizsargājam", "dabas aizsardzīb", "ainav"],
|
|
"S.05.600": ["vides aizsardzīb", "ietekmes uz vidi novērtējum"],
|
|
"S.06.200": ["teritorijas plānojum", "teritorijas attīstības plānošan", "teritoriālplānojum", "zemes ierīcīb"],
|
|
"S.07.110": ["zāļu", "medikament", "farmac"],
|
|
"S.07.210": ["ambulator", "ģimenes ārst", "primārās veselības aprūp"],
|
|
"S.07.300": ["slimnīc", "stacionār"],
|
|
"S.07.460": ["asins donor", "asins sagād"],
|
|
"S.07.610": ["veselības aprūp", "ārstniecības iestāž", "ārstniecības person"],
|
|
"S.07.620": ["sabiedrības veselīb", "infekcijas slimīb", "epidemioloģ"],
|
|
"S.08.100": ["sport"],
|
|
"S.08.210": ["bibliotēk"],
|
|
"S.08.220": ["muzej", "kultūras pieminekļ", "kultūras mantojum"],
|
|
"S.08.240": ["teātr", "koncert", "skatuves māksl"],
|
|
"S.08.290": ["kultūras politik", "kultūras institūcij", "radošo industrij"],
|
|
"S.08.310": ["elektronisko plašsaziņas līdzekļ", "sabiedriskā medij", "sabiedrisko medij"],
|
|
"S.08.330": ["izdevniecīb", "obligātā eksemplār"],
|
|
"S.08.400": ["reliģisk"],
|
|
"S.09.210": ["vispārējās izglītīb", "pamatizglītīb", "vidējās izglītīb", "pirmsskolas izglītīb"],
|
|
"S.09.200": ["profesionālās izglītīb"],
|
|
"S.09.410": ["augstākās izglītīb", "augstskol", "universitāt", "studij"],
|
|
"S.09.430": ["studiju kredīt", "studējošo kredīt"],
|
|
"S.09.510": ["interešu izglītīb", "profesionālās ievirzes"],
|
|
"S.09.520": ["pedagogu profesionālās", "tālākizglītīb", "valsts administrācijas skol"],
|
|
"S.09.810": ["izglītības kvalitāt", "izglītības iestāžu akreditācij", "izglītības programm"],
|
|
"S.10.110": ["slimības pabalst", "darbnespēj"],
|
|
"S.10.120": ["invaliditāt"],
|
|
"S.10.200": ["vecuma pensij", "pensij", "gados vec"],
|
|
"S.10.400": ["ģimenes valsts pabalst", "bērna kopšan", "bērnu tiesību aizsardzīb", "ārpusģimenes aprūp"],
|
|
"S.10.500": ["bezdarba pabalst", "bezdarba gadījum"],
|
|
"S.10.600": ["mājokļa pabalst", "dzīvokļa jautājum", "mājokļu atbalst"],
|
|
"S.10.700": ["sociālās palīdzīb", "sociālo pakalpojum", "trūcīg", "maznodrošināt"],
|
|
"S.10.910": ["sociālās apdrošināšan", "sociālās drošīb"],
|
|
}
|
|
|
|
# Nozaru funkciju sīkāks sadalījums, kur valdības funkciju klasifikācija ir par rupju: id, nosaukums, apraksts,
|
|
# pamats [(vienība, atsauce)], atslēgvārdi. Budžeta kods paliek vecākfunkcijai.
|
|
SECTOR_CHILDREN = {
|
|
"S.01.600": [
|
|
("S.01.600.01", "Valsts pārvaldes un civildienesta politika", "Valsts pārvaldes attīstība, cilvēkresursi, atlīdzība, laba pārvaldība.",
|
|
[], ["valsts pārvaldes attīstības politik", "civildienest", "atlīdzības sistēm"]),
|
|
("S.01.600.02", "Kapitālsabiedrību pārvaldība", "Publisku personu kapitāla daļu un kapitālsabiedrību pārvaldības koordinācija.",
|
|
[], ["kapitālsabiedrību pārvaldīb", "kapitāla daļu"]),
|
|
("S.01.600.03", "Ģeodēzija, kartogrāfija un ģeotelpiskā informācija", "Ģeodēziskā atskaites sistēma, kartes, ģeotelpiskie pamatdati.",
|
|
[], ["ģeodēz", "kartogrāf", "ģeotelpisk"]),
|
|
],
|
|
"S.04.210": [
|
|
("S.04.210.01", "Pārtikas drošība, veterinārija un fitosanitārija", "Pārtikas aprites, dzīvnieku veselības un augu aizsardzības uzraudzība.",
|
|
[], ["pārtikas aprit", "veterinār", "fitosanitār", "augu aizsardzības līdzekļ", "dzīvnieku veselīb"]),
|
|
],
|
|
"S.07.610": [
|
|
("S.07.610.01", "Veselības aprūpes pakalpojumu finansēšana", "Valsts apmaksāto veselības aprūpes pakalpojumu līgumi, tarifi, norēķini.",
|
|
[], ["valsts apmaksāto veselības aprūpes pakalpojum", "apmaksājamo veselības aprūpes"]),
|
|
],
|
|
"S.08.290": [
|
|
("S.08.290.01", "Arhīvi", "Nacionālā dokumentārā mantojuma uzkrāšana, glabāšana un pieejamība.",
|
|
[], ["dokumentārā mantojum", "nacionālais arhīv"]),
|
|
],
|
|
"S.08.620": [
|
|
("S.08.620.01", "Jaunatnes politika un darbs ar jaunatni", "Darbs ar jaunatni, jaunatnes informācija un līdzdalība.",
|
|
[], ["darbā ar jaunatni", "darbs ar jaunatni", "jaunatnes politik"]),
|
|
],
|
|
"S.04.510": [
|
|
("S.04.510.01", "Transportlīdzekļu reģistrācija",
|
|
"Transportlīdzekļu un to vadītāju valsts reģistrs, reģistrācijas darbības un numura zīmes.",
|
|
[(f"{CSL}.art10", "Ceļu satiksmes likums, 10. pants"), (f"{CSL}.art14s1", "Ceļu satiksmes likums, 14.¹ pants")],
|
|
["transportlīdzekļu reģistrācij", "transportlīdzekļu un to vadītāju valsts reģistr"]),
|
|
("S.04.510.02", "Transportlīdzekļu valsts tehniskā apskate",
|
|
"Tehniskā stāvokļa kontrole un atļauja piedalīties ceļu satiksmē; tehniskā kontrole uz ceļiem.",
|
|
[(f"{CSL}.art16", "Ceļu satiksmes likums, 16. pants")], ["tehnisko apskat", "tehniskās apskat", "tehniskā apskat", "tehniskā stāvokļa kontrol"]),
|
|
("S.04.510.03", "Transportlīdzekļu vadītāju apmācība un vadītāja apliecības",
|
|
"Vadītāju apmācība, eksāmeni un vadītāja apliecības izsniegšana.",
|
|
[(f"{CSL}.art22", "Ceļu satiksmes likums, 22. pants")], ["vadītāja apliecīb", "vadītāju apmācīb"]),
|
|
],
|
|
}
|
|
|
|
EVERY = ("every_institution", None, "katra iestāde")
|
|
LNA = ("institution", "22-0663", "Latvijas Nacionālais arhīvs")
|
|
CAB = ("cabinet", None, "Ministru kabinets")
|
|
VDAA = ("institution", "21-0627", "Valsts digitālās attīstības aģentūra")
|
|
|
|
# id, nosaukums, apraksts, pamats [(vienība, atsauce)], turētāji, atslēgvārdi, apakšfunkcijas
|
|
HORIZONTAL = [
|
|
("H.01", "Lietvedība un arhīvu pārvaldība",
|
|
"Iestādes darbības dokumentēšana, dokumentu klasifikācija, glabāšana, pieejamība un nodošana valsts glabāšanā.",
|
|
[(f"{ARH}.art4", "Arhīvu likums, 4. pants")], [EVERY, LNA],
|
|
["dokumentu pārvaldīb", "dokumentu un arhīvu pārvaldīb", "lietved", "dokumentu aprit", "dokumentu vadīb",
|
|
"arhīva pārvaldīb", "dokumentu glabāšan"],
|
|
[
|
|
("H.01.01", "Darbības dokumentēšana", "Autentisku, ticamu un integrētu darbības liecību radīšana.",
|
|
[(f"{ARH}.art4.d1.p1", "Arhīvu likums, 4. panta 1. daļas 1. punkts")], [EVERY],
|
|
["dokumentēšan", "darbības liecīb"], []),
|
|
("H.01.02", "Dokumentu klasifikācija un sistematizācija",
|
|
"Klasifikācijas shēma, saskaņota ar Latvijas Nacionālo arhīvu.",
|
|
[(f"{ARH}.art4.d1.p2", "Arhīvu likums, 4. panta 1. daļas 2. punkts"),
|
|
(f"{ARH}.art4.d3", "Arhīvu likums, 4. panta 3. daļa")], [EVERY, LNA],
|
|
["klasifikācij", "sistematizācij"], []),
|
|
("H.01.03", "Dokumentu pārvaldības iekšējā kontrole un atbildība",
|
|
"Iekšējā kontrole un uzraudzība; iestādes vadītāja atbildība.",
|
|
[(f"{ARH}.art4.d1.p3", "Arhīvu likums, 4. panta 1. daļas 3. punkts"),
|
|
(f"{ARH}.art4.d5", "Arhīvu likums, 4. panta 5. daļa")], [EVERY],
|
|
["dokumentu pārvaldības iekšēj"], []),
|
|
("H.01.04", "Dokumentu glabāšana, izmantošana un pieejamība",
|
|
"Glabāšana līdz nodošanai arhīvā; izziņas, kopijas, izraksti.",
|
|
[(f"{ARH}.art4.d1.p4", "Arhīvu likums, 4. panta 1. daļas 4. punkts"),
|
|
(f"{ARH}.art4.d2.p4", "Arhīvu likums, 4. panta 2. daļas 4. punkts")], [EVERY],
|
|
["dokumentu glabāšan", "dokumentu pieejamīb", "dokumentu kopij", "izziņ"], []),
|
|
("H.01.05", "Institūcijas arhīva pārvaldība un dokumentu izvērtēšana",
|
|
"Glabāšanas termiņi, arhīviskā vērtība, aprakstīšana, uzziņu sistēma.",
|
|
[(f"{ARH}.art4.d2", "Arhīvu likums, 4. panta 2. daļa"), (f"{ARH}.art8", "Arhīvu likums, 8. pants")],
|
|
[EVERY, LNA], ["arhīvisk", "glabāšanas termiņ", "uzziņu sistēm", "dokumentu izvērtēšan"], []),
|
|
("H.01.06", "Dokumentu nodošana pastāvīgā valsts glabāšanā",
|
|
"Pastāvīgi glabājamo dokumentu nodošana Latvijas Nacionālajam arhīvam; likvidējamās iestādes.",
|
|
[(f"{ARH}.art6", "Arhīvu likums, 6. pants"), (f"{ARH}.art7", "Arhīvu likums, 7. pants")], [EVERY, LNA],
|
|
["pastāvīgā valsts glabāšan", "valsts glabāšan"], []),
|
|
("H.01.07", "Publisko dokumentu pārvēršana elektroniskā formā",
|
|
"Digitalizācija ar integritātes un autentiskuma pārbaudi.",
|
|
[(f"{ARH}.art9", "Arhīvu likums, 9. pants")], [EVERY], ["pārvērš", "digitalizācij"], []),
|
|
("H.01.08", "Oficiālā elektroniskā saziņa",
|
|
"Dokumentu sūtīšana un saņemšana caur oficiālo elektronisko adresi.",
|
|
[(EADR, "Oficiālās elektroniskās adreses likums")], [EVERY, VDAA],
|
|
["oficiālās elektroniskās adres", "e-adres"], []),
|
|
("H.01.09", "Iesniegumu reģistrēšana un atbildes termiņos",
|
|
"Iesniegumu un sarakstes uzskaite, atbildes likumā noteiktajos termiņos.",
|
|
[(IESN, "Iesniegumu likums")], [EVERY], ["iesniegum"], []),
|
|
]),
|
|
("H.02", "Finanšu vadība un grāmatvedība", "Budžeta plānošana, izpilde, grāmatvedības uzskaite.",
|
|
[], [EVERY], ["grāmatvedīb", "budžeta plānošan", "budžeta izpild", "finanšu vadīb", "finanšu pārskat"], []),
|
|
("H.03", "Personāla vadība", "Personāla atlase, amati, atlīdzība, attīstība.",
|
|
[], [EVERY], ["personāla vadīb", "personāla atlas", "cilvēkresurs", "atlīdzīb", "amatu katalog"], []),
|
|
("H.04", "Publiskie iepirkumi", "Iepirkumu plānošana, procedūras, līgumu izpildes kontrole.",
|
|
[(PIL, "Publisko iepirkumu likums")], [EVERY], ["iepirkum"], []),
|
|
("H.05", "IKT un informācijas sistēmas", "Informācijas sistēmu un IKT infrastruktūras uzturēšana un attīstība.",
|
|
[], [EVERY], ["informācijas sistēm", "informācijas un komunikācijas tehnoloģ", "ikt "],
|
|
[
|
|
("H.05.01", "IKT infrastruktūra un koplietošanas pakalpojumi",
|
|
"Datu centri, tīkli, darba vietas, koplietošanas infrastruktūra un aprīkojums.",
|
|
[], [EVERY], ["ikt infrastruktūr", "koplietošanas infrastruktūr", "tehnoloģiju infrastruktūr"], []),
|
|
("H.05.02", "Informācijas sistēmu izstrāde, ieviešana un uzturēšana",
|
|
"Informācijas sistēmu iegāde, izstrāde, ieviešana, attīstība un uzturēšana.",
|
|
[], [EVERY], ["informācijas sistēmu izstrād", "informācijas sistēmu uzturēšan", "informācijas sistēmu attīstīb"], []),
|
|
("H.05.03", "Elektronisko pakalpojumu nodrošināšana", "E-pakalpojumu pieejamība fiziskām un juridiskām personām.",
|
|
[], [EVERY], ["elektronisko pakalpojum", "e-pakalpojum"], []),
|
|
("H.05.04", "IKT lietotāju atbalsts un apmācība", "Lietotāju atbalsts, palīdzības dienests, apmācība.",
|
|
[], [EVERY], ["lietotāju atbalst", "lietotājiem atbalst"], []),
|
|
("H.05.05", "IKT drošība un darbības nepārtrauktība", "Informācijas un kiberdrošība, pieejamība, nepārtrauktība.",
|
|
[], [EVERY], ["kiberdrošīb", "informācijas drošīb", "darbības nepārtrauktīb"], []),
|
|
("H.05.06", "Iestādes vai resora IKT plānošana un finansējums",
|
|
"IKT attīstības plānošana, finansējuma plānošana un IKT politikas īstenošana iestādē vai resorā.",
|
|
[], [EVERY], ["tehnoloģiju attīstības politik", "ikt attīstīb"], []),
|
|
("H.05.07", "Valsts pārvaldes digitālās transformācijas politika un arhitektūra",
|
|
"Valsts līmeņa digitālo tehnoloģiju pārvaldība, arhitektūras principi, koplietošanas pakalpojumu koordinācija.",
|
|
[], [], ["digitālās transformācij", "digitālo tehnoloģiju pārvaldīb", "informācijas sabiedrīb", "arhitektūras princip"], []),
|
|
("H.05.08", "Datu pārvaldība un atvērtie dati", "Datu pārvaldības politika, datu koplietošana un atkalizmantošana.",
|
|
[], [], ["datu pārvaldīb", "atvērto dat", "augstvērtīgo datu"], []),
|
|
]),
|
|
("H.06", "Politikas plānošana un normatīvo aktu izstrāde",
|
|
"Attīstības plānošanas dokumentu un tiesību aktu projektu izstrāde un atzinumi.",
|
|
[], [EVERY], ["tiesību aktu projekt", "normatīvo aktu projekt", "politikas plānošanas dokument",
|
|
"attīstības plānošanas dokument"], []),
|
|
("H.07", "Komunikācija ar sabiedrību", "Sabiedrības informēšana un iesaiste.",
|
|
[], [EVERY], ["sabiedrības informēšan", "informē sabiedrīb", "komunikācij"], []),
|
|
("H.08", "Iekšējā kontrole un audits", "Iekšējās kontroles sistēma un iekšējais audits.",
|
|
[], [EVERY], ["iekšējā audit", "iekšējās kontroles", "iekšējo audit"], []),
|
|
("H.09", "Administratīvais process", "Administratīvo aktu izdošana un apstrīdēšana.",
|
|
[(APL, "Administratīvā procesa likums")], [EVERY], ["administratīvā akt", "administratīvo akt", "administratīvais akt",
|
|
"administratīvā procesa"], []),
|
|
("H.10", "Personas datu aizsardzība", "Personas datu apstrāde atbilstoši regulai (ES) 2016/679.",
|
|
[], [EVERY], ["personas dat"], []),
|
|
("H.11", "Publisko pakalpojumu pārvaldība", "Valsts pārvaldes pakalpojumu pārvaldības politika, vienotais kontaktpunkts.",
|
|
[], [], ["pakalpojumu pārvaldīb", "vienotā kontaktpunkt"], []),
|
|
("H.12", "ES fondu un ārvalstu finanšu instrumentu vadība",
|
|
"ES fondu un citu ārvalstu finanšu instrumentu programmu vadība, ieviešana un uzraudzība.",
|
|
[], [], ["eiropas savienības fondu", "ārvalstu finanšu instrument", "interreg"], []),
|
|
("H.13", "Starptautiskā sadarbība", "Sadarbība ar ārvalstu un starptautiskām institūcijām, dalība starptautiskās organizācijās.",
|
|
[], [EVERY], ["starptautiskajās organizācijās", "starpvalstu sadarbīb"], []),
|
|
("H.14", "Valsts īpašuma pārvaldība", "Iestādes turējumā vai valdījumā nodotā valsts kustamā un nekustamā īpašuma pārvaldība.",
|
|
[], [EVERY], ["nekustamos īpašum", "valsts īpašumā esošo mant"], []),
|
|
]
|
|
|
|
|
|
def E(parent, tag, text=None, **attrs):
|
|
e = etree.SubElement(parent, Q + tag, {k: v for k, v in attrs.items() if v is not None})
|
|
if text is not None:
|
|
e.text = text
|
|
return e
|
|
|
|
|
|
def horizontal(parent, item, level):
|
|
fid, name, descr, basis, holders, keys, children = item
|
|
f = E(parent, "Function", id=fid, kind="horizontal", level=str(level))
|
|
E(f, "Name", name)
|
|
if descr:
|
|
E(f, "Description", descr)
|
|
for unit, ref in basis:
|
|
E(f, "Basis", ref, unit=unit)
|
|
for htype, vpk, label in holders:
|
|
E(f, "Holder", label, type=htype, vpkId=vpk)
|
|
for k in keys:
|
|
E(f, "Keyword", k)
|
|
for c in children:
|
|
horizontal(f, c, level + 1)
|
|
|
|
|
|
def main(out="data/funkcijas.xml"):
|
|
root = etree.Element(Q + "FunctionCatalogue", nsmap={None: NS}, id="lv-funkcijas", schemaVersion="0.1")
|
|
E(root, "Title", "Valsts pārvaldes funkciju katalogs")
|
|
E(root, "Description", "Nozaru funkcijas pēc valdības funkciju klasifikācijas (S) un horizontālās funkcijas, kas jāveic "
|
|
"katrai iestādei (H). Katalogs ir pamats, pie kura VDZP sasaista likumu pilnvarojumus, "
|
|
"nolikumu punktus un budžeta izdevumus.")
|
|
E(root, "Source", "Valdības funkciju klasifikācija, kā valsts budžeta izpildē (VDZP B03/B15)")
|
|
E(root, "Source", "Arhīvu likums (Likums-as-Code lv-lik-2010-02-11)", url="https://likumi.lv/ta/id/205971")
|
|
h = E(root, "Function", id="H", kind="horizontal", level="1")
|
|
E(h, "Name", "Horizontālās (atbalsta) funkcijas")
|
|
E(h, "Description", "Funkcijas, kas jāveic katrai iestādei neatkarīgi no nozares.")
|
|
for item in HORIZONTAL:
|
|
horizontal(h, item, 2)
|
|
s = E(root, "Function", id="S", kind="sector", level="1")
|
|
E(s, "Name", "Nozaru funkcijas (valdības funkciju klasifikācija)")
|
|
rows = list(csv.DictReader(open("sources/cofog.csv", encoding="utf-8")))
|
|
l1 = {}
|
|
for r in rows:
|
|
if r["l1"] not in l1:
|
|
f = E(s, "Function", id="S." + r["l1"][:2], kind="sector", level="2")
|
|
E(f, "Name", r["l1_name"])
|
|
E(f, "Cofog", r["l1"])
|
|
l1[r["l1"]] = f
|
|
if r["code"] == r["l1"]:
|
|
continue
|
|
c = E(l1[r["l1"]], "Function", id="S." + r["code"][:2] + "." + r["code"][3:], kind="sector", level="3")
|
|
E(c, "Name", r["name"])
|
|
E(c, "Cofog", r["code"])
|
|
for k in SECTOR_KEYWORDS.get(c.get("id"), []):
|
|
E(c, "Keyword", k)
|
|
for cid, name, descr, basis, keys in SECTOR_CHILDREN.get(c.get("id"), []):
|
|
g = E(c, "Function", id=cid, kind="sector", level="4")
|
|
E(g, "Name", name)
|
|
E(g, "Description", descr)
|
|
for unit, ref in basis:
|
|
E(g, "Basis", ref, unit=unit)
|
|
for k in keys:
|
|
E(g, "Keyword", k)
|
|
unknown = set(SECTOR_KEYWORDS) - {f.get("id") for f in s.iter(Q + "Function")}
|
|
if unknown:
|
|
sys.exit(f"SECTOR_KEYWORDS: nav katalogā {sorted(unknown)}")
|
|
ids = {f.get("id") for f in root.iter(Q + "Function")}
|
|
seen = set()
|
|
for r in csv.DictReader(open("sources/klasifikacija.csv", encoding="utf-8")):
|
|
if r["point"] in seen:
|
|
sys.exit(f"klasifikacija.csv: punkts divreiz {r['point']}")
|
|
seen.add(r["point"])
|
|
if r["type"] == "function" and r["function"] not in ids:
|
|
sys.exit(f"klasifikacija.csv: {r['point']} — nav funkcijas {r['function']}")
|
|
E(root, "Classification", r["rationale"], point=r["point"], type=r["type"],
|
|
function=r["function"] or None, status=r["status"], by=r["by"], date=r["date"])
|
|
for n, (date, changes) in enumerate(DATA_VERSIONS, 1):
|
|
dv = E(root, "DataVersion", number=str(n), date=date)
|
|
for ch in changes:
|
|
E(dv, "Change", ch)
|
|
etree.indent(root, space=" ")
|
|
doc = etree.ElementTree(root)
|
|
xsd = etree.XMLSchema(etree.parse("schemas/funkcijas-0.1.xsd"))
|
|
if not xsd.validate(doc):
|
|
sys.exit(f"XSD: {xsd.error_log.last_error}")
|
|
data = etree.tostring(root, xml_declaration=True, encoding="UTF-8")
|
|
open(out, "wb").write(data + b"\n")
|
|
n_h = len(root.findall(f".//{Q}Function[@kind='horizontal']"))
|
|
n_s = len(root.findall(f".//{Q}Function[@kind='sector']"))
|
|
n_c = len(root.findall(f"{Q}Classification"))
|
|
print(f"{out}: {n_h} horizontālās, {n_s} nozaru funkcijas, {n_c} punktu klasifikācijas; XSD derīgs")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(*sys.argv[1:])
|