1
0

Autoritatīvās datnes mapē data/; datnes nosaukums = identifikators

data/lv-dekl-2026-05-28.xml — A. Kulberga valdības deklarācija;
data/lv-mk-2026-05-28.rp.xml — valdības rīcības plāns (MK rīkojums Nr. 449);
data/organizacijas.xml, data/valdibas.xml — reģistri.
Pārbaudītājs pārbauda, ka deklarācijas un rīcības plāna datnes nosaukums
atbilst saknes elementa identifikatoram.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016679RwmHsuTFfxt26wP6rk
This commit is contained in:
2026-10-09 22:02:28 +00:00
parent 124aea90e4
commit c80cb37187
11 changed files with 46 additions and 28 deletions

View File

@@ -1,6 +1,6 @@
"""Izveido organizāciju reģistru (organizaciju-registrs-0.2.xsd) no VDVC reģistra (vdvc-register.xml).
python3 tools/organizacijas_no_vdvc.py source/organizacijas/vdvc-register.xml examples/organizacijas.xml
python3 tools/organizacijas_no_vdvc.py source/organizacijas/vdvc-register.xml data/organizacijas.xml
Avots — Valsts kases „Valsts budžeta iestāžu saraksts” (01.09.2023; iestades_PAS_VBI_01092023.pdf): iestādes kods (ePlāni un eTāmes),
nodokļu maksātāja reģistrācijas numurs, nosaukums, ministrijas kods (budžeta resors saskaņā ar gadskārtējo valsts budžeta likumu).

View File

@@ -1,6 +1,6 @@
"""Pārveido Valdības rīcības plānu no likumi.lv lapas (saglabāta kā .mhtml vai .html) uz XML (valdibas-deklaracijas-ricibas-plans-0.2.xsd).
python3 tools/ricibas_plans_no_likumi.py <lapa.mhtml> <deklaracija.xml> <organizacijas.xml> <izvade.xml>
python3 tools/ricibas_plans_no_likumi.py source/ricibas-plans/likumi_lv_369925.mhtml data/lv-dekl-2026-05-28.xml data/organizacijas.xml data/lv-mk-2026-05-28.rp.xml
likumi.lv lapā ir četras tabulas: 0 — viss plāns; 1 — rīkojuma 1. pielikums (finansējums rasts);
2 — 2. pielikums (nepieciešams papildu finansējums); 3 — prioritārie pasākumi.

View File

@@ -5,7 +5,7 @@
import os, re, shutil, subprocess, sys, tempfile
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
EX = os.path.join(ROOT, "examples")
EX = os.path.join(ROOT, "data")
CASES = [
("pasākums neesošam uzdevumam", "lv-mk-2026-05-28.rp.xml", 'id="lv-mk-2026-05-28.rp.u014.p1" number="14.1." task="lv-dekl-2026-05-28.u014"', 'id="lv-mk-2026-05-28.rp.u099.p1" number="99.1." task="lv-dekl-2026-05-28.u099"', "uzdevums 99 deklarācijā nav"),
@@ -27,7 +27,7 @@ def run(folder):
def main():
base = run(EX)
ok = base.returncode == 0; print(("PASS" if ok else "FAIL") + " piemēri ir derīgi")
ok = base.returncode == 0; print(("PASS" if ok else "FAIL") + " dati ir derīgi")
for name, fname, old, new, expect in CASES:
d = tempfile.mkdtemp()
for f in os.listdir(EX): shutil.copy(os.path.join(EX, f), d)

View File

@@ -1,6 +1,6 @@
"""Pārbaudītājs: XSD + identifikatoru noteikumi + saites starp datnēm + kārtības ruļļa noteikumi.
python3 tools/validate.py [mape ar XML datnēm] (noklusējums: examples/)
python3 tools/validate.py [mape ar XML datnēm] (noklusējums: data/)
Ziņo: E = kļūda (izejas kods 1), W = brīdinājums, I = informācija.
"""
@@ -37,6 +37,7 @@ def load(folder):
sc = etree.XMLSchema(etree.parse(os.path.join(ROOT, "schemas", SCHEMAS[name])))
if not sc.validate(t):
for e in sc.error_log: rep("E", f, f"XSD {e.line}: {e.message}")
if name in ("GovernmentDeclaration", "GovernmentActionPlan") and f != root.get("id") + ".xml": rep("E", f, f"datnes nosaukumam jābūt {root.get('id')}.xml (identifikators)")
docs[name].append((f, root))
return docs
@@ -183,4 +184,4 @@ def main(folder):
if __name__ == "__main__":
sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else os.path.join(ROOT, "examples")))
sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else os.path.join(ROOT, "data")))