Files
kicad-ci/.scripts/post_panel.py
2025-09-07 15:06:43 +10:00

46 lines
1.7 KiB
Python

import json
import sys
import shutil
proj = sys.argv[1]
pcb = sys.argv[2]
print("Starting post_panel script")
dest_folder = '/'.join(proj.split('/')[:-1])
dest_name = proj.split('/')[-1].removesuffix(".kicad_pro")
src_name = pcb.removesuffix(".kicad_pcb")
src_proj = src_name + ".kicad_pro"
try:
shutil.copy(src_name + ".kicad_dru", dest_folder + "/" + dest_name + ".kicad_dru")
except Exception:
pass
json_file = open(src_proj)
json_str = json_file.read()
src = json.loads(json_str)
json_file = open(proj)
json_str = json_file.read()
dest = json.loads(json_str)
dest["board"]["design_settings"]["rule_severities"]["duplicate_footprints"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["extra_footprint"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["lib_footprint_issues"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["lib_footprint_mismatch"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["hole_near_hole"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["silk_overlap"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["silk_over_copper"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["drill_out_of_range"] = "ignore"
dest["board"]["design_settings"]["rule_severities"]["invalid_outline"] = "warning"
# # This one is just until kibot image is updated to 7.0.5
# dest["board"]["design_settings"]["rule_severities"]["copper_sliver"] = "ignore"
dest["net_settings"]["classes"] = src["net_settings"]["classes"]
dest["net_settings"]["netclass_patterns"] = src["net_settings"]["netclass_patterns"]
with open(proj, mode="w") as json_file:
json.dump(dest, json_file, indent=2)
print("Finished post_panel script")