diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..5282280
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,7 @@
+*.csv filter=bom_csv
+*.html filter=bom_html
+*.gbr filter=gerber
+*.gbrjob filter=gbrjob
+*.xml filter=xml
+*.kicad_pcb filter=kicad_pcb_f
+*.net filter=net_filter
diff --git a/.gitconfig b/.gitconfig
new file mode 100644
index 0000000..1238a5e
--- /dev/null
+++ b/.gitconfig
@@ -0,0 +1,20 @@
+[filter "bom_csv"]
+ clean = sed -E 's/^BoM Date:.*$/BoM Date:Date/'
+ smudge = sed -E \"s/BoM Date:Date/BoM Date:,`date +\\\"%a %d %b %Y %X %:::z\\\"`/\"
+[filter "bom_html"]
+ clean = sed -E 's/^
BoM Date<\\/td> `date +\\\"%a %d %b %Y %X %:::z\\\"`<\\/td><\\/tr>/\"
+[filter "gerber"]
+ clean = sed -E -e 's/^%TF.CreationDate,.*$/%TF.CreationDate,Date%/' -e 's/^G04 Created by KiCad.*$/G04 Created by KiCad*/'
+ smudge = sed -E \"s/%TF.CreationDate,Date%/%TF.CreationDate,`date +%Y-%m-%dT%H:%M:%S%:z`/\"
+[filter "gbrjob"]
+ clean = sed -E 's/\"CreationDate\":.*/\"CreationDate\": \"Date\"/'
+ smudge = sed -E \"s/\\\"CreationDate\\\": \\\"Date\\\"/\\\"CreationDate\\\": \\\"`date +%Y-%m-%dT%H:%M:%S%:z`\\\"/\"
+[filter "xml"]
+ clean = sed -E -e 's/^ .*<\\/date>/ Date2<\\/date>/' -e 's/^ .*<\\/date>/ Date1<\\/date>/'
+ smudge = sed -E -e \"s/Date1<\\/date>/`date +\\\"%a %d %b %Y %X %:::z\\\"`<\\/date>/\" -e \"s/Date2<\\/date>/`date +\\\"%Y-%m-%d\\\"`<\\/date>/\"
+[filter "kicad_pcb_f"]
+ clean = sed -E 's/\\(host pcbnew ([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+).*/\\(host pcbnew \\1\\)/'
+[filter "net_filter"]
+ clean = sed -E -e 's/\\(date \\\".*\\\"\\)/\\(date \\\"Date\\\"\\)/'
+ smudge = sed -E -e \"s/\\(date \\\"Date\\\"\\)/\\(date \\\"`date +\\\"%a %d %b %Y %X %:::z\\\"`\\\"\\)/\"
diff --git a/Images/Nixie_Tube_Clock-angled_bottom.png b/Images/Nixie_Tube_Clock-angled_bottom.png
new file mode 100644
index 0000000..32c2f3e
Binary files /dev/null and b/Images/Nixie_Tube_Clock-angled_bottom.png differ
diff --git a/Images/Nixie_Tube_Clock-angled_top.png b/Images/Nixie_Tube_Clock-angled_top.png
new file mode 100644
index 0000000..1a1d632
Binary files /dev/null and b/Images/Nixie_Tube_Clock-angled_top.png differ
diff --git a/Manufacturing/Assembly/Nixie_Tube_Clock-bom.csv b/Manufacturing/Assembly/Nixie_Tube_Clock-bom.csv
new file mode 100644
index 0000000..c16562b
--- /dev/null
+++ b/Manufacturing/Assembly/Nixie_Tube_Clock-bom.csv
@@ -0,0 +1 @@
+Row,Quantity Per PCB,References,Value,Datasheet,Footprint,Description,Manufacturer,Manufacturer Part Number,Supplier Part Number
diff --git a/Manufacturing/Assembly/Nixie_Tube_Clock-bom.html b/Manufacturing/Assembly/Nixie_Tube_Clock-bom.html
new file mode 100644
index 0000000..a6de6e3
--- /dev/null
+++ b/Manufacturing/Assembly/Nixie_Tube_Clock-bom.html
@@ -0,0 +1,241 @@
+
+
+
+ Bill of Materials
+
+
+
+
+
+
+
+
+ Bill of Materials
+
+
+
+
+ Schematic : Nixie_Tube_Clock
+ Variant : DRAFT
+ Revision : + (Unreleased)
+ Date : 2025-01-12
+ KiCad Version : 9.0.7+1
+
+
+ Component Groups : 0
+ Component Count : 0 (per PCB)
+
+ Fitted Components : 0 (per PCB)
+ Number of PCBs : 1
+ Total Components : 0 (for 1 PCBs)
+
+
+
+Component Groups
+
+
+
+ Row
+ Quantity Per PCB
+ References
+ Value
+ Datasheet
+ Footprint
+ Description
+ Manufacturer
+ Manufacturer Part Number
+ Supplier Part Number
+
+
+
+
+
+
+Color reference for columns:
+KiCad Fields (default)
+Generated Fields
+User Fields
+Empty Fields
+
+
+
\ No newline at end of file
diff --git a/Nixie_Tube_Clock-netlist.net b/Nixie_Tube_Clock-netlist.net
new file mode 100644
index 0000000..2e386c6
--- /dev/null
+++ b/Nixie_Tube_Clock-netlist.net
@@ -0,0 +1,184 @@
+(export (version "E")
+ (design
+ (source "/workspace/aidanbrzezinski/Nixie_Tube_Clock/Nixie_Tube_Clock.kicad_sch")
+ (date "Date")
+ (tool "Eeschema 9.0.7+1")
+ (textvar (name "ASSEMBLY_NOTES"))
+ (textvar (name "BOARD_NAME") "Nixie Clock Main Board")
+ (textvar (name "COMPANY") "Company Name")
+ (textvar (name "DESIGNER") "Aidan Brzezinski")
+ (textvar (name "FABRICATION_NOTES"))
+ (textvar (name "GIT_HASH_PCB") "1d094e6")
+ (textvar (name "GIT_HASH_SCH") "b199e49")
+ (textvar (name "GIT_URL") "https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git")
+ (textvar (name "PROJECT_NAME") "Nixie Tube Clock")
+ (textvar (name "RELEASE_BODY_1.0.0"))
+ (textvar (name "RELEASE_BODY_1.0.1"))
+ (textvar (name "RELEASE_BODY_1.0.2"))
+ (textvar (name "RELEASE_BODY_1.1.0"))
+ (textvar (name "RELEASE_BODY_UNRELEASED") "Version Unreleased not found.")
+ (textvar (name "RELEASE_DATE") "17-Feb-2026")
+ (textvar (name "RELEASE_DATE_NUM") "2026-02-17")
+ (textvar (name "RELEASE_TITLE_1.0.0"))
+ (textvar (name "RELEASE_TITLE_1.0.1"))
+ (textvar (name "RELEASE_TITLE_1.0.2"))
+ (textvar (name "RELEASE_TITLE_1.1.0"))
+ (textvar (name "RELEASE_TITLE_UNRELEASED") "Version Unreleased not found.")
+ (textvar (name "REVISION") "+ (Unreleased)")
+ (textvar (name "SHEET_NAME_1") "Cover Page")
+ (textvar (name "SHEET_NAME_10") "......................................")
+ (textvar (name "SHEET_NAME_11") "......................................")
+ (textvar (name "SHEET_NAME_12") "......................................")
+ (textvar (name "SHEET_NAME_13") "......................................")
+ (textvar (name "SHEET_NAME_14") "......................................")
+ (textvar (name "SHEET_NAME_15") "......................................")
+ (textvar (name "SHEET_NAME_16") "......................................")
+ (textvar (name "SHEET_NAME_17") "......................................")
+ (textvar (name "SHEET_NAME_18") "......................................")
+ (textvar (name "SHEET_NAME_19") "......................................")
+ (textvar (name "SHEET_NAME_2") "Block Diagram")
+ (textvar (name "SHEET_NAME_20") "......................................")
+ (textvar (name "SHEET_NAME_21") "......................................")
+ (textvar (name "SHEET_NAME_22") "......................................")
+ (textvar (name "SHEET_NAME_23") "......................................")
+ (textvar (name "SHEET_NAME_24") "......................................")
+ (textvar (name "SHEET_NAME_25") "......................................")
+ (textvar (name "SHEET_NAME_26") "......................................")
+ (textvar (name "SHEET_NAME_27") "......................................")
+ (textvar (name "SHEET_NAME_28") "......................................")
+ (textvar (name "SHEET_NAME_29") "......................................")
+ (textvar (name "SHEET_NAME_3") "Project Architecture")
+ (textvar (name "SHEET_NAME_30") "......................................")
+ (textvar (name "SHEET_NAME_31") "......................................")
+ (textvar (name "SHEET_NAME_32") "......................................")
+ (textvar (name "SHEET_NAME_33") "......................................")
+ (textvar (name "SHEET_NAME_34") "......................................")
+ (textvar (name "SHEET_NAME_35") "......................................")
+ (textvar (name "SHEET_NAME_36") "......................................")
+ (textvar (name "SHEET_NAME_37") "......................................")
+ (textvar (name "SHEET_NAME_38") "......................................")
+ (textvar (name "SHEET_NAME_39") "......................................")
+ (textvar (name "SHEET_NAME_4") "Section A - Title A")
+ (textvar (name "SHEET_NAME_40") "......................................")
+ (textvar (name "SHEET_NAME_5") "Section B - Title B")
+ (textvar (name "SHEET_NAME_6") "Power - Sequencing")
+ (textvar (name "SHEET_NAME_7") "Revision History")
+ (textvar (name "SHEET_NAME_8") "......................................")
+ (textvar (name "SHEET_NAME_9") "......................................")
+ (textvar (name "VARIANT") "DRAFT")
+ (sheet (number "1") (name "/") (tstamps "/")
+ (title_block
+ (title)
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Nixie_Tube_Clock.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value ""))))
+ (sheet (number "2") (name "/Block Diagram/") (tstamps "/82da9dbf-ba38-4d08-ba35-a220fa2963b1/")
+ (title_block
+ (title "Block Diagram")
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Block Diagram.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value ""))))
+ (sheet (number "3") (name "/Project Architecture/") (tstamps "/c5103ceb-5325-4a84-a025-9638a412984e/")
+ (title_block
+ (title "Project Architecture")
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Project Architecture.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value ""))))
+ (sheet (number "4") (name "/Project Architecture/Section A - Title A/") (tstamps "/c5103ceb-5325-4a84-a025-9638a412984e/f06537ee-772d-44d3-8c50-e0ba41038c9c/")
+ (title_block
+ (title "Sheet Title A")
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Section A - Title A.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value ""))))
+ (sheet (number "5") (name "/Project Architecture/Section B - Title B/") (tstamps "/c5103ceb-5325-4a84-a025-9638a412984e/e744f3ce-03a6-44a6-8792-1447ef232b9a/")
+ (title_block
+ (title "Sheet Title B")
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Section B - TItle B.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value ""))))
+ (sheet (number "6") (name "/Power - Sequencing/") (tstamps "/5fb05893-0da3-4f58-a52b-cb6d6f4cb80b/")
+ (title_block
+ (title "Power - Sequencing")
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Power - Sequencing.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value ""))))
+ (sheet (number "7") (name "/Revision History/") (tstamps "/6e125bd6-2f99-4e5d-b3ea-4899f4540739/")
+ (title_block
+ (title "Revision History")
+ (company "Company Name")
+ (rev "+ (Unreleased)")
+ (date "Date")
+ (source "Revision History.kicad_sch")
+ (comment (number "1") (value ""))
+ (comment (number "2") (value ""))
+ (comment (number "3") (value ""))
+ (comment (number "4") (value ""))
+ (comment (number "5") (value ""))
+ (comment (number "6") (value ""))
+ (comment (number "7") (value ""))
+ (comment (number "8") (value ""))
+ (comment (number "9") (value "")))))
+ (components)
+ (libparts)
+ (libraries)
+ (nets))
\ No newline at end of file
diff --git a/Nixie_Tube_Clock.kicad_pro b/Nixie_Tube_Clock.kicad_pro
index 1eb10c8..a294382 100644
--- a/Nixie_Tube_Clock.kicad_pro
+++ b/Nixie_Tube_Clock.kicad_pro
@@ -1035,28 +1035,28 @@
]
],
"text_variables": {
- "ASSEMBLY_NOTES": "ASSEMBLY NOTES",
- "BOARD_NAME": "Board Name",
- "COMPANY": "Company",
- "DESIGNER": "Author",
- "FABRICATION_NOTES": "FABRICATION NOTES",
- "GIT_HASH_PCB": "",
- "GIT_HASH_SCH": "",
- "GIT_URL": "",
- "PROJECT_NAME": "Project Name",
+ "ASSEMBLY_NOTES": "",
+ "BOARD_NAME": "Nixie Clock Main Board",
+ "COMPANY": "Company Name",
+ "DESIGNER": "Aidan Brzezinski",
+ "FABRICATION_NOTES": "",
+ "GIT_HASH_PCB": "1d094e6",
+ "GIT_HASH_SCH": "b199e49",
+ "GIT_URL": "https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git",
+ "PROJECT_NAME": "Nixie Tube Clock",
"RELEASE_BODY_1.0.0": "",
"RELEASE_BODY_1.0.1": "",
"RELEASE_BODY_1.0.2": "",
"RELEASE_BODY_1.1.0": "",
- "RELEASE_BODY_UNRELEASED": "",
- "RELEASE_DATE": "DD-MMM-YYYY",
- "RELEASE_DATE_NUM": "YYYY-MM-DD",
+ "RELEASE_BODY_UNRELEASED": "Version Unreleased not found.",
+ "RELEASE_DATE": "17-Feb-2026",
+ "RELEASE_DATE_NUM": "2026-02-17",
"RELEASE_TITLE_1.0.0": "",
"RELEASE_TITLE_1.0.1": "",
"RELEASE_TITLE_1.0.2": "",
"RELEASE_TITLE_1.1.0": "",
- "RELEASE_TITLE_UNRELEASED": "",
- "REVISION": "",
+ "RELEASE_TITLE_UNRELEASED": "Version Unreleased not found.",
+ "REVISION": "+ (Unreleased)",
"SHEET_NAME_1": "Cover Page",
"SHEET_NAME_10": "......................................",
"SHEET_NAME_11": "......................................",
@@ -1092,11 +1092,11 @@
"SHEET_NAME_39": "......................................",
"SHEET_NAME_4": "Section A - Title A",
"SHEET_NAME_40": "......................................",
- "SHEET_NAME_5": "Section B -Title B",
+ "SHEET_NAME_5": "Section B - Title B",
"SHEET_NAME_6": "Power - Sequencing",
"SHEET_NAME_7": "Revision History",
"SHEET_NAME_8": "......................................",
"SHEET_NAME_9": "......................................",
- "VARIANT": ""
+ "VARIANT": "DRAFT"
}
-}
+}
\ No newline at end of file
diff --git a/Nixie_Tube_Clock.xml b/Nixie_Tube_Clock.xml
new file mode 100644
index 0000000..4fd90fc
--- /dev/null
+++ b/Nixie_Tube_Clock.xml
@@ -0,0 +1,201 @@
+
+
+
+ /workspace/aidanbrzezinski/Nixie_Tube_Clock/Nixie_Tube_Clock.kicad_sch
+ Date1
+ Eeschema 9.0.7+1
+
+ Nixie Clock Main Board
+ Company Name
+ Aidan Brzezinski
+
+ 1d094e6
+ b199e49
+ https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git
+ Nixie Tube Clock
+
+
+
+
+ Version Unreleased not found.
+ 17-Feb-2026
+ 2026-02-17
+
+
+
+
+ Version Unreleased not found.
+ + (Unreleased)
+ Cover Page
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ Block Diagram
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ Project Architecture
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ ......................................
+ Section A - Title A
+ ......................................
+ Section B - Title B
+ Power - Sequencing
+ Revision History
+ ......................................
+ ......................................
+ DRAFT
+
+
+
+ Company Name
+ + (Unreleased)
+ Date2
+ Nixie_Tube_Clock.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Block Diagram
+ Company Name
+ + (Unreleased)
+ Date2
+ Block Diagram.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Project Architecture
+ Company Name
+ + (Unreleased)
+ Date2
+ Project Architecture.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sheet Title A
+ Company Name
+ + (Unreleased)
+ Date2
+ Section A - Title A.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sheet Title B
+ Company Name
+ + (Unreleased)
+ Date2
+ Section B - TItle B.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Power - Sequencing
+ Company Name
+ + (Unreleased)
+ Date2
+ Power - Sequencing.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Revision History
+ Company Name
+ + (Unreleased)
+ Date2
+ Revision History.kicad_sch
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index bd4a446..f28d17f 100644
--- a/README.md
+++ b/README.md
@@ -1,693 +1,71 @@
-KiCad 8/9 Template for CI/CD with KiBot
+
+
+
-
-
-
-
-
-
-
+Board Name
+
+
+
+
-A **KiCad 8/9** template for **automated**, professional documentation generation with **Continuous Integration and Continuous Development** (CI/CD) using [KiBot](https://github.com/INTI-CMNB/KiBot/tree/master).
-
-A video tutorial for setting up this template is available [here](https://www.youtube.com/watch?v=63R6Wnx44uY).
-
-An example project using this template can be found [here](https://github.com/nguyen-v/amulet_controller_kibot/tree/master).
-
-> [!NOTE]
-> This file will be overridden by a KiBot run.
-
-## TABLE OF CONTENTS
-
-- [TABLE OF CONTENTS](#table-of-contents)
-- [FEATURES](#features)
-- [GETTING STARTED](#getting-started)
-- [USAGE](#usage)
- - [CI/CD Workflow and Semantic Versioning](#cicd-workflow-and-semantic-versioning)
- - [Running Locally](#running-locally)
- - [Calculating Board Costs (KiCost)](#calculating-board-costs-kicost)
- - [Visualizing Outputs in a Webpage](#visualizing-outputs-in-a-webpage)
-- [PROJECT CONVERSION GUIDE](#project-conversion-guide)
- - [Folders](#folders)
- - [Schematic](#schematic)
- - [PCB](#pcb)
- - [Summary in table format](#summary-in-table-format)
-- [DIRECTORY STRUCTURE](#directory-structure)
-- [CREDITS](#credits)
-- [RESOURCES](#resources)
-- [CONTRIBUTING](#contributing)
-
-## FEATURES
-
-- **Automated fabrication document**: [Example](https://github.com/nguyen-v/amulet_controller_kibot/blob/master/Manufacturing/Fabrication/amulet_controller-fabrication.pdf). The stackup table, fabrication notes, drill drawings/tables, testpoint tables/highlighting are all automated.
-
-- **Automated assembly document**: [Example](https://github.com/nguyen-v/amulet_controller_kibot/blob/master/Manufacturing/Assembly/amulet_controller-assembly.pdf). The images, tables, DNP crosses, texts are all automated.
-
-- **Automated table of contents** in schematic
-
-- **Automated 3D images** of the PCB in various documents
-
-- **Synchronised `CHANGELOG.md`** with Revision History page of the schematic
-
-- **Automated README.md**: images and other board information
-
-- **Various outputs** such as gerbers, 3D renders, ERC/DRC reports, BoM, Diff visualizer
-
-- **Modern webpage** for visualizing the generated files and documents
-
-- **Robust workflow** with two branches and semantic versioning
-
-- **Releases with changelog** and assets
-
-- **Can be run locally** with Docker
-
-## GETTING STARTED
-
-1. Go to your KiCad templates folder
-
- **Windows**:
-
- ```
- cd "C:\Program Files\KiCad\8.0\share\kicad\template"
- ```
-
- **Linux**:
- ```
- cd ~/.local/share/kicad/8.0/template
- ```
-
-2. Clone the repository
-
- ```
- git clone https://github.com/nguyen-v/KDT_Hierarchical_KiBot.git
- ```
-
-3. Install the fonts inside of [`kibot_resources/fonts`](kibot_resources/fonts) if not already installed on the system.
-
- **Linux**:
-
- ```
- cp -i KDT_Hierarchical_KiBot/kibot_resources/fonts/*.ttf ~/.fonts/
- fc-cache
- ```
-
-5. A custom color theme ([`Altium_Theme.json`](kibot_resources/colors/Altium_Theme.json)) is also provided in [`kibot_resources/colors`](kibot_resources/colors).
-You should move this file to your KiCad Themes folder.
-
- **Windows**:
-
- `xcopy "KDT_Hierarchical_KiBot\kibot_resources\colors\Altium_Theme.json" "C:\Users\%USERNAME%\AppData\Roaming\kicad\8.0\colors\" /-Y`
-
- **Linux**:
-
- `cp -i KDT_Hierarchical_KiBot/kibot_resources/colors/Altium_Theme.json ~/.config/kicad/8.0/colors/`
-
-> [!NOTE]
-> In the steps above, replace ```8.0``` with ```9.0``` for KiCad 9
-
-5. Create a new project with:
-
- **File → New Project From Template** and select `KDT_Hierarchical_KiBot`
-
-> [!CAUTION]
-> Under Linux, the ```.github``` folder from the template needs to be copied at the root of the project directory, as it is not copied when creating a project from a template in KiCad.
-
-6. Create a new `dev` branch. This will be the working branch.
-
- ```
- git checkout -b dev
- ```
-
-7. Modify the following fields in [`kibot_main.yaml`](kibot_yaml/kibot_main.yaml#L556) according to your project:
- ```
- # Metadata ===================================================================
-
- PROJECT_NAME: Project Name
- BOARD_NAME: Board Name
-
- COMPANY: Company Name
- DESIGNER: Author
-
- LOGO: 'Logos/dummy_logo.png'
- GIT_URL: 'https://github.com/nguyen-v/KDT_Hierarchical_KiBot'
-
- # Preflight ==================================================================
-
- CHECK_ZONE_FILLS: false
- STACKUP_TABLE_NOTE: external layer thicknesses are specified after plating
-
- # BoM ========================================================================
-
- MPN_FIELD: 'Manufacturer Part Number'
- MAN_FIELD: 'Manufacturer'
-
- # Drill table and drill map parameters =======================================
-
- GROUP_ROUND_SLOTS: true # whether or not to group round holes and slots
- GROUP_PTH_NPTH: 'no' # for drill tables (CSV, PCB Print)
- GROUP_PTH_NPTH_DRL: false # for .drl files
-
- # Gerber parameters ==========================================================
-
- PLOT_REFS: true # reference designators
-
- # Schematic parameters =======================================================
-
- COLOR_THEME: Altium_Theme
- SHEET_WKS: ${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks
- FAB_SCALING: 1
- ASSEMBLY_SCALING: 1
-
- # References to exclude from testpoint highlighting ==========================
-
- EXCLUDE_REFS: '[MB*]' # for components on the PCB but not on the schematic
-
- # 3D Viewer rotations (in steps) =============================================
-
- 3D_VIEWER_ROT_X: 2
- 3D_VIEWER_ROT_Y: -1
- 3D_VIEWER_ROT_Z: 1
- 3D_VIEWER_ZOOM: -1
- KEY_COLOR: '#00FF00' # background color to remove
- ```
-
-8. The files inside of [`kibot_resources/templates`](kibot_resources/templates) should also be modified according to your project. These include Assembly and Fabrication notes, Impedance table and README file templates.
-
-9. Edit the [`*.kicad_dru`](KDT_Hierarchical_KiBot.kicad_dru) if necessary according to your design rules. Right now, it has been set for PCBWay 6-layer PCBs with 2oz outer 1oz inner, focusing on lowest cost.
-
-10. Edit the [`kibot_out_csv_bom.yaml`](kibot_yaml/kibot_out_csv_bom.yaml), [`kibot_out_html_bom.yaml`](kibot_yaml/kibot_out_html_bom.yaml) and [`kibot_out_xlsx_bom.yaml`](kibot_yaml/kibot_out_xlsx_bom.yaml) files according to the component fields that you use. You can refer to the [KiCost Documentation](https://hildogjr.github.io/KiCost/docs/_build/singlehtml/index.html) for the field names.
-
-## USAGE
-
-### CI/CD Workflow and Semantic Versioning
-
-This template is meant to be used in a CI/CD environment on GitHub. The workflow is as follows:
-
-- Any custom font used in the project must be added to the [`kibot_resources/fonts`](kibot_resources/fonts) folder.
-
-> [!NOTE]
-> KiCad 9 allows for fonts to be embedded in the schematic. However, it is still good practice to add the fonts in the folder mentioned.
-
-- There are two branches, a `main` and a `dev` branch. The `dev` branch is the working branch. The `main` should only be used for pull requests and releases.
-
-- Changes should be recorded in the [`CHANGELOG.md`](CHANGELOG.md) file, and should respect [semantic versioning guidelines](https://semver.org/) for [hardware](https://www.maskset.net/blog/2023/02/26/semantic-versioning-for-hardware/). The changes of the current version should be added under the `[Unreleased]` section.
-
-- The `variant` variable in [.github/workflows/ci.yaml](.github/workflows/ci.yaml#L21) should be selected according to the project progress.
-
- ```
- # Used variant. We assume:
- # DRAFT: only schematic in progress, will only generate schematic PDF, netlist and BoM
- # PRELIMINARY: will generate both schematic and PCB documents, but no ERC/DRC
- # CHECKED: will generate both schematic and PCB documents, with ERC/DRC
- # RELEASED: similar to CHECKED, automatically selected when pushing a tag to master
-
- kibot_variant: CHECKED
- ```
-
-- The `kicad_version` variable in [.github/workflows/ci.yaml](.github/workflows/ci.yaml#L24) should be selected according to the desired KiCad version. Supported versions are 8 and 9.
-
-- You should work locally on the `dev` branch. When a change is made, the changes should be pushed to GitHub which will trigger the KiBot workflow. The generated files will be committed and pushed back to the repository.
-
-- After a successful KiBot run on the remote repository, you should pull back the changes into your local repository.
-
-- To avoid conflicts, you should avoid modifying the `.kicad_pro` file locally before pulling from the remote (after the completion of a KiBot run). Otherwise, you will need to solve merge conflicts when pulling the file.
-
-- To synchronise the Revision History of the schematic with the `CHANGELOG.md` file, you should create new text variables in [kibot_pre_set_text_variables.yaml](kibot_yaml/kibot_pre_set_text_variables.yaml#L39). The text variables should then be added in the text boxes of the Revision History sheet.
-
- ```
- - variable: '@RELEASE_TITLE_VAR@x.x.x'
- command: '@GET_TITLE_CMD@ x.x.x'
- - variable: '@RELEASE_BODY_VAR@x.x.x'
- command: '@GET_BODY_CMD@ x.x.x'
- ```
-
-- When ready for a release, you should open a pull request and merge the changes into main. Currently the workflow is set **not to trigger on pull requests**, as we assume the changes coming from `dev` are up-to-date.
-
-- To create a release, push a tag on the `main` branch with the version number (for example `x.x.x = 1.1.1`):
-
- ```
- git checkout main
- git pull
- git tag x.x.x
- git push origin x.x.x
- ```
-
- This will start a KiBot run with the variant set as `RELEASED`. When the run completes, it also creates a release with assets and updates the `CHANGELOG.md` file (renames the `[Unreleased]` section with the pushed tag and creates a new `[Unreleased]` section).
-
-- After a release, you will need to update your `main` branch to be up-to-date with the remote:
-
- ```
- git pull
- ```
-
- And you will also need to rebase your `dev` branch to the `main` branch:
-
- ```
- git checkout dev
- git rebase main
- ```
-
-> [!NOTE]
-> You are free to modify the [.github/workflows/ci.yaml](.github/workflows/ci.yaml) file to suit your workflow needs.
-
-***
-
-### Running Locally
-
-KiBot can be installed if you want to run some of the scripts locally. If you only plan to use it in a CI/CD workflow, this step can be skipped.
-Installation steps can be found on the [official documentation](https://kibot.readthedocs.io/en/master/installation.html).
-The easiest way to install KiBot if custom development is not required is with dockers.
-
-1. Install **and run** [Docker Desktop](https://docs.docker.com/desktop/)
-
-2. Run the script `docker_kibot_windows.bat` or `docker_kibot_linux.sh` depending on your platform in [`kibot_resources/scripts`](kibot_resources/scripts). Currently tested on Windows and WSL2. This should pull and start a docker running the `dev` branch of KiBot. You should have access to your local files.
-
-***
-**KiCad 8**
-
- Windows:
-
- ```
- .\docker_kibot_windows.bat
- ```
-
- Linux:
-
- ```
- ./docker_kibot_linux.sh
- ```
-
-***
-**KiCad 9**
-
- Windows:
-
- ```
- .\docker_kibot_windows.bat -v 9
- ```
-
- Linux:
-
- ```
- ./docker_kibot_linux.sh -v 9
- ```
- ***
-
-Once in the docker, you can use the [`kibot_launch.sh`](kibot_launch.sh) script to generate and visualize outputs.
-
-```
-./kibot_launch.sh
-```
-
-You can get more information about the usage with
-
-```
-./kibot_launch.sh --help
-```
-
-When running the script with no arguments, it will default to the `CHECKED` variant and generate all outputs. A variant can be set with the `-v` flag. If a custom variant is used (i.e. other than the default variants `DRAFT`, `PRELIMINARY`, `CHECKED`, `RELEASED`), the outputs will be generated in the `Variants` folder.
-
-Each default variant will have different KiBot flags, which is useful for different phases of the project:
-
-
-1. **DRAFT**
-
- Only schematic in progress, will only generate schematic PDF, netlist and BoM
-
-2. **PRELIMINARY**
-
- Will generate both schematic and PCB documents, but no ERC/DRC
-
-3. **CHECKED**
-
- Will generate both schematic and PCB documents, with ERC/DRC
-
-4. **RELEASED**
-
- Similar to CHECKED, automatically selected when pushing a tag to main (CI/CD)
-
-> [!WARNING]
-> When generating outputs locally, it could conflict with the outputs generated by the remote CI/CD workflow. In this case, you should decide how to resolve the conflicts.
-
-***
-
-### Calculating Board Costs (KiCost)
-
-[KiCost](https://github.com/hildogjr/KiCost) is used to estimate costs and get a nice XLSX spreadsheet with part specs. In this project, we run KiCost locally to avoid too many API calls. Also, DigiKey's API [doesn't seem to work](https://github.com/set-soft/kicost_ci_test) in a CI/CD environment.
-To run KiCost, you will need to create a file `kicost_config_local.yaml` in [`kicost_yaml`](kicost_yaml). You can use the [`kicost_config_local_template.yaml`](kicost_yaml/kicost_config_local.yaml) file as a base. Once you have filled in the API keys for the desired manufacturers, KiCost can be run with:
-
-```
-./kibot_launch.sh --costs
-```
-This will create a spreadsheet in [`Manufacturing/Assembly`](Manufacturing/Assembly/) folder.
-
-You can also specify a variant if desired:
-
-```
-./kibot_launch.sh -v --costs
-```
-
-For more information, please have a look at the official [documentation](https://hildogjr.github.io/KiCost/docs/_build/singlehtml/index.html)
-
-> [!CAUTION]
-> KiCost expects the **MPN (Manufacturer Part Number)** and **Manufacturer** fields to be named in a certain way. To cater for different naming conventions, we rename user-defined fields to KiCost-compatible fields in the KiBot run. You can set your user-defined field for **MPN** and **Manufacturer** in the [`kibot_yaml/kibot_main.yaml`](kibot_yaml/kibot_main.yaml#L576) by editing the `MPN_FIELD` and `MAN_FIELD` definitions.
-
-
-
-
-
-
-
-
-
-
-
+
+
***
-### Visualizing Outputs in a Webpage
-
-The outputs of KiBot can be visualized in a webpage (excepted for the `DRAFT` variant). This can be done by running:
-
-```
-./kibot_launch.sh --server
-```
-And opening `http://localhost:8000` in your favorite browser. The server can be shut down with:
-```
-./kibot_launch.sh --stop-server
-```
-
-> [!TIP]
-> You can also give the port as an argument if you want to use another port.
-
-
-
-
-## PROJECT CONVERSION GUIDE
-
-This section will describe the necessary steps to convert an existing project to work with this template. This will also give more insights into how the template works in general. For more information, you should refer to the template.
-
-***
-
-### Folders
-
-You should keep the folder structure as defined in [DIRECTORY STRUCTURE](#directory-structure). The folders marked as optional are not mandatory for the project to work, as long as the relevant file paths are correct (e.g. logos). You should then go through the same steps as in [GETTING STARTED](#getting-started) and [USAGE](#usage).
-
-### Schematic
-
-You should select [`Templates/KDT_Template_GIT.kicad_wks`](Templates/KDT_Template_GIT.kicad_wks) as your Drawing Sheet in:
-
-**File → Page Settings → Drawing Sheet**
-
-On the same page, The `Revision` and `Company` fields should be set to `${REVISION}` and `${COMPANY}` and exported to all sheets.
-
-
-
-
-
-For an automated table of contents, you should copy the root page of the template into your project, or use the `${SHEET_NAME_X}` text variables. These variables will be replaced by the sheet name (page `X`) when running KiBot. Currently the maximum number of pages is set to 40. You are free to add new text variables in [`kibot_yaml/kibot_pre_set_text_variables`](kibot_yaml/kibot_pre_set_text_variables.yaml#L160).
-
-The `${VARIANT}` text variable is replaced by the current variant name (e.g. DRAFT or RELEASED).
-
-The `${RELEASE_DATE}` and `${RELEASE_DATE_NUM}` will be replaced by the tag release date and are just the same date in different formats (for example, `${RELEASE_DATE} = 17-Dec-2024` and `${RELEASE_DATE_NUM} = 2024-12-17`).
-
-To get 3D pictures of the PCB in the schematic, you can create text boxes with the desired size, with the following names: `kibot_image_png_3d_viewer_angled_top` and `kibot_image_png_3d_viewer_angled_bottom`.
-
-
-
-
-
-> You can add any image generated by a KiBot output using by changing the name to `kibot_image_`.
-
-
-
-To synchronise the Revision History of the schematic with the `CHANGELOG.md` file, you should create new text variables in [kibot_pre_set_text_variables.yaml](kibot_yaml/kibot_pre_set_text_variables.yaml#L39). The text variables (`${RELEASE_TITLE_VAR}` and `${RELEASE_BODY_VAR`) should then be added in the text boxes of the Revision History sheet.
-
- ```
- - variable: '@RELEASE_TITLE_VAR@x.x.x'
- command: '@GET_TITLE_CMD@ x.x.x'
- - variable: '@RELEASE_BODY_VAR@x.x.x'
- command: '@GET_BODY_CMD@ x.x.x'
- ```
-
-***
-
-### PCB
-
-The layer names of the PCB should follow the ones defined in [kibot_main.yaml](kibot_yaml/kibot_main.yaml#L631).
-
-```
- LAYER_TITLE_PAGE: TitlePage
- LAYER_DNP_TOP: F.DNP
- LAYER_DNP_BOTTOM: B.DNP
- LAYER_DRILL_MAP: DrillMap
- LAYER_TP_LIST_TOP: F.TestPointList
- LAYER_TP_LIST_BOTTOM: B.TestPointList
- LAYER_ASSEMBLY_TEXT_TOP: F.AssemblyText
- LAYER_ASSEMBLY_TEXT_BOTTOM: B.AssemblyText
- LAYER_DNP_CROSS_TOP: F.DNP
- LAYER_DNP_CROSS_BOTTOM: B.DNP
-```
-
-
-
-
-
-The layer names can be set in
-
-**File → Board Setup → Board Stackup → Board Editor Layers**
-
-Each layer has a specific function, and must be setup in a particular way.
-
-In the following explanation, when a group must be created, this can be done using KiCad's **Draw Rectangle** tool, and then a group can be created with:
-
-**Right-Click → Grouping → Group Items**
-
-Pressing **E** then allows you to rename the group. The size and position of the group usually determines the size and location of the element to be drawn. To change the font inside a group, you can create a textbox with the desired font in the group. You can set the border width to 0.
-
-
-
-
-
-***
-
-**TitlePage**
-
-This is used for the first page of the assembly document. Here, you should add **Top View** and **Bottom View** texts and under these text, you can create two named groups with the location and size that you desire. The groups should be named `kibot_image_png_3d_viewer_angled_top` and `kibot_image_png_3d_viewer_angled_bottom`.
-
-> [!TIP]
-> You can add any image generated by a KiBot output using by changing the name to `kibot_image_`.
-
-
-
-
-
-
-
+
-
+
***
-**User.Comments**
+## SPECIFICATIONS
-Currently not used, you can use it for your project.
+| Parameter | Value |
+| --- | --- |
+| Dimensions | N/A × N/A mm |
***
-**F.DNP** and **B.DNP**
-
-These are used to hold the red crosses for components marked as *Do Not Populate*. The layers for those should be kept empty.
-
-***
-
-**DrillMap**
-
-This layer is used to draw drill map drawings and drill tables in the fabrication document. You should create a named group called `kibot_table_csv_drill_table` and place it where the drill tables should be drawn for each drill layer pair. The drill drawing is by default aligned with the PCB.
-
-
-
-
-
-
-***
-
-**F.TestPoint** and **B.TestPoint**
-
-These layers are used to highlight testpoint locations in the fabrication document. They should be left as empty.
-
-***
-
-**F.AssemblyText**
-
-This layer is used to hold information about the number of components, assembly notes, assembly drawing and 3D render of the top of the PCB. For the number of components, you should create a group named `kibot_table_csv_comp_count`. Assembly notes should be added using the text variable `${ASSEMBLY_NOTES}`. The 3D render can be added by creating a group named `kibot_image_png_3d_viewer_top`.
-
-
-
-
-
-
-
-
-
-
-
-
-**B.AssemblyText**
-
-This layer hold the assembly drawing and 3D render for the backside of the PCB. For the 3D render, you should add a group named `kibot_image_png_3d_viewer_bottom`.
-
-***
-
-**F.Dimensions**
-
-This layer holds information about the PCB stackup and dimensions, impedance table and fabrication notes. The PCB stackup can be added by creating a group named `kibot_fancy_stackup`. The impedance table with a group named `kibot_table_csv_impedance_table` and the fabrication notes are included with the text variable `${FABRICATION_NOTES}`.
-
-> [!NOTE]
-> The text variable ${FABRICATION_NOTE} is dependent on the [`kibot_resources/templates/fabrication_notes.txt`](kibot_resources/templates/fabrication_notes.txt) file. Modify it to your needs.
-
-
-
-
-
-
-
-
-
-
-
-**B.Dimensions**
-
-This layer contains information about the dimensions of the PCB, seen from the backside. Similarly to the front side, you can use KiCad's **Dimensions** tool to add some dimensions.
-
-
-
-
-
-***
-
-**F.TestPointList**
-
-This layer is used to hold information about the testpoints locations and nets. You can add testpoint tables by creating a group named `kibot_table_csv_testpoints_top`. It is also possible to use python slicing to separate the table into multiple tables, by using slice operators in the name. For example: `kibot_table_csv_testpoints_top[:32]` and `kibot_table_csv_testpoints_top[32:]` in two different groups would create two tables with the first one including the first 32 testpoints and the second one every testpoint after that.
-
-Test point locations are computed from the drill origin, which can be set with:
-
-**Place → Drill/Place File Origin**.
-
-> [!TIP]
-> It is usually good practice to set the origin at the bottom left of the board.
-
-
-
-
-
-
-
-
-
-
-
-**B.TestPointList**
-
-Similar to the front testpoint layer. The group should be named `kibot_table_csv_testpoints_bottom`. Note that because PCB is inverted for this layer during print, if the group is placed on the left side it will be printed on the right side.
-
-
-
-
-
-
-
-
-
-***
-
-### Summary in table format
-
-| **Layer** | **Description** | **Changes/Included Items** |
-|-------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
-| **TitlePage** | First page of the assembly document. | Add groups: `kibot_image_png_3d_viewer_angled_top` and `kibot_image_png_3d_viewer_angled_bottom`. |
-| **User.Comments** | Reserved for project-specific comments. | Not used by default; customize as needed. |
-| **F.DNP / B.DNP** | Holds red crosses for components marked as *Do Not Populate*. | Keep these layers empty. |
-| **DrillMap** | Draws drill map drawings and tables in the fabrication document, aligned by default with the PCB. | Add group: `kibot_table_csv_drill_table`. |
-| **F.TestPoint / B.TestPoint** | Highlights testpoint locations in the fabrication document. | Keep these layers empty. |
-| **F.AssemblyText** | Contains component count, assembly notes, drawings, and 3D renders for the top side of the PCB. | Add group: `kibot_table_csv_comp_count` (table) and `kibot_image_png_3d_viewer_top` (image). Include `${ASSEMBLY_NOTES}` text.|
-| **B.AssemblyText** | Holds assembly drawings and 3D render for the bottom side of the PCB. | Add group: `kibot_image_png_3d_viewer_bottom` for the 3D render. |
-| **F.Dimensions** | Holds PCB stackup, dimensions, impedance table, and fabrication notes. | Add groups: `kibot_fancy_stackup` (stackup), `kibot_table_csv_impedance_table` (impedance table), and `${FABRICATION_NOTES}`. |
-| **B.Dimensions** | Holds dimensions of the PCB, seen from the backside. | Use KiCad **Dimensions** tool to add details. |
-| **F.TestPointList** | Lists testpoint locations and nets for the top layer. | Add group: `kibot_table_csv_testpoints_top`. Use slicing (e.g., `[:32]`) for multiple tables. |
-| **B.TestPointList** | Lists testpoint locations and nets for the bottom layer. | Add group: `kibot_table_csv_testpoints_bottom`. Adjust left-side placements for inverted print alignment. |
-
## DIRECTORY STRUCTURE
-The following directory structure is used in the template. Folders marked as 'optional' are not crucial for KiBot to work. Other folders will be generated automatically during a KiBot run.
-```
-├─ Computations # Misc calculations (optional)
-├─ HTML # HTML files for generated webpage
-├─ Images # Pictures and renders
-│
-├─ kibot_resources
-│ ├─ colors # Color theme for KiCad
-│ ├─ fonts # Fonts used in the project
-│ ├─ scripts # External scripts used with KiBot
-│ └─ templates # Templates for KiBot generated reports
-│
-├─ kibot_yaml # KiBot YAML config files
-├─ KiRI # KiRI (PCB diff viewer) files
-│
-├─ lib # Footprint and symbol libraries (optional)
-│ ├─ 3d_models # Component 3D models
-│ ├─ lib_fp # Footprint libraries
-│ └─ lib_sym # Symbol libraries
-│
-├─ Logos # Logos (optional)
-│
-├─ Manufacturing
-│ ├─ Assembly # Assembly documents (BoM, pos, notes)
-│ │
-│ └─ Fabrication # Fabrication documents (ZIP, notes)
-│ ├─ Drill Tables # CSV drill tables
-│ └─ Gerbers # Gerbers
-│
-├─ Report # Reports for ERC/DRC
-├─ Schematic # PDF of schematic
-├─ Templates # Title block templates
-├─ Testing
-│ └─ Testpoints # Testpoints tables
-│
-└─ Variants # Outputs for assembly variants (optional)
-```
-
-## CREDITS
-
-[@set-soft](https://github.com/set-soft) for his amazing work on [KiBot](https://github.com/INTI-CMNB/KiBot/tree/master). Check out the [documentation](https://kibot.readthedocs.io/en/latest/) for more!
-
-## RESOURCES
-
-- [Video Tutorial for this template](https://www.youtube.com/watch?v=63R6Wnx44uY)
-
-- [Example project (from the video tutorial)](https://github.com/nguyen-v/KiBot_Project_Test)
-
-- [Example project (Amulet)](https://github.com/nguyen-v/amulet_controller_kibot/tree/master)
-
-- [(Outdated) Best practices and tips for good schematics](https://www.youtube.com/watch?v=_ZjyeltLMAg)
-
-- [GitHub Actions Documentation](https://docs.github.com/en/actions)
-
-- [KiBot Documentation](https://kibot.readthedocs.io/en/latest/)
-
-- [KiBot Repository](https://github.com/INTI-CMNB/KiBot)
-
-- [KiCost Documentation](https://hildogjr.github.io/KiCost/docs/_build/singlehtml/index.html)
-
-- [KiCost Repository](https://github.com/hildogjr/KiCost)
-
-- [KiRI Repository](https://github.com/leoheck/kiri)
-
-## CONTRIBUTING
-
-Feel free to open a pull request if you have any cool features to add!
+ .
+ ├─ Computations # Misc calculations
+ ├─ HTML # HTML files for generated webpage
+ ├─ Images # Pictures and renders
+ │
+ ├─ kibot_resources # External resources for KiBot
+ │ ├─ colors # Color theme for KiCad
+ │ ├─ fonts # Fonts used in the project
+ │ ├─ scripts # External scripts used with KiBot
+ │ └─ templates # Templates for KiBot generated reports
+ │
+ ├─ kibot_yaml # KiBot YAML config files
+ ├─ KiRI # KiRI (PCB diff viewer) files
+ │
+ ├─ lib # KiCad footprint and symbol libraries
+ │ ├─ 3d_models # Component 3D models
+ │ ├─ lib_fp # Footprint libraries
+ │ └─ lib_sym # Symbol libraries
+ │
+ ├─ Logos # Logos
+ │
+ ├─ Manufacturing # Assembly and fabrication documents
+ │ ├─ Assembly # Assembly documents (BoM, pos, notes)
+ │ │
+ │ └─ Fabrication # Fabrication documents (ZIP, notes)
+ │ ├─ Drill Tables # CSV drill tables
+ │ └─ Gerbers # Gerbers
+ │
+ ├─ Report # Reports for ERC/DRC
+ ├─ Schematic # PDF of schematic
+ ├─ Templates # Title block templates
+ ├─ Testing
+ │ └─ Testpoints # Testpoints tables
+ │
+ └─ Variants # Outputs for assembly variants
diff --git a/Schematic/Nixie_Tube_Clock-schematic.pdf b/Schematic/Nixie_Tube_Clock-schematic.pdf
new file mode 100644
index 0000000..0a5e25f
Binary files /dev/null and b/Schematic/Nixie_Tube_Clock-schematic.pdf differ
diff --git a/kibot_run.log b/kibot_run.log
new file mode 100644
index 0000000..ad4fb49
--- /dev/null
+++ b/kibot_run.log
@@ -0,0 +1,4304 @@
+DEBUG:KiBot 1.8.6 verbose level: 0 started on 2026-02-17 23:18:21.024543 (kibot - __main__.py:512)
+DEBUG:Filtering warnings we always get on CI/CD (kibot - __main__.py:426)
+DEBUG:Command line options: {'--banner': None,
+ '--board-file': None,
+ '--cli-order': False,
+ '--config-outs': False,
+ '--copy-and-expand': False,
+ '--copy-options': False,
+ '--define': ['REVISION=+ (Unreleased)'],
+ '--defs-from-env': False,
+ '--defs-from-project': False,
+ '--dont-stop': False,
+ '--dry': False,
+ '--example': False,
+ '--fail-on-ignored': False,
+ '--fail-on-warnings': False,
+ '--global-redef': ['variant=DRAFT'],
+ '--gui': False,
+ '--gui-inject': None,
+ '--help': False,
+ '--help-banners': False,
+ '--help-dependencies': False,
+ '--help-errors': False,
+ '--help-filters': False,
+ '--help-global-options': False,
+ '--help-list-offsets': False,
+ '--help-list-outputs': False,
+ '--help-list-rotations': False,
+ '--help-output': None,
+ '--help-outputs': False,
+ '--help-preflights': False,
+ '--help-variants': False,
+ '--internal-check': False,
+ '--invert-sel': False,
+ '--json': False,
+ '--list': False,
+ '--list-variants': False,
+ '--log': 'kibot_run.log',
+ '--makefile': None,
+ '--markdown': False,
+ '--no-auto-download': False,
+ '--no-priority': False,
+ '--no-warn': None,
+ '--only-groups': False,
+ '--only-names': False,
+ '--only-pre': False,
+ '--out-dir': '.',
+ '--output-name-first': False,
+ '--plot-config': 'kibot_yaml/kibot_main.yaml',
+ '--quick-start': False,
+ '--quiet': False,
+ '--rst': False,
+ '--schematic': None,
+ '--skip-pre': 'draw_fancy_stackup,erc,drc',
+ '--start': '.',
+ '--stop-on-warnings': False,
+ '--sub-pcbs': False,
+ '--type': [],
+ '--variant': [],
+ '--verbose': 0,
+ '--version': False,
+ '--warn-ci-cd': False,
+ 'TARGET': ['draft_group']} (kibot - __main__.py:516)
+DEBUG:Start of initialization (kibot - __main__.py:519)
+DEBUG:Detected KiCad v9.0.7 (9.0.7+1 90000070) (kibot - __main__.py:329)
+DEBUG:KiCad config path /root/.config/kicad/9.0 (kibot - __main__.py:380)
+DEBUG:Command line arguments:
+['/usr/local/bin/kibot', '-c', 'kibot_yaml/kibot_main.yaml', '-d', '.', '-g', 'variant=DRAFT', '--skip-pre', 'draw_fancy_stackup,erc,drc', '-E', 'REVISION=+ (Unreleased)', '--log', 'kibot_run.log', 'draft_group'] (kibot - __main__.py:432)
+DEBUG:Command line parsed:
+{'--banner': None,
+ '--board-file': None,
+ '--cli-order': False,
+ '--config-outs': False,
+ '--copy-and-expand': False,
+ '--copy-options': False,
+ '--define': ['REVISION=+ (Unreleased)'],
+ '--defs-from-env': False,
+ '--defs-from-project': False,
+ '--dont-stop': False,
+ '--dry': False,
+ '--example': False,
+ '--fail-on-ignored': False,
+ '--fail-on-warnings': False,
+ '--global-redef': ['variant=DRAFT'],
+ '--gui': False,
+ '--gui-inject': None,
+ '--help': False,
+ '--help-banners': False,
+ '--help-dependencies': False,
+ '--help-errors': False,
+ '--help-filters': False,
+ '--help-global-options': False,
+ '--help-list-offsets': False,
+ '--help-list-outputs': False,
+ '--help-list-rotations': False,
+ '--help-output': None,
+ '--help-outputs': False,
+ '--help-preflights': False,
+ '--help-variants': False,
+ '--internal-check': False,
+ '--invert-sel': False,
+ '--json': False,
+ '--list': False,
+ '--list-variants': False,
+ '--log': 'kibot_run.log',
+ '--makefile': None,
+ '--markdown': False,
+ '--no-auto-download': False,
+ '--no-priority': False,
+ '--no-warn': None,
+ '--only-groups': False,
+ '--only-names': False,
+ '--only-pre': False,
+ '--out-dir': '.',
+ '--output-name-first': False,
+ '--plot-config': 'kibot_yaml/kibot_main.yaml',
+ '--quick-start': False,
+ '--quiet': False,
+ '--rst': False,
+ '--schematic': None,
+ '--skip-pre': 'draw_fancy_stackup,erc,drc',
+ '--start': '.',
+ '--stop-on-warnings': False,
+ '--sub-pcbs': False,
+ '--type': [],
+ '--variant': [],
+ '--verbose': 0,
+ '--version': False,
+ '--warn-ci-cd': False,
+ 'TARGET': ['draft_group']} (kibot - __main__.py:433)
+DEBUG:- Processing dependencies for `global` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'Colorama', 'python_module': True, 'role': 'Get color messages in a portable way', 'debian': 'python3-colorama', 'arch': 'python-colorama'}, {'name': 'Requests', 'python_module': True, 'role': 'mandatory', 'debian': 'python3-requests', 'arch': 'python-requests'}, {'name': 'PyYAML', 'python_module': True, 'debian': 'python3-yaml', 'arch': 'python-yaml', 'module_name': 'yaml', 'role': 'mandatory'}, {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto'}, {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git'}, {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'RSVG', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}]}, {'name': 'Ghostscript', 'url': 'https://www.ghostscript.com/', 'url_down': 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases', 'debian': 'ghostscript', 'arch': 'ghostscript', 'command': 'gs', 'downloader': 'gs'}, {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy']}, {'name': 'KiCost', 'github': 'hildogjr/KiCost', 'pypi': 'KiCost', 'downloader': 'pytool'}, {'name': 'LXML', 'python_module': True, 'debian': 'python3-lxml', 'arch': 'python-lxml', 'downloader': 'python'}, {'name': 'KiKit', 'github': 'INTI-CMNB/KiKit', 'pypi': 'KiKit', 'downloader': 'pytool', 'version_k6': '1.5.0', 'version_k7': '1.6.0', 'version_k9': '1.7.0'}, {'from': 'KiKit', 'role': 'Separate multiboard projects'}, {'name': 'Xvfbwrapper', 'python_module': True, 'debian': 'python3-xvfbwrapper', 'arch': 'python-xvfbwrapper', 'downloader': 'python'}, {'name': 'Xvfb', 'url': 'https://www.x.org', 'command': 'xvfb-run', 'debian': 'xvfb', 'arch': 'xorg-server-xvfb', 'no_cmd_line_version': True}, {'name': 'Bash', 'url': 'https://www.gnu.org/software/bash/', 'debian': 'bash', 'arch': 'bash'}, {'name': 'Blender', 'url': 'https://www.blender.org/', 'debian': 'blender', 'arch': 'blender'}, {'name': 'Lark', 'python_module': True, 'role': 'mandatory', 'debian': 'python3-lark', 'arch': 'python-lark'}, {'name': 'ZStd', 'python_module': True, 'debian': 'python3-zstd', 'arch': 'python-zstd', 'downloader': 'python', 'role': 'Copy embedded files from the schematic to the KiCad cache'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'Colorama', 'python_module': True, 'role': 'Get color messages in a portable way', 'debian': 'python3-colorama', 'arch': 'python-colorama'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'name': 'Requests', 'python_module': True, 'role': 'mandatory', 'debian': 'python3-requests', 'arch': 'python-requests'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'name': 'PyYAML', 'python_module': True, 'debian': 'python3-yaml', 'arch': 'python-yaml', 'module_name': 'yaml', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering base dep {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'RSVG', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}]} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'Ghostscript', 'url': 'https://www.ghostscript.com/', 'url_down': 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases', 'debian': 'ghostscript', 'arch': 'ghostscript', 'command': 'gs', 'downloader': 'gs'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy']} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'KiCost', 'github': 'hildogjr/KiCost', 'pypi': 'KiCost', 'downloader': 'pytool'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'LXML', 'python_module': True, 'debian': 'python3-lxml', 'arch': 'python-lxml', 'downloader': 'python'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'KiKit', 'github': 'INTI-CMNB/KiKit', 'pypi': 'KiKit', 'downloader': 'pytool', 'version_k6': '1.5.0', 'version_k7': '1.6.0', 'version_k9': '1.7.0'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering dep {'from': 'KiKit', 'role': 'Separate multiboard projects'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiKit: {'name': 'KiKit', 'github': 'INTI-CMNB/KiKit', 'pypi': 'KiKit', 'downloader': 'pytool', 'version_k6': '1.5.0', 'version_k7': '1.6.0', 'version_k9': '1.7.0', 'from': 'KiKit', 'role': 'Separate multiboard projects'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering base dep {'name': 'Xvfbwrapper', 'python_module': True, 'debian': 'python3-xvfbwrapper', 'arch': 'python-xvfbwrapper', 'downloader': 'python'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'Xvfb', 'url': 'https://www.x.org', 'command': 'xvfb-run', 'debian': 'xvfb', 'arch': 'xorg-server-xvfb', 'no_cmd_line_version': True} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'Bash', 'url': 'https://www.gnu.org/software/bash/', 'debian': 'bash', 'arch': 'bash'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering base dep {'name': 'Blender', 'url': 'https://www.blender.org/', 'debian': 'blender', 'arch': 'blender'} (kibot - dep_downloader.py:1084)
+DEBUG: - Registering dep {'name': 'Lark', 'python_module': True, 'role': 'mandatory', 'debian': 'python3-lark', 'arch': 'python-lark'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'name': 'ZStd', 'python_module': True, 'debian': 'python3-zstd', 'arch': 'python-zstd', 'downloader': 'python', 'role': 'Copy embedded files from the schematic to the KiCad cache'} (kibot - dep_downloader.py:1081)
+DEBUG:Importing from /usr/local/lib/python3.13/dist-packages/kibot (kibot - kiplot.py:83)
+DEBUG:- Importing fil_base (kibot - kiplot.py:91)
+DEBUG:- Importing fil_expand_text_vars (kibot - kiplot.py:91)
+DEBUG:- Importing fil_field_modify (kibot - kiplot.py:91)
+DEBUG:- Importing fil_field_rename (kibot - kiplot.py:91)
+DEBUG:- Importing fil_generic (kibot - kiplot.py:91)
+DEBUG:- Importing fil_rot_footprint (kibot - kiplot.py:91)
+DEBUG:- Importing fil_separate_pins (kibot - kiplot.py:91)
+DEBUG:- Importing fil_spec_to_field (kibot - kiplot.py:91)
+DEBUG:- Importing fil_subparts (kibot - kiplot.py:91)
+DEBUG:- Importing fil_urlify (kibot - kiplot.py:91)
+DEBUG:- Importing fil_value_split (kibot - kiplot.py:91)
+DEBUG:- Importing fil_var_rename (kibot - kiplot.py:91)
+DEBUG:- Importing fil_var_rename_kicost (kibot - kiplot.py:91)
+DEBUG:- Importing globals (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_diff (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_drill (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_layer (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_navigate_results (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_pcb_print (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_sch_print (kibot - kiplot.py:91)
+DEBUG:- Importing out_any_stencil (kibot - kiplot.py:91)
+DEBUG:- Importing out_base (kibot - kiplot.py:91)
+DEBUG:- Importing out_base_3d (kibot - kiplot.py:91)
+DEBUG:- Importing out_blender_export (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_blender_export` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'Blender', 'role': 'mandatory', 'version': '3.4.0'}, {'from': 'ImageMagick', 'role': 'Automatically crop images'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'Blender', 'role': 'mandatory', 'version': '3.4.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Blender: {'name': 'Blender', 'url': 'https://www.blender.org/', 'debian': 'blender', 'arch': 'blender', 'from': 'Blender', 'role': 'mandatory', 'version': '3.4.0'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'ImageMagick', 'role': 'Automatically crop images'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from ImageMagick: {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy'], 'from': 'ImageMagick', 'role': 'Automatically crop images'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_boardview (kibot - kiplot.py:91)
+DEBUG:- Importing out_bom (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_bom` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiCost', 'role': 'Find components costs and specs', 'version': '1.1.8'}, {'from': 'RSVG', 'role': 'SVG logos for the BoM'}, {'name': 'XLSXWriter', 'role': 'Create XLSX files', 'python_module': True, 'debian': 'python3-xlsxwriter', 'arch': 'python-xlsxwriter', 'version': '1.1.2', 'downloader': 'python'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiCost', 'role': 'Find components costs and specs', 'version': '1.1.8'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiCost: {'name': 'KiCost', 'github': 'hildogjr/KiCost', 'pypi': 'KiCost', 'downloader': 'pytool', 'from': 'KiCost', 'role': 'Find components costs and specs', 'version': '1.1.8'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'SVG logos for the BoM'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'RSVG', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'SVG logos for the BoM'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'name': 'XLSXWriter', 'role': 'Create XLSX files', 'python_module': True, 'debian': 'python3-xlsxwriter', 'arch': 'python-xlsxwriter', 'version': '1.1.2', 'downloader': 'python'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_bom_labels (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_bom_labels` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'ReportLab', 'role': 'Create a PDF with BoM labels', 'python_module': True, 'debian': 'python3-reportlab', 'arch': 'python-reportlab', 'downloader': 'python'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'ReportLab', 'role': 'Create a PDF with BoM labels', 'python_module': True, 'debian': 'python3-reportlab', 'arch': 'python-reportlab', 'downloader': 'python'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_compress (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_compress` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'RAR', 'url': 'https://www.rarlab.com/', 'url_down': 'https://www.rarlab.com/download.htm', 'help_option': '-?', 'downloader': 'rar', 'role': 'Compress in RAR format', 'debian': 'rar', 'arch': 'rar(AUR)'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'RAR', 'url': 'https://www.rarlab.com/', 'url_down': 'https://www.rarlab.com/download.htm', 'help_option': '-?', 'downloader': 'rar', 'role': 'Compress in RAR format', 'debian': 'rar', 'arch': 'rar(AUR)'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_copy_files (kibot - kiplot.py:91)
+DEBUG:- Importing out_diff (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_diff` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'KiCad PCB/SCH Diff', 'version': '2.5.3', 'role': 'mandatory', 'github': 'INTI-CMNB/KiDiff', 'command': 'kicad-diff.py', 'pypi': 'kidiff', 'downloader': 'pytool', 'id': 'KiDiff'}, {'from': 'Git', 'role': 'Compare with files in the repo'}, {'from': 'KiAuto', 'role': 'Compare schematics', 'version': '2.2.0'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'KiCad PCB/SCH Diff', 'version': '2.5.3', 'role': 'mandatory', 'github': 'INTI-CMNB/KiDiff', 'command': 'kicad-diff.py', 'pypi': 'kidiff', 'downloader': 'pytool', 'id': 'KiDiff'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Compare with files in the repo'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Compare with files in the repo'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'Compare schematics', 'version': '2.2.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'Compare schematics', 'version': '2.2.0'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_download_datasheets (kibot - kiplot.py:91)
+DEBUG:- Importing out_dxf (kibot - kiplot.py:91)
+DEBUG:- Importing out_dxf_sch_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_dxf_sch_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.4'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_excellon (kibot - kiplot.py:91)
+DEBUG:- Importing out_export_3d (kibot - kiplot.py:91)
+DEBUG:- Importing out_gencad (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_gencad` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.5'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.5'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.5'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_gerb_drill (kibot - kiplot.py:91)
+DEBUG:- Importing out_gerber (kibot - kiplot.py:91)
+DEBUG:- Importing out_hpgl (kibot - kiplot.py:91)
+DEBUG:- Importing out_hpgl_sch_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_hpgl_sch_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.4'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_ibom (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_ibom` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'Interactive HTML BoM', 'role': 'mandatory', 'github': 'INTI-CMNB/InteractiveHtmlBom', 'command': 'generate_interactive_bom.py', 'no_cmd_line_version_old': True, 'plugin_dirs': ['InteractiveHtmlBom', 'InteractiveHtmlBom/InteractiveHtmlBom', 'org_openscopeproject_InteractiveHtmlBom', 'org_openscopeproject_InteractiveHtmlBom/InteractiveHtmlBom'], 'version': '2.7.0', 'downloader': 'pytool', 'id': 'ibom'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'Interactive HTML BoM', 'role': 'mandatory', 'github': 'INTI-CMNB/InteractiveHtmlBom', 'command': 'generate_interactive_bom.py', 'no_cmd_line_version_old': True, 'plugin_dirs': ['InteractiveHtmlBom', 'InteractiveHtmlBom/InteractiveHtmlBom', 'org_openscopeproject_InteractiveHtmlBom', 'org_openscopeproject_InteractiveHtmlBom/InteractiveHtmlBom'], 'version': '2.7.0', 'downloader': 'pytool', 'id': 'ibom'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_info (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_info` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'Show KiAuto installation information', 'version': '2.0.0'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'Show KiAuto installation information', 'version': '2.0.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'Show KiAuto installation information', 'version': '2.0.0'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_ipc2581 (kibot - kiplot.py:91)
+DEBUG:- Importing out_jobset (kibot - kiplot.py:91)
+DEBUG:- Importing out_kibom (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_kibom` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'KiBoM', 'role': 'mandatory', 'github': 'INTI-CMNB/KiBoM', 'command': 'KiBOM_CLI.py', 'version': '1.9.1', 'downloader': 'pytool'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'KiBoM', 'role': 'mandatory', 'github': 'INTI-CMNB/KiBoM', 'command': 'KiBOM_CLI.py', 'version': '1.9.1', 'downloader': 'pytool'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_kicanvas (kibot - kiplot.py:91)
+DEBUG:- Importing out_kicost (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_kicost` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiCost', 'role': 'mandatory', 'version': '1.1.7'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiCost', 'role': 'mandatory', 'version': '1.1.7'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiCost: {'name': 'KiCost', 'github': 'hildogjr/KiCost', 'pypi': 'KiCost', 'downloader': 'pytool', 'from': 'KiCost', 'role': 'mandatory', 'version': '1.1.7'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_kikit_present (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_kikit_present` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'markdown2', 'python_module': True, 'debian': 'python3-markdown2', 'arch': 'python-markdown2', 'role': 'mandatory'}, {'from': 'Git', 'role': 'Find commit hash and/or date'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'markdown2', 'python_module': True, 'debian': 'python3-markdown2', 'arch': 'python-markdown2', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_kiri (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_kiri` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'KiCad PCB/SCH Diff', 'version': '2.5.1', 'role': 'mandatory', 'github': 'INTI-CMNB/KiDiff', 'command': 'kicad-diff.py', 'pypi': 'kidiff', 'downloader': 'pytool', 'id': 'KiDiff'}, {'from': 'Git', 'role': 'Compare with files in the repo'}, {'from': 'KiAuto', 'role': 'Compare schematics', 'version': '2.2.0'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'KiCad PCB/SCH Diff', 'version': '2.5.1', 'role': 'mandatory', 'github': 'INTI-CMNB/KiDiff', 'command': 'kicad-diff.py', 'pypi': 'kidiff', 'downloader': 'pytool', 'id': 'KiDiff'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Compare with files in the repo'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Compare with files in the repo'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'Compare schematics', 'version': '2.2.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'Compare schematics', 'version': '2.2.0'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_navigate_results (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_navigate_results` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'RSVG', 'role': 'Create outputs preview', 'id': 'rsvg1'}, {'from': 'RSVG', 'role': 'Create PNG icons', 'id': 'rsvg2'}, {'from': 'Ghostscript', 'role': 'Create outputs preview'}, {'from': 'ImageMagick', 'role': 'Create outputs preview'}, {'from': 'Git', 'role': 'Find origin url'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'Create outputs preview', 'id': 'rsvg1'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'rsvg1', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'Create PNG icons', 'id': 'rsvg2'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'rsvg2', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'Create PNG icons'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Ghostscript', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Ghostscript: {'name': 'Ghostscript', 'url': 'https://www.ghostscript.com/', 'url_down': 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases', 'debian': 'ghostscript', 'arch': 'ghostscript', 'command': 'gs', 'downloader': 'gs', 'from': 'Ghostscript', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'ImageMagick', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from ImageMagick: {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy'], 'from': 'ImageMagick', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Find origin url'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Find origin url'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_navigate_results_rb (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_navigate_results_rb` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'RSVG', 'role': 'Create outputs preview', 'id': 'rsvg1'}, {'from': 'RSVG', 'role': 'Create PNG icons', 'id': 'rsvg2'}, {'from': 'Ghostscript', 'role': 'Create outputs preview'}, {'from': 'ImageMagick', 'role': 'Create outputs preview'}, {'from': 'Git', 'role': 'Find origin url'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'Create outputs preview', 'id': 'rsvg1'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'rsvg1', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'Create PNG icons', 'id': 'rsvg2'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'rsvg2', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'Create PNG icons'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Ghostscript', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Ghostscript: {'name': 'Ghostscript', 'url': 'https://www.ghostscript.com/', 'url_down': 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases', 'debian': 'ghostscript', 'arch': 'ghostscript', 'command': 'gs', 'downloader': 'gs', 'from': 'Ghostscript', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'ImageMagick', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from ImageMagick: {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy'], 'from': 'ImageMagick', 'role': 'Create outputs preview'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Find origin url'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Find origin url'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_netlist (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_netlist` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.0.0'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.0.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.0.0'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_odb (kibot - kiplot.py:91)
+DEBUG:- Importing out_panelize (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_panelize` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiKit', 'role': 'mandatory', 'version': '1.5.1'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiKit', 'role': 'mandatory', 'version': '1.5.1'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiKit: {'name': 'KiKit', 'github': 'INTI-CMNB/KiKit', 'pypi': 'KiKit', 'downloader': 'pytool', 'version_k6': '1.5.0', 'version_k7': '1.6.0', 'version_k9': '1.7.0', 'from': 'KiKit', 'role': 'mandatory', 'version': '1.5.1'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_pcb2blender_tools (kibot - kiplot.py:91)
+DEBUG:- Importing out_pcb_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_pcb_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'RSVG', 'role': 'Create PDF, PNG, PS and EPS formats', 'id': 'rsvg1'}, {'from': 'Ghostscript', 'role': 'Create PNG, PS and EPS formats'}, {'from': 'ImageMagick', 'role': 'Create monochrome prints and scaled PNG files'}, {'from': 'KiAuto', 'command': 'pcbnew_do', 'role': 'Print the page frame in GUI mode', 'version': '1.6.7'}, {'from': 'LXML', 'role': 'mandatory'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'Create PDF, PNG, PS and EPS formats', 'id': 'rsvg1'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'rsvg1', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'Create PDF, PNG, PS and EPS formats'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Ghostscript', 'role': 'Create PNG, PS and EPS formats'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Ghostscript: {'name': 'Ghostscript', 'url': 'https://www.ghostscript.com/', 'url_down': 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases', 'debian': 'ghostscript', 'arch': 'ghostscript', 'command': 'gs', 'downloader': 'gs', 'from': 'Ghostscript', 'role': 'Create PNG, PS and EPS formats'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'ImageMagick', 'role': 'Create monochrome prints and scaled PNG files'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from ImageMagick: {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy'], 'from': 'ImageMagick', 'role': 'Create monochrome prints and scaled PNG files'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'KiAuto', 'command': 'pcbnew_do', 'role': 'Print the page frame in GUI mode', 'version': '1.6.7'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'Print the page frame in GUI mode', 'version': '1.6.7'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'LXML', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from LXML: {'name': 'LXML', 'python_module': True, 'debian': 'python3-lxml', 'arch': 'python-lxml', 'downloader': 'python', 'from': 'LXML', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_pcb_variant (kibot - kiplot.py:91)
+DEBUG:- Importing out_pcbdraw (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_pcbdraw` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'RSVG', 'role': 'Create PNG, JPG and BMP images'}, {'from': 'ImageMagick', 'role': 'Create JPG and BMP images'}, {'from': 'LXML', 'role': 'mandatory'}, {'name': 'numpy', 'python_module': True, 'debian': 'python3-numpy', 'arch': 'python-numpy', 'downloader': 'python', 'role': 'Automatically adjust SVG margin'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'RSVG', 'role': 'Create PNG, JPG and BMP images'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from RSVG: {'name': 'RSVG tools', 'url': 'https://gitlab.gnome.org/GNOME/librsvg', 'debian': 'librsvg2-bin', 'arch': 'librsvg', 'command': 'rsvg-convert', 'downloader': 'rsvg', 'id': 'RSVG', 'tests': [{'command': ['convert', '-list', 'font'], 'search': 'Helvetica', 'error': 'Missing Helvetica font, try installing Ghostscript fonts'}], 'from': 'RSVG', 'role': 'Create PNG, JPG and BMP images'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'ImageMagick', 'role': 'Create JPG and BMP images'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from ImageMagick: {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy'], 'from': 'ImageMagick', 'role': 'Create JPG and BMP images'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'LXML', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from LXML: {'name': 'LXML', 'python_module': True, 'debian': 'python3-lxml', 'arch': 'python-lxml', 'downloader': 'python', 'from': 'LXML', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'name': 'numpy', 'python_module': True, 'debian': 'python3-numpy', 'arch': 'python-numpy', 'downloader': 'python', 'role': 'Automatically adjust SVG margin'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_pdf (kibot - kiplot.py:91)
+DEBUG:- Importing out_pdf_pcb_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_pdf_pcb_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.7'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.7'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.7'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_pdf_sch_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_pdf_sch_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.4'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_pdfunite (kibot - kiplot.py:91)
+DEBUG:- Importing out_populate (kibot - kiplot.py:91)
+DEBUG:- Importing out_position (kibot - kiplot.py:91)
+DEBUG:- Importing out_ps (kibot - kiplot.py:91)
+DEBUG:- Importing out_ps_sch_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_ps_sch_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.4'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_qr_lib (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_qr_lib` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'QRCodeGen', 'role': 'mandatory', 'python_module': True, 'downloader': 'python', 'debian': 'python3-qrcodegen'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'QRCodeGen', 'role': 'mandatory', 'python_module': True, 'downloader': 'python', 'debian': 'python3-qrcodegen'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_render_3d (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_render_3d` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.1'}, {'from': 'ImageMagick', 'role': 'Automatically crop images'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.1'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.1'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'ImageMagick', 'role': 'Automatically crop images'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from ImageMagick: {'name': 'ImageMagick', 'url': 'https://imagemagick.org/', 'url_down': 'https://imagemagick.org/script/download.php', 'command': 'convert', 'downloader': 'convert', 'debian': 'imagemagick', 'arch': 'imagemagick', 'extra_arch': ['gsfonts'], 'extra_checks': ['check_imagick_policy'], 'from': 'ImageMagick', 'role': 'Automatically crop images'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_report (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_report` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'name': 'Pandoc', 'role': 'Create PDF/ODF/DOCX files', 'url': 'https://pandoc.org/', 'url_down': 'https://github.com/jgm/pandoc/releases', 'debian': 'pandoc', 'arch': 'pandoc', 'extra_deb': ['texlive', 'texlive-latex-base', 'texlive-latex-recommended'], 'extra_arch': ['texlive-core'], 'comments': 'In CI/CD environments: the `kicad_auto_test` docker image contains it.'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'name': 'Pandoc', 'role': 'Create PDF/ODF/DOCX files', 'url': 'https://pandoc.org/', 'url_down': 'https://github.com/jgm/pandoc/releases', 'debian': 'pandoc', 'arch': 'pandoc', 'extra_deb': ['texlive', 'texlive-latex-base', 'texlive-latex-recommended'], 'extra_arch': ['texlive-core'], 'comments': 'In CI/CD environments: the `kicad_auto_test` docker image contains it.'} (kibot - dep_downloader.py:1081)
+DEBUG:- Importing out_sch_variant (kibot - kiplot.py:91)
+DEBUG:- Importing out_stencil_3d (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_stencil_3d` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiKit', 'role': 'mandatory'}, {'name': 'OpenSCAD', 'url': 'https://openscad.org/', 'url_down': 'https://openscad.org/downloads.html', 'command': 'openscad', 'debian': 'openscad', 'arch': 'openscad', 'role': 'mandatory'}, {'from': 'Xvfbwrapper', 'role': 'mandatory'}, {'from': 'Xvfb', 'role': 'mandatory'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiKit', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiKit: {'name': 'KiKit', 'github': 'INTI-CMNB/KiKit', 'pypi': 'KiKit', 'downloader': 'pytool', 'version_k6': '1.5.0', 'version_k7': '1.6.0', 'version_k9': '1.7.0', 'from': 'KiKit', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'name': 'OpenSCAD', 'url': 'https://openscad.org/', 'url_down': 'https://openscad.org/downloads.html', 'command': 'openscad', 'debian': 'openscad', 'arch': 'openscad', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'from': 'Xvfbwrapper', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Xvfbwrapper: {'name': 'Xvfbwrapper', 'python_module': True, 'debian': 'python3-xvfbwrapper', 'arch': 'python-xvfbwrapper', 'downloader': 'python', 'from': 'Xvfbwrapper', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Xvfb', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Xvfb: {'name': 'Xvfb', 'url': 'https://www.x.org', 'command': 'xvfb-run', 'debian': 'xvfb', 'arch': 'xorg-server-xvfb', 'no_cmd_line_version': True, 'from': 'Xvfb', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_stencil_for_jig (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_stencil_for_jig` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiKit', 'role': 'mandatory'}, {'name': 'OpenSCAD', 'url': 'https://openscad.org/', 'url_down': 'https://openscad.org/downloads.html', 'command': 'openscad', 'debian': 'openscad', 'arch': 'openscad', 'role': 'mandatory'}, {'from': 'Xvfbwrapper', 'role': 'mandatory'}, {'from': 'Xvfb', 'role': 'mandatory'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiKit', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiKit: {'name': 'KiKit', 'github': 'INTI-CMNB/KiKit', 'pypi': 'KiKit', 'downloader': 'pytool', 'version_k6': '1.5.0', 'version_k7': '1.6.0', 'version_k9': '1.7.0', 'from': 'KiKit', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'name': 'OpenSCAD', 'url': 'https://openscad.org/', 'url_down': 'https://openscad.org/downloads.html', 'command': 'openscad', 'debian': 'openscad', 'arch': 'openscad', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Registering dep {'from': 'Xvfbwrapper', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Xvfbwrapper: {'name': 'Xvfbwrapper', 'python_module': True, 'debian': 'python3-xvfbwrapper', 'arch': 'python-xvfbwrapper', 'downloader': 'python', 'from': 'Xvfbwrapper', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Xvfb', 'role': 'mandatory'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Xvfb: {'name': 'Xvfb', 'url': 'https://www.x.org', 'command': 'xvfb-run', 'debian': 'xvfb', 'arch': 'xorg-server-xvfb', 'no_cmd_line_version': True, 'from': 'Xvfb', 'role': 'mandatory'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_step (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_step` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.1', 'command': 'kicad2step_do'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.1', 'command': 'kicad2step_do'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'kicad2step_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.1'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_svg (kibot - kiplot.py:91)
+DEBUG:- Importing out_svg_pcb_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_svg_pcb_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.7'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.7'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '1.6.7'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_svg_sch_print (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_svg_sch_print` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.3.4'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.4'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing out_vrml (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `out_vrml` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '2.1.0'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '2.1.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.1.0'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_annotate_pcb (kibot - kiplot.py:91)
+DEBUG:- Importing pre_annotate_power (kibot - kiplot.py:91)
+DEBUG:- Importing pre_any_replace (kibot - kiplot.py:91)
+DEBUG:- Importing pre_any_xrc (kibot - kiplot.py:91)
+DEBUG:- Importing pre_base (kibot - kiplot.py:91)
+DEBUG:- Importing pre_check_fields (kibot - kiplot.py:91)
+DEBUG:- Importing pre_check_zone_fills (kibot - kiplot.py:91)
+DEBUG:- Importing pre_consolidate_pcbs (kibot - kiplot.py:91)
+DEBUG:- Importing pre_convert_pcb (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_convert_pcb` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.2'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.2'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.3.2'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_draw_fancy_stackup (kibot - kiplot.py:91)
+DEBUG:- Importing pre_draw_stackup (kibot - kiplot.py:91)
+DEBUG:- Importing pre_drc (kibot - kiplot.py:91)
+DEBUG:- Importing pre_erc (kibot - kiplot.py:91)
+DEBUG:- Importing pre_erc_warnings (kibot - kiplot.py:91)
+DEBUG:- Importing pre_fill_zones (kibot - kiplot.py:91)
+DEBUG:- Importing pre_filters (kibot - kiplot.py:91)
+DEBUG:- Importing pre_ignore_unconnected (kibot - kiplot.py:91)
+DEBUG:- Importing pre_include_table (kibot - kiplot.py:91)
+DEBUG:- Importing pre_pcb_replace (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_pcb_replace` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'Git', 'role': 'Find commit hash and/or date'}, {'from': 'Bash', 'role': 'Run external commands to create replacement text'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Bash', 'role': 'Run external commands to create replacement text'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Bash: {'name': 'Bash', 'url': 'https://www.gnu.org/software/bash/', 'debian': 'bash', 'arch': 'bash', 'from': 'Bash', 'role': 'Run external commands to create replacement text'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_run_drc (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_run_drc` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'version': '2.0.0'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'version': '2.0.0'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'pcbnew_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.0.0'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_run_erc (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_run_erc` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.2.1'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '2.2.1'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '2.2.1'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_sch_replace (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_sch_replace` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'Git', 'role': 'Find commit hash and/or date'}, {'from': 'Bash', 'role': 'Run external commands to create replacement text'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Bash', 'role': 'Run external commands to create replacement text'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Bash: {'name': 'Bash', 'url': 'https://www.gnu.org/software/bash/', 'debian': 'bash', 'arch': 'bash', 'from': 'Bash', 'role': 'Run external commands to create replacement text'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_set_text_variables (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_set_text_variables` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'Git', 'role': 'Find commit hash and/or date'}, {'from': 'Bash', 'role': 'Run external commands to create replacement text'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Git: {'name': 'Git', 'url': 'https://git-scm.com/', 'downloader': 'git', 'debian': 'git', 'arch': 'git', 'from': 'Git', 'role': 'Find commit hash and/or date'} (kibot - dep_downloader.py:1009)
+DEBUG: - Registering dep {'from': 'Bash', 'role': 'Run external commands to create replacement text'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from Bash: {'name': 'Bash', 'url': 'https://www.gnu.org/software/bash/', 'debian': 'bash', 'arch': 'bash', 'from': 'Bash', 'role': 'Run external commands to create replacement text'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing pre_update_footprint (kibot - kiplot.py:91)
+DEBUG:- Importing pre_update_pcb_characteristics (kibot - kiplot.py:91)
+DEBUG:- Importing pre_update_qr (kibot - kiplot.py:91)
+DEBUG:- Importing pre_update_stackup (kibot - kiplot.py:91)
+DEBUG:- Importing pre_update_xml (kibot - kiplot.py:91)
+DEBUG:- Processing dependencies for `pre_update_xml` (kibot - dep_downloader.py:1069)
+DEBUG: - Data: {'Dependencies': [{'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '1.5.4'}]} (kibot - dep_downloader.py:1070)
+DEBUG: - Registering dep {'from': 'KiAuto', 'role': 'mandatory', 'command': 'eeschema_do', 'version': '1.5.4'} (kibot - dep_downloader.py:1081)
+DEBUG: - Dep after applying from KiAuto: {'name': 'KiCad Automation tools', 'github': 'INTI-CMNB/KiAuto', 'command': 'eeschema_do', 'pypi': 'kiauto', 'downloader': 'pytool', 'id': 'KiAuto', 'from': 'KiAuto', 'role': 'mandatory', 'version': '1.5.4'} (kibot - dep_downloader.py:1009)
+DEBUG:- Importing var_base (kibot - kiplot.py:91)
+DEBUG:- Importing var_ibom (kibot - kiplot.py:91)
+DEBUG:- Importing var_kibom (kibot - kiplot.py:91)
+DEBUG:- Importing var_kicost (kibot - kiplot.py:91)
+DEBUG:Deactivating macros (kibot - kiplot.py:117)
+DEBUG:End of initialization (kibot - __main__.py:525)
+DEBUG:Using configuration file: `kibot_yaml/kibot_main.yaml` (kibot - __main__.py:271)
+WARNING:(W044) More than one SCH file found in `.`.
+ Using ./Nixie_Tube_Clock.kicad_sch if you want to use another use -e option. (kibot - kiplot.py:962)
+DEBUG:Using schematic: `/workspace/aidanbrzezinski/Nixie_Tube_Clock/Nixie_Tube_Clock.kicad_sch` (kibot - kiplot.py:968)
+DEBUG:Real schematic name: `/workspace/aidanbrzezinski/Nixie_Tube_Clock/Nixie_Tube_Clock.kicad_sch` (kibot - kiplot.py:969)
+DEBUG:Using PCB: `/workspace/aidanbrzezinski/Nixie_Tube_Clock/Nixie_Tube_Clock.kicad_pcb` (kibot - kiplot.py:999)
+DEBUG:Real PCB name: `/workspace/aidanbrzezinski/Nixie_Tube_Clock/Nixie_Tube_Clock.kicad_pcb` (kibot - kiplot.py:1000)
+DEBUG:Starting to load the configuration (kibot - __main__.py:595)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @PROJECT_NAME@ -> Nixie Tube Clock () (kibot - config_reader.py:90)
+DEBUG:- Replacing @BOARD_NAME@ -> Nixie Clock Main Board () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMPANY@ -> Company Name () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DESIGNER@ -> Aidan Brzezinski () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LOGO@ -> Logos/dummy_logo.png () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GIT_URL@ -> https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CHECK_ZONE_FILLS@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @STACKUP_TABLE_NOTE@ -> external layer thicknesses are specified after plating () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MPN_FIELD@ -> Manufacturer Part Number () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MAN_FIELD@ -> Manufacturer () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GROUP_ROUND_SLOTS@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GROUP_PTH_NPTH@ -> no () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GROUP_PTH_NPTH_DRL@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PLOT_REFS@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COLOR_THEME@ -> Altium_Theme () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SHEET_WKS@ -> ${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FAB_SCALING@ -> 1 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ASSEMBLY_SCALING@ -> 1 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_REFS@ -> [MB*] () (kibot - config_reader.py:90)
+DEBUG:- Replacing @3D_VIEWER_ROT_X@ -> 2 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @3D_VIEWER_ROT_Y@ -> -1 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @3D_VIEWER_ROT_Z@ -> 1 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @3D_VIEWER_ZOOM@ -> -1 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @KEY_COLOR@ -> #00FF00 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @OUTPUT_DIR@ -> ./ () (kibot - config_reader.py:90)
+DEBUG:- Replacing @REPORT_DIR@ -> Reports () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SCHEMATIC_DIR@ -> Schematic () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ASSEMBLY_DIR@ -> @MANUFACTURING_DIR@/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FABRICATION_DIR@ -> @MANUFACTURING_DIR@/Fabrication () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GERBERS_DIR@ -> @FABRICATION_DIR@/Gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FAB_DRILL_TABLES_DIR@ -> @FABRICATION_DIR@/Drill Tables () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TESTPOINTS_DIR@ -> @TESTING_DIR@/Testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @IMAGES_DIR@ -> Images () (kibot - config_reader.py:90)
+DEBUG:- Replacing @3D_DIR@ -> 3D () (kibot - config_reader.py:90)
+DEBUG:- Replacing @REPORT_TEMPLATE_DIR@ -> @RESOURCES_DIR@/templates () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SCRIPTS_DIR@ -> @RESOURCES_DIR@/scripts () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_TITLE_PAGE@ -> TitlePage () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DNP_TOP@ -> F.DNP () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DNP_BOTTOM@ -> B.DNP () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DRILL_MAP@ -> DrillMap () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_TP_LIST_TOP@ -> F.TestPointList () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_TP_LIST_BOTTOM@ -> B.TestPointList () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_ASSEMBLY_TEXT_TOP@ -> F.AssemblyText () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_ASSEMBLY_TEXT_BOTTOM@ -> B.AssemblyText () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DNP_CROSS_TOP@ -> F.DNP () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DNP_CROSS_BOTTOM@ -> B.DNP () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FILT_FIELD_RENAME@ -> field_rename () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FILT_TP_ONLY@ -> only_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FILT_TP_EXCLUDE@ -> exclude_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FILT_TP_TOP_ONLY@ -> only_testpoints_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FILT_TP_BOTTOM_ONLY@ -> only_testpoints_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SCH_VARIANT_OUTPUT@ -> value_split () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NETLIST_OUTPUT@ -> netlist () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GERBER_OUTPUT@ -> gbr_gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ODB_OUTPUT@ -> zip_odb () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCELLON_DRILL_OUTPUT@ -> drl_excellon () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PDF_DRILL_MAP_OUTPUT@ -> pdf_drill_map () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DXF_DRILL_MAP_OUTPUT@ -> dxf_drill_map () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_DRILL_TABLE_OUTPUT@ -> csv_drill_table () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_POS_OUTPUT@ -> csv_position () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_TP_OUTPUT@ -> csv_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_TP_TOP_OUTPUT@ -> csv_testpoints_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_TP_BOTTOM_OUTPUT@ -> csv_testpoints_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_BOM_OUTPUT@ -> csv_bom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @XLSX_BOM_OUTPUT@ -> xlsx_bom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @HTML_IBOM_OUTPUT@ -> html_bom_interactive () (kibot - config_reader.py:90)
+DEBUG:- Replacing @HTML_BOM_OUTPUT@ -> html_bom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_COMP_COUNT_OUPUT@ -> csv_comp_count () (kibot - config_reader.py:90)
+DEBUG:- Replacing @CSV_IMPEDANCE_TABLE_OUTPUT@ -> csv_impedance_table () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TXT_FAB_NOTES_OUTPUT@ -> txt_fabrication_notes () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TXT_ASSEMBLY_NOTES_OUTPUT@ -> txt_assembly_notes () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PNG_3D_VIEWER_TOP@ -> png_3d_viewer_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PNG_3D_VIEWER_BOTTOM@ -> png_3d_viewer_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PNG_3D_VIEWER_ANGLED_TOP@ -> png_3d_viewer_angled_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PNG_3D_VIEWER_ANGLED_BOTTOM@ -> png_3d_viewer_angled_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @STEP_OUTPUT@ -> step () (kibot - config_reader.py:90)
+DEBUG:- Replacing @BLENDER_OUTPUT@ -> blender () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PDF_SCHEMATIC_OUTPUT@ -> pdf_schematic () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PDF_FABRICATION_OUTPUT@ -> pdf_fabrication () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PDF_ASSEMBLY_OUTPUT@ -> pdf_assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ZIP_COMPRESS_FAB_OUTPUT@ -> zip_compress_fab () (kibot - config_reader.py:90)
+DEBUG:- Replacing @HTML_KICANVAS_OUTPUT@ -> html_kicanvas () (kibot - config_reader.py:90)
+DEBUG:- Replacing @HTML_KIRI_OUTPUT@ -> html_kiri () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MD_README_OUTPUT@ -> md_readme () (kibot - config_reader.py:90)
+DEBUG:- Replacing @HTML_NAV_RES_OUTPUT@ -> html_navigate_results () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @MANUFACTURING_DIR@ -> Manufacturing () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FABRICATION_DIR@ -> @MANUFACTURING_DIR@/Fabrication () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TESTING_DIR@ -> Testing () (kibot - config_reader.py:90)
+DEBUG:- Replacing @RESOURCES_DIR@ -> kibot_resources () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @MANUFACTURING_DIR@ -> Manufacturing () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot configuration file for KDT_Hierarchical Template
+# KiCad 8.0
+
+kibot:
+ version: 1
+
+variants:
+
+ # Project variants
+
+ - name: 'DRAFT'
+ comment: "Very early stage of schematic, ignore details."
+ type: kibom
+ variant: DRAFT
+ exclude_filter: '_null'
+
+ - name: 'PRELIMINARY'
+ comment: "Close to final schematic."
+ type: kibom
+ variant: PRELIMINARY
+ exclude_filter: '_null'
+
+ - name: 'CHECKED'
+ comment: "There shouldn't be any mistakes. Contact the engineer if you find any."
+ type: kibom
+ variant: CHECKED
+ exclude_filter: '_null'
+
+ - name: 'RELEASED'
+ comment: "A board with this schematic has been sent to production."
+ type: kibom
+ variant: RELEASED
+ exclude_filter: '_null'
+
+ # Assembly variants (are executed with the same flags as RELEASED)
+
+ # - name: 'EXAMPLE'
+ # comment: 'Example'
+ # type: kibom
+ # file_id: _(EXAMPLE)
+ # variant: EXAMPLE
+ # exclude_filter: '_null'
+
+ # - name: 'NONE'
+ # comment: 'None'
+ # type: kibom
+ # file_id: _(NONE)
+ # variant: NONE
+ # exclude_filter: '_null'
+
+groups:
+
+ - name: all_group
+ outputs:
+ - netlist
+ - bom
+ - 3d
+ - fab
+ - assembly
+ - pdf_schematic
+ - md_readme
+ # - html_kicanvas # Very experimental, we exclude it for now
+ - html_kiri
+ - html_navigate_results
+
+ - name: all_group_k9
+ outputs:
+ - netlist
+ - bom
+ - 3d
+ - fab_k9
+ - assembly
+ - pdf_schematic
+ - md_readme
+ # - html_kicanvas # Very experimental, we exclude it for now
+ - html_kiri
+ - html_navigate_results
+
+ - name: draft_group
+ outputs:
+ - netlist
+ - pdf_schematic
+ - csv_bom
+ - html_bom
+
+ - name: fab
+ outputs:
+ - tables
+ - gbr_gerbers
+ - drl_excellon
+ # - dxf_drill_map
+ - pdf_drill_map
+ - pdf_fabrication
+ - zip_compress_fab
+
+ - name: fab_k9
+ outputs:
+ - tables
+ - gbr_gerbers
+ - zip_odb
+ - drl_excellon
+ # - dxf_drill_map
+ - pdf_drill_map
+ - pdf_fabrication
+ - zip_compress_fab
+
+ - name: assembly
+ outputs:
+ - 3d_render
+ - csv_position
+ - pdf_assembly
+
+ - name: 3d_render
+ outputs:
+ - png_3d_viewer_top
+ - png_3d_viewer_bottom
+ - png_3d_viewer_angled_top
+ - png_3d_viewer_angled_bottom
+
+ - name: bom
+ outputs:
+ - csv_bom
+ # - xlsx_bom
+ - html_bom_interactive
+ - html_bom
+
+ - name: tables
+ outputs:
+ - csv_comp_count
+ - csv_impedance_table
+ - csv_drill_table
+ - testpoints
+ - notes
+
+ - name: testpoints
+ outputs:
+ - csv_testpoints
+ - csv_testpoints_top
+ - csv_testpoints_bottom
+
+ - name: notes
+ outputs:
+ - txt_fabrication_notes
+ - txt_assembly_notes
+
+ - name: 3d
+ outputs:
+ - step
+ # - blender # looks kinda bad
+
+import:
+
+ # Global parameters ==========================================================
+
+ - file: kibot_globals.yaml
+ definitions:
+ OUTPUT_DIR: ./
+ LAYER_DNP_TOP: F.DNP
+ LAYER_DNP_BOTTOM: B.DNP
+
+ # Filters ====================================================================
+
+ - file: kibot_filt_field_rename.yaml
+ definitions:
+ NAME: field_rename
+ COMMENT: Rename fields
+ MPN_FIELD: Manufacturer Part Number
+ MAN_FIELD: Manufacturer
+
+ - file: kibot_filt_testpoints.yaml
+ definitions:
+ NAME: only_testpoints
+ COMMENT: Include only testpoints
+
+ - file: kibot_filt_exclude_testpoints.yaml
+ definitions:
+ NAME: exclude_testpoints
+ COMMENT: Exclude only testpoints
+
+ - file: kibot_filt_testpoints.yaml
+ definitions:
+ NAME: only_testpoints_top
+ COMMENT: Select only top testpoints
+ EXCLUDE_BOTTOM: true
+ EXCLUDE_REFS: "[MB*]"
+
+ - file: kibot_filt_testpoints.yaml
+ definitions:
+ NAME: only_testpoints_bottom
+ COMMENT: Select only bottom testpoints
+ EXCLUDE_TOP: true
+ EXCLUDE_REFS: "[MB*]"
+
+ # Preflights =================================================================
+
+ # Set text variables
+ - file: kibot_pre_set_text_variables.yaml
+ definitions:
+ PROJECT_NAME: Nixie Tube Clock
+ BOARD_NAME: Nixie Clock Main Board
+ COMPANY: Company Name
+ DESIGNER: Aidan Brzezinski
+ SCRIPTS_DIR: kibot_resources/scripts
+ FABRICATION_DIR: Manufacturing/Fabrication
+ ASSEMBLY_DIR: Manufacturing/Assembly
+
+ # Generate ERC Report
+ - file: kibot_pre_erc_report.yaml
+ definitions:
+ DIR: Reports
+
+ # Generate DRC Report
+ - file: kibot_pre_drc_report.yaml
+ definitions:
+ CHECK_ZONE_FILLS: false
+ DIR: Reports
+
+ # Draw stackup table in PCB. Needs gerber output
+ - file: kibot_pre_draw_stackup.yaml
+ definitions:
+ GERBER_OUTPUT: gbr_gerbers
+ NOTE: external layer thicknesses are specified after plating
+
+ # Include tables in PCB for testpoint lists
+ # - file: kibot_pre_include_table.yaml
+ # definitions:
+ # NAME_TP_TOP: csv_testpoints_top
+ # NAME_TP_BOTTOM: csv_testpoints_bottom
+ # NAME_COMP_COUNT: csv_comp_count
+ # NAME_IMPEDANCE_TABLE: csv_impedance_table
+
+# Generated outputs ============================================================
+
+ # Schematic variant with split fields ----------------------------------------
+ # - file: kibot_out_sch_variant.yaml
+ # definitions:
+ # NAME: value_split
+ # COMMENT: Split component Value field of components
+ # DIR: 'Schematic/value_split'
+
+ # Netlist --------------------------------------------------------------------
+ - file: kibot_out_netlist.yaml
+ definitions:
+ NAME: netlist
+ COMMENT: Schematic netlist in KiCad format
+
+ # Generic manufacturing outputs ==============================================
+
+ # Gerbers --------------------------------------------------------------------
+ - file: kibot_out_gerber.yaml
+ definitions:
+ NAME: gbr_gerbers
+ COMMENT: Gerbers in GBR format
+ DIR: Manufacturing/Fabrication/Gerbers
+ PLOT_REFS: true
+
+ # ODB++ ----------------------------------------------------------------------
+ - file: kibot_out_odb.yaml
+ definitions:
+ NAME: zip_odb
+ COMMENT: ODB++ in ZIP format
+ DIR: Manufacturing/Fabrication
+
+ # Drill files
+ - file: kibot_out_excellon_drill.yaml
+ definitions:
+ NAME: drl_excellon
+ COMMENT: Drill in Excellon format
+ DIR: Manufacturing/Fabrication/Gerbers
+
+ # Drill Map (PDF)
+ - file: kibot_out_excellon_drill.yaml
+ definitions:
+ NAME: pdf_drill_map
+ COMMENT: Drill Map in PDF format
+ DIR: Manufacturing/Fabrication/Gerbers
+ GENERATE_DRILL: false
+ PTH_NPTH: false
+ MAP_FORMAT: pdf
+
+ # Drill Map (DXF)
+ # - file: kibot_out_excellon_drill.yaml
+ # definitions:
+ # NAME: dxf_drill_map
+ # COMMENT: Drill Map in DXF format
+ # DIR: Manufacturing/Fabrication/Gerbers
+ # GENERATE_DRILL: false
+ # PTH_NPTH: false
+ # MAP_FORMAT: dxf
+
+ # Drill Table (CSV)
+ - file: kibot_out_csv_drill_table.yaml
+ definitions:
+ NAME: csv_drill_table
+ COMMENT: Drill Table in CSV format
+ DIR: Manufacturing/Fabrication/Drill Tables
+ PTH_NPTH: 'no'
+ GROUP_ROUND_SLOTS: true
+
+ # Position file --------------------------------------------------------------
+
+ - file: kibot_out_csv_pos.yaml
+ definitions:
+ NAME: csv_position
+ COMMENT: Position file in CSV format
+ DIR: Manufacturing/Assembly
+
+ # Manufacturer-specific manufacturing outputs ================================
+
+ # Testpoint lists ------------------------------------------------------------
+ - file: kibot_out_csv_testpoints.yaml
+ definitions:
+ NAME: csv_testpoints
+ COMMENT: Testpoint report in CSV format
+ DIR: Testing/Testpoints
+ EXCLUDE_FILTER: only_testpoints
+
+ - file: kibot_out_csv_testpoints_simple.yaml
+ definitions:
+ NAME: csv_testpoints_top
+ COMMENT: Top testpoint report in CSV format
+ DIR: Testing/Testpoints
+ SUFFIX: -top
+ EXCLUDE_FILTER: only_testpoints_top
+
+ - file: kibot_out_csv_testpoints_simple.yaml
+ definitions:
+ NAME: csv_testpoints_bottom
+ COMMENT: Bottom testpoint report in CSV format
+ DIR: Testing/Testpoints
+ SUFFIX: -bottom
+ EXCLUDE_FILTER: only_testpoints_bottom
+
+ # CSV Bill of Materials (BoM) ------------------------------------------------
+ - file: kibot_out_csv_bom.yaml
+ definitions:
+ NAME: csv_bom
+ COMMENT: Bill of Materials in CSV format
+ DIR: Manufacturing/Assembly
+ MPN_FIELD: Manufacturer Part Number
+ MAN_FIELD: Manufacturer
+
+ - file: kibot_out_html_bom.yaml
+ definitions:
+ NAME: html_bom
+ COMMENT: Bill of Materials in HTML format
+ DIR: Manufacturing/Assembly
+ MPN_FIELD: Manufacturer Part Number
+ MAN_FIELD: Manufacturer
+
+ # XLSX Bill of Materials (BoM)
+ - file: kibot_out_xlsx_bom.yaml
+ definitions:
+ NAME: xlsx_bom
+ COMMENT: Bill of Materials in XLSX format
+ DIR: Manufacturing/Assembly
+ FILT_PRE_TRANSFORM: field_rename
+
+ # Interactive HTML BOM. Needs netlist.
+ - file: kibot_out_html_ibom.yaml
+ definitions:
+ NAME: html_bom_interactive
+ COMMENT: Interactive BOM in HTML format
+ DIR: Manufacturing/Assembly
+ EXCLUDE_FILTER: exclude_testpoints
+ TITLE: Nixie Clock Main Board Assembly
+ MPN_FIELD: Manufacturer Part Number
+
+ # CSV components count report ------------------------------------------------
+ - file: kibot_out_csv_report.yaml
+ definitions:
+ NAME: csv_comp_count
+ COMMENT: Component report (count) in CSV format
+ DIR: Manufacturing/Assembly
+ OUTPUT_ID: components_count
+ TEMPLATE: total_components
+
+ # CSV Impedance/Transmission line table
+ - file: kibot_out_csv_report.yaml
+ definitions:
+ NAME: csv_impedance_table
+ COMMENT: Impedance table in CSV format
+ DIR: Manufacturing/Fabrication
+ OUTPUT_ID: impedance_table
+ TEMPLATE: kibot_resources/templates/impedance_table.txt
+
+ # TXT fabrication notes ------------------------------------------------------
+ - file: kibot_out_txt_report.yaml
+ definitions:
+ NAME: txt_fabrication_notes
+ COMMENT: Fabrication notes in TXT format
+ DIR: Manufacturing/Fabrication
+ OUTPUT_ID: fabrication_notes
+ TEMPLATE: kibot_resources/templates/fabrication_notes.txt
+
+ # TXT assembly notes
+ - file: kibot_out_txt_report.yaml
+ definitions:
+ NAME: txt_assembly_notes
+ COMMENT: Assembly notes in TXT format
+ DIR: Manufacturing/Assembly
+ OUTPUT_ID: assembly_notes
+ TEMPLATE: kibot_resources/templates/assembly_notes.txt
+
+ # PNG 3D Viewer renders ------------------------------------------------------
+ - file: kibot_out_png_3d_viewer.yaml
+ definitions:
+ NAME: png_3d_viewer_top
+ COMMENT: Top 3D viewer PCB render in PNG format
+ DIR: Images
+ SUFFIX: top
+ VIEW: top
+ KEY_COLOR: '#00FF00'
+
+ - file: kibot_out_png_3d_viewer.yaml
+ definitions:
+ NAME: png_3d_viewer_bottom
+ COMMENT: Bottom 3D viewer PCB render in PNG format
+ DIR: Images
+ SUFFIX: bottom
+ VIEW: bottom
+ KEY_COLOR: '#00FF00'
+
+ - file: kibot_out_png_3d_viewer.yaml
+ definitions:
+ NAME: png_3d_viewer_angled_top
+ COMMENT: Top (angled) 3D viewer PCB render in PNG format
+ DIR: Images
+ SUFFIX: angled_top
+ VIEW: top
+ ROTATE_X: 2
+ ROTATE_Y: -1
+ ROTATE_Z: 1
+ ZOOM: -1
+ KEY_COLOR: '#00FF00'
+
+ - file: kibot_out_png_3d_viewer.yaml
+ definitions:
+ NAME: png_3d_viewer_angled_bottom
+ COMMENT: Bottom (angled) 3D viewer PCB render in PNG format
+ DIR: Images
+ SUFFIX: angled_bottom
+ VIEW: bottom
+ ROTATE_X: 2
+ ROTATE_Y: -1
+ ROTATE_Z: -1
+ ZOOM: -1
+ KEY_COLOR: '#00FF00'
+
+ # STEP file ------------------------------------------------------------------
+ - file: kibot_out_step.yaml
+ definitions:
+ NAME: step
+ COMMENT: PCB 3D model in STEP format
+ DIR: 3D
+
+ # - file: kibot_out_blender.yaml
+ # definitions:
+ # NAME: blender
+ # COMMENT: PCB 3D model in PCB3D Blender format
+ # DIR: Images
+
+ # Schematic in PDF format ----------------------------------------------------
+ - file: kibot_out_pdf_schematic.yaml
+ definitions:
+ NAME: pdf_schematic
+ COMMENT: Schematic in PDF format
+ COLOR_THEME: Altium_Theme
+ DIR: Schematic
+ DEFAULT_FONT: 'Times New Roman'
+
+ # Fabrication Document in PDF format
+ - file: kibot_out_pdf_fabrication.yaml
+ definitions:
+ NAME: pdf_fabrication
+ COMMENT: Fabrication document in PDF format
+ DIR: Manufacturing/Fabrication
+ COLOR_THEME: Altium_Theme
+ SHEET_WKS: ${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks
+ SCALING: 1
+ PTH_NPTH: 'no'
+ GROUP_ROUND_SLOTS: true
+ FAB_EXCLUDE_FILTER: only_testpoints
+ LAYER_DRILL_MAP: DrillMap
+ LAYER_TP_LIST_TOP: F.TestPointList
+ LAYER_TP_LIST_BOTTOM: B.TestPointList
+ NAME_TP_TOP: csv_testpoints_top
+ NAME_TP_BOTTOM: csv_testpoints_bottom
+ NAME_IMPEDANCE_TABLE: csv_impedance_table
+ NAME_DRILL_TABLE: csv_drill_table
+
+ # Assembly Document in PDF format
+ - file: kibot_out_pdf_assembly.yaml
+ definitions:
+ NAME: pdf_assembly
+ COMMENT: Assembly document in PDF format
+ DIR: Manufacturing/Assembly
+ COLOR_THEME: Altium_Theme
+ SHEET_WKS: ${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks
+ SCALING: 1
+ FAB_EXCLUDE_FILTER: exclude_testpoints
+ LAYER_TITLE_PAGE: TitlePage
+ LAYER_ASSEMBLY_TEXT_TOP: F.AssemblyText
+ LAYER_ASSEMBLY_TEXT_BOTTOM: B.AssemblyText
+ LAYER_DNP_CROSS_TOP: F.DNP
+ LAYER_DNP_CROSS_BOTTOM: B.DNP
+ NAME_COMP_COUNT: csv_comp_count
+
+ # Compress fabrication files into ZIP archive --------------------------------
+ - file: kibot_out_compress_fab.yaml
+ definitions:
+ NAME: zip_compress_fab
+ COMMENT: Generates a ZIP file with gerbers, drill and fabrication document
+ DIR: Manufacturing/Fabrication
+ GERBER_OUTPUT: gbr_gerbers
+ DRILL_MAP_OUTPUT: pdf_drill_map
+ DRILL_OUTPUT: drl_excellon
+ FABRICATION_OUTPUT: pdf_fabrication
+
+ # Generate webpage for exploring PCB/SCH files
+ - file: kibot_out_html_kicanvas.yaml
+ definitions:
+ NAME: html_kicanvas
+ COMMENT: KiCanvas webpage
+ DIR: KiCanvas
+
+ # Generate webpage with diffs between commits
+ - file: kibot_out_html_kiri.yaml
+ definitions:
+ NAME: html_kiri
+ COMMENT: KiRI webpage
+ DIR: KiRI
+
+ # README.md file generation
+ - file: kibot_out_md_report.yaml
+ definitions:
+ NAME: md_readme
+ COMMENT: README file in Markdown format
+ DIR: ./
+ CATEGORY: '.'
+ OUTPUT_NAME: README
+ TEMPLATE: kibot_resources/templates/readme.txt
+
+ - file: kibot_out_navigate_results.yaml
+ definitions:
+ NAME: html_navigate_results
+ COMMENT: Results webpage in HTML format
+ DIR: HTML
+ TITLE: Nixie Clock Main Board
+ LOGO: Logos/dummy_logo.png
+ LOGO_URL: https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git
+
+# ==============================================================================
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing imports: [{'file': 'kibot_globals.yaml', 'definitions': {'OUTPUT_DIR': './', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP'}}, {'file': 'kibot_filt_field_rename.yaml', 'definitions': {'NAME': 'field_rename', 'COMMENT': 'Rename fields', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer'}}, {'file': 'kibot_filt_testpoints.yaml', 'definitions': {'NAME': 'only_testpoints', 'COMMENT': 'Include only testpoints'}}, {'file': 'kibot_filt_exclude_testpoints.yaml', 'definitions': {'NAME': 'exclude_testpoints', 'COMMENT': 'Exclude only testpoints'}}, {'file': 'kibot_filt_testpoints.yaml', 'definitions': {'NAME': 'only_testpoints_top', 'COMMENT': 'Select only top testpoints', 'EXCLUDE_BOTTOM': True, 'EXCLUDE_REFS': '[MB*]'}}, {'file': 'kibot_filt_testpoints.yaml', 'definitions': {'NAME': 'only_testpoints_bottom', 'COMMENT': 'Select only bottom testpoints', 'EXCLUDE_TOP': True, 'EXCLUDE_REFS': '[MB*]'}}, {'file': 'kibot_pre_set_text_variables.yaml', 'definitions': {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'ASSEMBLY_DIR': 'Manufacturing/Assembly'}}, {'file': 'kibot_pre_erc_report.yaml', 'definitions': {'DIR': 'Reports'}}, {'file': 'kibot_pre_drc_report.yaml', 'definitions': {'CHECK_ZONE_FILLS': False, 'DIR': 'Reports'}}, {'file': 'kibot_pre_draw_stackup.yaml', 'definitions': {'GERBER_OUTPUT': 'gbr_gerbers', 'NOTE': 'external layer thicknesses are specified after plating'}}, {'file': 'kibot_out_netlist.yaml', 'definitions': {'NAME': 'netlist', 'COMMENT': 'Schematic netlist in KiCad format'}}, {'file': 'kibot_out_gerber.yaml', 'definitions': {'NAME': 'gbr_gerbers', 'COMMENT': 'Gerbers in GBR format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'PLOT_REFS': True}}, {'file': 'kibot_out_odb.yaml', 'definitions': {'NAME': 'zip_odb', 'COMMENT': 'ODB++ in ZIP format', 'DIR': 'Manufacturing/Fabrication'}}, {'file': 'kibot_out_excellon_drill.yaml', 'definitions': {'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers'}}, {'file': 'kibot_out_excellon_drill.yaml', 'definitions': {'NAME': 'pdf_drill_map', 'COMMENT': 'Drill Map in PDF format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': False, 'PTH_NPTH': False, 'MAP_FORMAT': 'pdf'}}, {'file': 'kibot_out_csv_drill_table.yaml', 'definitions': {'NAME': 'csv_drill_table', 'COMMENT': 'Drill Table in CSV format', 'DIR': 'Manufacturing/Fabrication/Drill Tables', 'PTH_NPTH': 'no', 'GROUP_ROUND_SLOTS': True}}, {'file': 'kibot_out_csv_pos.yaml', 'definitions': {'NAME': 'csv_position', 'COMMENT': 'Position file in CSV format', 'DIR': 'Manufacturing/Assembly'}}, {'file': 'kibot_out_csv_testpoints.yaml', 'definitions': {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'EXCLUDE_FILTER': 'only_testpoints'}}, {'file': 'kibot_out_csv_testpoints_simple.yaml', 'definitions': {'NAME': 'csv_testpoints_top', 'COMMENT': 'Top testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-top', 'EXCLUDE_FILTER': 'only_testpoints_top'}}, {'file': 'kibot_out_csv_testpoints_simple.yaml', 'definitions': {'NAME': 'csv_testpoints_bottom', 'COMMENT': 'Bottom testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-bottom', 'EXCLUDE_FILTER': 'only_testpoints_bottom'}}, {'file': 'kibot_out_csv_bom.yaml', 'definitions': {'NAME': 'csv_bom', 'COMMENT': 'Bill of Materials in CSV format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer'}}, {'file': 'kibot_out_html_bom.yaml', 'definitions': {'NAME': 'html_bom', 'COMMENT': 'Bill of Materials in HTML format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer'}}, {'file': 'kibot_out_xlsx_bom.yaml', 'definitions': {'NAME': 'xlsx_bom', 'COMMENT': 'Bill of Materials in XLSX format', 'DIR': 'Manufacturing/Assembly', 'FILT_PRE_TRANSFORM': 'field_rename'}}, {'file': 'kibot_out_html_ibom.yaml', 'definitions': {'NAME': 'html_bom_interactive', 'COMMENT': 'Interactive BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'EXCLUDE_FILTER': 'exclude_testpoints', 'TITLE': 'Nixie Clock Main Board Assembly', 'MPN_FIELD': 'Manufacturer Part Number'}}, {'file': 'kibot_out_csv_report.yaml', 'definitions': {'NAME': 'csv_comp_count', 'COMMENT': 'Component report (count) in CSV format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'components_count', 'TEMPLATE': 'total_components'}}, {'file': 'kibot_out_csv_report.yaml', 'definitions': {'NAME': 'csv_impedance_table', 'COMMENT': 'Impedance table in CSV format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'impedance_table', 'TEMPLATE': 'kibot_resources/templates/impedance_table.txt'}}, {'file': 'kibot_out_txt_report.yaml', 'definitions': {'NAME': 'txt_fabrication_notes', 'COMMENT': 'Fabrication notes in TXT format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'fabrication_notes', 'TEMPLATE': 'kibot_resources/templates/fabrication_notes.txt'}}, {'file': 'kibot_out_txt_report.yaml', 'definitions': {'NAME': 'txt_assembly_notes', 'COMMENT': 'Assembly notes in TXT format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'assembly_notes', 'TEMPLATE': 'kibot_resources/templates/assembly_notes.txt'}}, {'file': 'kibot_out_png_3d_viewer.yaml', 'definitions': {'NAME': 'png_3d_viewer_top', 'COMMENT': 'Top 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'top', 'VIEW': 'top', 'KEY_COLOR': '#00FF00'}}, {'file': 'kibot_out_png_3d_viewer.yaml', 'definitions': {'NAME': 'png_3d_viewer_bottom', 'COMMENT': 'Bottom 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'bottom', 'VIEW': 'bottom', 'KEY_COLOR': '#00FF00'}}, {'file': 'kibot_out_png_3d_viewer.yaml', 'definitions': {'NAME': 'png_3d_viewer_angled_top', 'COMMENT': 'Top (angled) 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'angled_top', 'VIEW': 'top', 'ROTATE_X': 2, 'ROTATE_Y': -1, 'ROTATE_Z': 1, 'ZOOM': -1, 'KEY_COLOR': '#00FF00'}}, {'file': 'kibot_out_png_3d_viewer.yaml', 'definitions': {'NAME': 'png_3d_viewer_angled_bottom', 'COMMENT': 'Bottom (angled) 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'angled_bottom', 'VIEW': 'bottom', 'ROTATE_X': 2, 'ROTATE_Y': -1, 'ROTATE_Z': -1, 'ZOOM': -1, 'KEY_COLOR': '#00FF00'}}, {'file': 'kibot_out_step.yaml', 'definitions': {'NAME': 'step', 'COMMENT': 'PCB 3D model in STEP format', 'DIR': '3D'}}, {'file': 'kibot_out_pdf_schematic.yaml', 'definitions': {'NAME': 'pdf_schematic', 'COMMENT': 'Schematic in PDF format', 'COLOR_THEME': 'Altium_Theme', 'DIR': 'Schematic', 'DEFAULT_FONT': 'Times New Roman'}}, {'file': 'kibot_out_pdf_fabrication.yaml', 'definitions': {'NAME': 'pdf_fabrication', 'COMMENT': 'Fabrication document in PDF format', 'DIR': 'Manufacturing/Fabrication', 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'SCALING': 1, 'PTH_NPTH': 'no', 'GROUP_ROUND_SLOTS': True, 'FAB_EXCLUDE_FILTER': 'only_testpoints', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'NAME_TP_TOP': 'csv_testpoints_top', 'NAME_TP_BOTTOM': 'csv_testpoints_bottom', 'NAME_IMPEDANCE_TABLE': 'csv_impedance_table', 'NAME_DRILL_TABLE': 'csv_drill_table'}}, {'file': 'kibot_out_pdf_assembly.yaml', 'definitions': {'NAME': 'pdf_assembly', 'COMMENT': 'Assembly document in PDF format', 'DIR': 'Manufacturing/Assembly', 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'SCALING': 1, 'FAB_EXCLUDE_FILTER': 'exclude_testpoints', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'NAME_COMP_COUNT': 'csv_comp_count'}}, {'file': 'kibot_out_compress_fab.yaml', 'definitions': {'NAME': 'zip_compress_fab', 'COMMENT': 'Generates a ZIP file with gerbers, drill and fabrication document', 'DIR': 'Manufacturing/Fabrication', 'GERBER_OUTPUT': 'gbr_gerbers', 'DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DRILL_OUTPUT': 'drl_excellon', 'FABRICATION_OUTPUT': 'pdf_fabrication'}}, {'file': 'kibot_out_html_kicanvas.yaml', 'definitions': {'NAME': 'html_kicanvas', 'COMMENT': 'KiCanvas webpage', 'DIR': 'KiCanvas'}}, {'file': 'kibot_out_html_kiri.yaml', 'definitions': {'NAME': 'html_kiri', 'COMMENT': 'KiRI webpage', 'DIR': 'KiRI'}}, {'file': 'kibot_out_md_report.yaml', 'definitions': {'NAME': 'md_readme', 'COMMENT': 'README file in Markdown format', 'DIR': './', 'CATEGORY': '.', 'OUTPUT_NAME': 'README', 'TEMPLATE': 'kibot_resources/templates/readme.txt'}}, {'file': 'kibot_out_navigate_results.yaml', 'definitions': {'NAME': 'html_navigate_results', 'COMMENT': 'Results webpage in HTML format', 'DIR': 'HTML', 'TITLE': 'Nixie Clock Main Board', 'LOGO': 'Logos/dummy_logo.png', 'LOGO_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git'}}] (kibot - config_reader.py:513)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'OUTPUT_DIR': './', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'OUTPUT_DIR': './', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'OUTPUT_DIR': './', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @OUTPUT_DIR@ -> ./ () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DNP_TOP@ -> F.DNP () (kibot - config_reader.py:90)
+DEBUG:- Replacing @LAYER_DNP_BOTTOM@ -> B.DNP () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'OUTPUT_DIR': './', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot Globals
+# https://kibot.readthedocs.io/en/latest/configuration/global.html
+
+kibot:
+ version: 1
+
+global:
+ out_dir: './'
+ dnp_cross_top_layer: 'F.DNP'
+ dnp_cross_bottom_layer: 'B.DNP'
+ disable_kicad_cross_on_fab: true
+ extra_pth_drill: 0 # for annular ring computation.
+ filters:
+ # 'KiCad config without environment.vars section'
+ - number: 9
+ # 'Unable to find KiCad 3D models'
+ - number: 10
+ # 'Malformed value'
+ - number: 20
+ # 'More than one SCH file found in ...'
+ - number: 44
+ # Invalid column name
+ - number: 62
+ # 3D models downloaded or cached
+ - number: 98
+ # 'Avoid adding extra information in the component value, use separated fields'
+ - number: 133
+ # 'This output depends on KiCad version, use blender_export instead'
+ - number: 143
+ # 'Not including component [ in filters because it has a malformed reference'
+ - number: 147
+ # 'No output to handle ]'
+ - number: 168
+ # 'Please only use simple data types for definitions'
+ - number: 172
+ # Can't enable without a key
+ - number: 1008
+
+ (kibot - config_reader.py:676)
+DEBUG:Globals loaded from `kibot_yaml/kibot_globals.yaml`: dict_keys(['out_dir', 'dnp_cross_top_layer', 'dnp_cross_bottom_layer', 'disable_kicad_cross_on_fab', 'extra_pth_drill', 'filters']) (kibot - config_reader.py:473)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'COMMENT': 'Rename fields', 'NAME': 'field_rename', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'field_rename', 'COMMENT': 'Rename fields'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'COMMENT': 'Rename fields', 'NAME': 'field_rename', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Rename fields', 'NAME': 'field_rename', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @COMMENT@ -> Rename fields () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NAME@ -> field_rename () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MPN_FIELD@ -> Manufacturer Part Number () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MAN_FIELD@ -> Manufacturer () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Rename fields', 'NAME': 'field_rename', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot Filter for renaming Manufacturer Part Number field
+
+kibot:
+ version: 1
+
+filters:
+ - name: 'field_rename'
+ comment: 'Rename fields'
+ type: field_rename
+ rename:
+ - field: 'Manufacturer Part Number'
+ name: manf#
+ - field: 'Manufacturer'
+ name: manf
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing filter `field_rename` (field_rename) (kibot - config_reader.py:245)
+DEBUG:Filters loaded from `kibot_yaml/kibot_filt_field_rename.yaml`: dict_keys(['field_rename']) (kibot - config_reader.py:401)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'COMMENT': 'Select only testpoints', 'NAME': 'only_testpoints', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'only_testpoints', 'COMMENT': 'Include only testpoints'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'COMMENT': 'Include only testpoints', 'NAME': 'only_testpoints', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Include only testpoints', 'NAME': 'only_testpoints', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @COMMENT@ -> Include only testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NAME@ -> only_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_TOP@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_BOTTOM@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_REFS@ -> [MB*] () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Include only testpoints', 'NAME': 'only_testpoints', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot Filter for testpoints
+# These filters are used for multiple outputs to highlight testpoints
+# or generate testpoint lists for top and bottom layers
+
+kibot:
+ version: 1
+
+filters:
+ - name: 'only_testpoints'
+ comment: 'Include only testpoints'
+ type: generic
+ exclude_top: false
+ exclude_bottom: false
+ include_only:
+ - column: Reference
+ regex: "TP"
+ exclude_refs: [MB*]
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing filter `only_testpoints` (generic) (kibot - config_reader.py:245)
+DEBUG:Configuring from default: exclude_any -> [] (kibot - optionable.py:362)
+DEBUG:Configuring from default: keys -> ['dnf_list'] (kibot - optionable.py:362)
+DEBUG:Filters loaded from `kibot_yaml/kibot_filt_testpoints.yaml`: dict_keys(['only_testpoints']) (kibot - config_reader.py:401)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'COMMENT': 'Exclude only testpoints', 'NAME': 'exclude_testpoints'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'exclude_testpoints', 'COMMENT': 'Exclude only testpoints'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'COMMENT': 'Exclude only testpoints', 'NAME': 'exclude_testpoints', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Exclude only testpoints', 'NAME': 'exclude_testpoints', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @COMMENT@ -> Exclude only testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NAME@ -> exclude_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Exclude only testpoints', 'NAME': 'exclude_testpoints', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot Filter for excluding testpoints
+
+kibot:
+ version: 1
+
+filters:
+ - name: 'exclude_testpoints'
+ comment: 'Exclude only testpoints'
+ type: generic
+ exclude_any:
+ - column: Reference
+ regex: "TP"
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing filter `exclude_testpoints` (generic) (kibot - config_reader.py:245)
+DEBUG:Configuring from default: include_only -> [] (kibot - optionable.py:362)
+DEBUG:Configuring from default: keys -> ['dnf_list'] (kibot - optionable.py:362)
+DEBUG:Configuring from default: exclude_refs -> [] (kibot - optionable.py:362)
+DEBUG:Filters loaded from `kibot_yaml/kibot_filt_exclude_testpoints.yaml`: dict_keys(['exclude_testpoints']) (kibot - config_reader.py:401)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'COMMENT': 'Select only testpoints', 'NAME': 'only_testpoints', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'only_testpoints_top', 'COMMENT': 'Select only top testpoints', 'EXCLUDE_BOTTOM': True} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'COMMENT': 'Select only top testpoints', 'NAME': 'only_testpoints_top', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': True, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Select only top testpoints', 'NAME': 'only_testpoints_top', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': True, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @COMMENT@ -> Select only top testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NAME@ -> only_testpoints_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_TOP@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_BOTTOM@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_REFS@ -> [MB*] () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Select only top testpoints', 'NAME': 'only_testpoints_top', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': True, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot Filter for testpoints
+# These filters are used for multiple outputs to highlight testpoints
+# or generate testpoint lists for top and bottom layers
+
+kibot:
+ version: 1
+
+filters:
+ - name: 'only_testpoints_top'
+ comment: 'Select only top testpoints'
+ type: generic
+ exclude_top: false
+ exclude_bottom: true
+ include_only:
+ - column: Reference
+ regex: "TP"
+ exclude_refs: [MB*]
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing filter `only_testpoints_top` (generic) (kibot - config_reader.py:245)
+DEBUG:Configuring from default: exclude_any -> [] (kibot - optionable.py:362)
+DEBUG:Configuring from default: keys -> ['dnf_list'] (kibot - optionable.py:362)
+DEBUG:Filters loaded from `kibot_yaml/kibot_filt_testpoints.yaml`: dict_keys(['only_testpoints_top']) (kibot - config_reader.py:401)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'COMMENT': 'Select only testpoints', 'NAME': 'only_testpoints', 'EXCLUDE_TOP': False, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'only_testpoints_bottom', 'COMMENT': 'Select only bottom testpoints', 'EXCLUDE_TOP': True} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'COMMENT': 'Select only bottom testpoints', 'NAME': 'only_testpoints_bottom', 'EXCLUDE_TOP': True, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Select only bottom testpoints', 'NAME': 'only_testpoints_bottom', 'EXCLUDE_TOP': True, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @COMMENT@ -> Select only bottom testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NAME@ -> only_testpoints_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_TOP@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_BOTTOM@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_REFS@ -> [MB*] () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'COMMENT': 'Select only bottom testpoints', 'NAME': 'only_testpoints_bottom', 'EXCLUDE_TOP': True, 'EXCLUDE_BOTTOM': False, 'EXCLUDE_REFS': '[MB*]', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot Filter for testpoints
+# These filters are used for multiple outputs to highlight testpoints
+# or generate testpoint lists for top and bottom layers
+
+kibot:
+ version: 1
+
+filters:
+ - name: 'only_testpoints_bottom'
+ comment: 'Select only bottom testpoints'
+ type: generic
+ exclude_top: true
+ exclude_bottom: false
+ include_only:
+ - column: Reference
+ regex: "TP"
+ exclude_refs: [MB*]
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing filter `only_testpoints_bottom` (generic) (kibot - config_reader.py:245)
+DEBUG:Configuring from default: exclude_any -> [] (kibot - optionable.py:362)
+DEBUG:Configuring from default: keys -> ['dnf_list'] (kibot - optionable.py:362)
+DEBUG:Filters loaded from `kibot_yaml/kibot_filt_testpoints.yaml`: dict_keys(['only_testpoints_bottom']) (kibot - config_reader.py:401)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'PROJECT_NAME': '', 'BOARD_NAME': '', 'COMPANY': '', 'DESIGNER': '', 'REVISION': '', 'RELEASE_DATE': '', 'RELEASE_DATE_NUM': '', 'GIT_URL': '', 'SHEET_NAME_VAR': 'SHEET_NAME_', 'RELEASE_TITLE_VAR': 'RELEASE_TITLE_', 'RELEASE_BODY_VAR': 'RELEASE_BODY_', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'GET_SHEET_CMD': 'python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p', 'GET_TITLE_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version', 'GET_BODY_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'ASSEMBLY_DIR': 'Manufacturing/Assembly'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': 'Manufacturing/Assembly', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'REVISION': '', 'RELEASE_DATE': '', 'RELEASE_DATE_NUM': '', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'SHEET_NAME_VAR': 'SHEET_NAME_', 'RELEASE_TITLE_VAR': 'RELEASE_TITLE_', 'RELEASE_BODY_VAR': 'RELEASE_BODY_', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'GET_SHEET_CMD': 'python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p', 'GET_TITLE_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version', 'GET_BODY_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'ASSEMBLY_DIR': 'Manufacturing/Assembly', 'LOGO': 'Logos/dummy_logo.png', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Replacing @REVISION@ -> + (Unreleased) () (kibot - config_reader.py:90)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'REVISION': '', 'RELEASE_DATE': '', 'RELEASE_DATE_NUM': '', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'SHEET_NAME_VAR': 'SHEET_NAME_', 'RELEASE_TITLE_VAR': 'RELEASE_TITLE_', 'RELEASE_BODY_VAR': 'RELEASE_BODY_', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'GET_SHEET_CMD': 'python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p', 'GET_TITLE_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version', 'GET_BODY_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'ASSEMBLY_DIR': 'Manufacturing/Assembly', 'LOGO': 'Logos/dummy_logo.png', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @PROJECT_NAME@ -> Nixie Tube Clock () (kibot - config_reader.py:90)
+DEBUG:- Replacing @BOARD_NAME@ -> Nixie Clock Main Board () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMPANY@ -> Company Name () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DESIGNER@ -> Aidan Brzezinski () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GIT_URL@ -> https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SHEET_NAME_VAR@ -> SHEET_NAME_ () (kibot - config_reader.py:90)
+DEBUG:- Replacing @RELEASE_TITLE_VAR@ -> RELEASE_TITLE_ () (kibot - config_reader.py:90)
+DEBUG:- Replacing @RELEASE_BODY_VAR@ -> RELEASE_BODY_ () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GET_SHEET_CMD@ -> python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GET_TITLE_CMD@ -> python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GET_BODY_CMD@ -> python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FABRICATION_DIR@ -> Manufacturing/Fabrication () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ASSEMBLY_DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'REVISION': '', 'RELEASE_DATE': '', 'RELEASE_DATE_NUM': '', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'SHEET_NAME_VAR': 'SHEET_NAME_', 'RELEASE_TITLE_VAR': 'RELEASE_TITLE_', 'RELEASE_BODY_VAR': 'RELEASE_BODY_', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'GET_SHEET_CMD': 'python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p', 'GET_TITLE_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version', 'GET_BODY_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'ASSEMBLY_DIR': 'Manufacturing/Assembly', 'LOGO': 'Logos/dummy_logo.png', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @SCRIPTS_DIR@ -> kibot_resources/scripts () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'REVISION': '', 'RELEASE_DATE': '', 'RELEASE_DATE_NUM': '', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'SHEET_NAME_VAR': 'SHEET_NAME_', 'RELEASE_TITLE_VAR': 'RELEASE_TITLE_', 'RELEASE_BODY_VAR': 'RELEASE_BODY_', 'SCRIPTS_DIR': 'kibot_resources/scripts', 'GET_SHEET_CMD': 'python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p', 'GET_TITLE_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --title-only --version', 'GET_BODY_CMD': 'python3 @SCRIPTS_DIR@/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version', 'FABRICATION_DIR': 'Manufacturing/Fabrication', 'ASSEMBLY_DIR': 'Manufacturing/Assembly', 'LOGO': 'Logos/dummy_logo.png', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot preflight for setting Text Variables
+# https://kibot.readthedocs.io/en/latest/configuration/preflights/set_text_variables.html
+
+kibot:
+ version: 1
+
+preflight:
+ update_xml: true
+ set_text_variables:
+
+ # Git related information
+ - variable: 'REVISION'
+ # command: 'git describe --tags --abbrev=0 || echo ""'
+ text: '+ (Unreleased)'
+ - variable: 'RELEASE_DATE'
+ command: 'git log -1 --format="%ad" --date="format:%d-%b-%Y"'
+ - variable: 'RELEASE_DATE_NUM'
+ command: 'git log -1 --format="%ad" --date=short'
+ - variable: 'GIT_HASH_SCH'
+ command: 'git log -1 --format="%h" $KIBOT_SCH_NAME'
+ - variable: 'GIT_HASH_PCB'
+ command: 'git log -1 --format="%h" $KIBOT_PCB_NAME'
+ - variable: 'GIT_URL'
+ text: 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git'
+
+ # Metadata
+ - variable: 'PROJECT_NAME'
+ text: 'Nixie Tube Clock'
+ - variable: 'BOARD_NAME'
+ text: 'Nixie Clock Main Board'
+ - variable: 'COMPANY'
+ text: 'Company Name'
+ - variable: 'DESIGNER'
+ text: 'Aidan Brzezinski'
+ - variable: 'VARIANT'
+ text: '%V'
+
+ # Changelog
+ # - variable: 'RELEASE_TITLE_1.0.0'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version 1.0.0'
+ # - variable: 'RELEASE_BODY_1.0.0'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version 1.0.0'
+
+ # - variable: 'RELEASE_TITLE_1.0.1'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version 1.0.1'
+ # - variable: 'RELEASE_BODY_1.0.1'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version 1.0.1'
+
+ # - variable: 'RELEASE_TITLE_1.0.2'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version 1.0.2'
+ # - variable: 'RELEASE_BODY_1.0.2'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version 1.0.2'
+
+ # - variable: 'RELEASE_TITLE_1.1.0'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version 1.1.0'
+ # - variable: 'RELEASE_BODY_1.1.0'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version 1.1.0'
+
+ # - variable: 'RELEASE_TITLE_1.1.1'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version 1.1.1'
+ # - variable: 'RELEASE_BODY_1.1.1'
+ # command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version 1.1.1'
+
+ - variable: 'RELEASE_TITLE_UNRELEASED'
+ command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version Unreleased'
+ - variable: 'RELEASE_BODY_UNRELEASED'
+ command: 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version Unreleased'
+
+ # Fabrication notes
+ - variable: 'FABRICATION_NOTES'
+ expand_in_command: true
+ command: '[ -f "Manufacturing/Fabrication/%f-fabrication_notes%v.txt" ] && cat "Manufacturing/Fabrication/%f-fabrication_notes%v.txt" || echo ""'
+
+
+ # Fabrication notes
+ - variable: 'ASSEMBLY_NOTES'
+ expand_in_command: true
+ command: '[ -f "Manufacturing/Assembly/%f-assembly_notes%v.txt" ] && cat "Manufacturing/Assembly/%f-assembly_notes%v.txt" || echo ""'
+
+ # Page titles for automatic ToC
+ - variable: 'SHEET_NAME_1'
+ text: 'Cover Page'
+ - variable: 'SHEET_NAME_2'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 2'
+ - variable: 'SHEET_NAME_3'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 3'
+ - variable: 'SHEET_NAME_4'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 4'
+ - variable: 'SHEET_NAME_5'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 5'
+ - variable: 'SHEET_NAME_6'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 6'
+ - variable: 'SHEET_NAME_7'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 7'
+ - variable: 'SHEET_NAME_8'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 8'
+ - variable: 'SHEET_NAME_9'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 9'
+ - variable: 'SHEET_NAME_10'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 10'
+ - variable: 'SHEET_NAME_11'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 11'
+ - variable: 'SHEET_NAME_12'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 12'
+ - variable: 'SHEET_NAME_13'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 13'
+ - variable: 'SHEET_NAME_14'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 14'
+ - variable: 'SHEET_NAME_15'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 15'
+ - variable: 'SHEET_NAME_16'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 16'
+ - variable: 'SHEET_NAME_17'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 17'
+ - variable: 'SHEET_NAME_18'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 18'
+ - variable: 'SHEET_NAME_19'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 19'
+ - variable: 'SHEET_NAME_20'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 20'
+ - variable: 'SHEET_NAME_21'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 21'
+ - variable: 'SHEET_NAME_22'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 22'
+ - variable: 'SHEET_NAME_23'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 23'
+ - variable: 'SHEET_NAME_24'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 24'
+ - variable: 'SHEET_NAME_25'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 25'
+ - variable: 'SHEET_NAME_26'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 26'
+ - variable: 'SHEET_NAME_27'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 27'
+ - variable: 'SHEET_NAME_28'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 28'
+ - variable: 'SHEET_NAME_29'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 29'
+ - variable: 'SHEET_NAME_30'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 30'
+ - variable: 'SHEET_NAME_31'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 31'
+ - variable: 'SHEET_NAME_32'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 32'
+ - variable: 'SHEET_NAME_33'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 33'
+ - variable: 'SHEET_NAME_34'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 34'
+ - variable: 'SHEET_NAME_35'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 35'
+ - variable: 'SHEET_NAME_36'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 36'
+ - variable: 'SHEET_NAME_37'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 37'
+ - variable: 'SHEET_NAME_38'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 38'
+ - variable: 'SHEET_NAME_39'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 39'
+ - variable: 'SHEET_NAME_40'
+ command: 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 40'
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing preflight options: {'update_xml': True, 'set_text_variables': [{'variable': 'REVISION', 'text': '+ (Unreleased)'}, {'variable': 'RELEASE_DATE', 'command': 'git log -1 --format="%ad" --date="format:%d-%b-%Y"'}, {'variable': 'RELEASE_DATE_NUM', 'command': 'git log -1 --format="%ad" --date=short'}, {'variable': 'GIT_HASH_SCH', 'command': 'git log -1 --format="%h" $KIBOT_SCH_NAME'}, {'variable': 'GIT_HASH_PCB', 'command': 'git log -1 --format="%h" $KIBOT_PCB_NAME'}, {'variable': 'GIT_URL', 'text': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git'}, {'variable': 'PROJECT_NAME', 'text': 'Nixie Tube Clock'}, {'variable': 'BOARD_NAME', 'text': 'Nixie Clock Main Board'}, {'variable': 'COMPANY', 'text': 'Company Name'}, {'variable': 'DESIGNER', 'text': 'Aidan Brzezinski'}, {'variable': 'VARIANT', 'text': '%V'}, {'variable': 'RELEASE_TITLE_UNRELEASED', 'command': 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --title-only --version Unreleased'}, {'variable': 'RELEASE_BODY_UNRELEASED', 'command': 'python3 kibot_resources/scripts/get_changelog.py -f CHANGELOG.md --extra-spaces --separators 35 --version Unreleased'}, {'variable': 'FABRICATION_NOTES', 'expand_in_command': True, 'command': '[ -f "Manufacturing/Fabrication/%f-fabrication_notes%v.txt" ] && cat "Manufacturing/Fabrication/%f-fabrication_notes%v.txt" || echo ""'}, {'variable': 'ASSEMBLY_NOTES', 'expand_in_command': True, 'command': '[ -f "Manufacturing/Assembly/%f-assembly_notes%v.txt" ] && cat "Manufacturing/Assembly/%f-assembly_notes%v.txt" || echo ""'}, {'variable': 'SHEET_NAME_1', 'text': 'Cover Page'}, {'variable': 'SHEET_NAME_2', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 2'}, {'variable': 'SHEET_NAME_3', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 3'}, {'variable': 'SHEET_NAME_4', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 4'}, {'variable': 'SHEET_NAME_5', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 5'}, {'variable': 'SHEET_NAME_6', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 6'}, {'variable': 'SHEET_NAME_7', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 7'}, {'variable': 'SHEET_NAME_8', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 8'}, {'variable': 'SHEET_NAME_9', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 9'}, {'variable': 'SHEET_NAME_10', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 10'}, {'variable': 'SHEET_NAME_11', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 11'}, {'variable': 'SHEET_NAME_12', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 12'}, {'variable': 'SHEET_NAME_13', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 13'}, {'variable': 'SHEET_NAME_14', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 14'}, {'variable': 'SHEET_NAME_15', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 15'}, {'variable': 'SHEET_NAME_16', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 16'}, {'variable': 'SHEET_NAME_17', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 17'}, {'variable': 'SHEET_NAME_18', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 18'}, {'variable': 'SHEET_NAME_19', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 19'}, {'variable': 'SHEET_NAME_20', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 20'}, {'variable': 'SHEET_NAME_21', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 21'}, {'variable': 'SHEET_NAME_22', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 22'}, {'variable': 'SHEET_NAME_23', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 23'}, {'variable': 'SHEET_NAME_24', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 24'}, {'variable': 'SHEET_NAME_25', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 25'}, {'variable': 'SHEET_NAME_26', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 26'}, {'variable': 'SHEET_NAME_27', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 27'}, {'variable': 'SHEET_NAME_28', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 28'}, {'variable': 'SHEET_NAME_29', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 29'}, {'variable': 'SHEET_NAME_30', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 30'}, {'variable': 'SHEET_NAME_31', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 31'}, {'variable': 'SHEET_NAME_32', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 32'}, {'variable': 'SHEET_NAME_33', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 33'}, {'variable': 'SHEET_NAME_34', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 34'}, {'variable': 'SHEET_NAME_35', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 35'}, {'variable': 'SHEET_NAME_36', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 36'}, {'variable': 'SHEET_NAME_37', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 37'}, {'variable': 'SHEET_NAME_38', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 38'}, {'variable': 'SHEET_NAME_39', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 39'}, {'variable': 'SHEET_NAME_40', 'command': 'python3 kibot_resources/scripts/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p 40'}]} (kibot - config_reader.py:276)
+DEBUG:Parsing preflight update_xml (kibot - config_reader.py:285)
+DEBUG:Parsing preflight set_text_variables (kibot - config_reader.py:285)
+DEBUG:Preflights loaded from `kibot_yaml/kibot_pre_set_text_variables.yaml`: ['update_xml', 'set_text_variables'] (kibot - config_reader.py:378)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'CATEGORY': 'Schematic', 'DIR': 'Reports'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'DIR': 'Reports'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'CATEGORY': 'Schematic', 'DIR': 'Reports', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'CATEGORY': 'Schematic', 'DIR': 'Reports', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @DIR@ -> Reports () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'CATEGORY': 'Schematic', 'DIR': 'Reports', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot preflight for generating ERC reports
+# https://kibot.readthedocs.io/en/latest/configuration/preflights/erc.html
+
+kibot:
+ version: 1
+
+preflight:
+ erc:
+ category: 'Reports'
+ dir: 'Reports'
+ format: 'HTML, RPT'
+ output: 'report_%f-%i%I%v.%x'
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing preflight options: {'erc': {'category': 'Reports', 'dir': 'Reports', 'format': 'HTML, RPT', 'output': 'report_%f-%i%I%v.%x'}} (kibot - config_reader.py:276)
+DEBUG:Parsing preflight erc (kibot - config_reader.py:285)
+DEBUG:Preflights loaded from `kibot_yaml/kibot_pre_erc_report.yaml`: ['erc'] (kibot - config_reader.py:378)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'CHECK_ZONE_FILLS': True, 'CATEGORY': 'Schematic', 'DIR': 'Reports'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'DIR': 'Reports'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'CHECK_ZONE_FILLS': False, 'CATEGORY': 'Schematic', 'DIR': 'Reports', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'CHECK_ZONE_FILLS': False, 'CATEGORY': 'Schematic', 'DIR': 'Reports', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @CHECK_ZONE_FILLS@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Reports () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'CHECK_ZONE_FILLS': False, 'CATEGORY': 'Schematic', 'DIR': 'Reports', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot preflight for generating DRC reports
+# https://kibot.readthedocs.io/en/latest/configuration/preflights/drc.html
+
+kibot:
+ version: 1
+
+preflight:
+ check_zone_fills: false
+ drc:
+ category: 'Reports'
+ dir: 'Reports'
+ dont_stop: true
+ format: 'HTML, RPT'
+ output: 'report_%f-%i%I%v.%x'
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing preflight options: {'check_zone_fills': False, 'drc': {'category': 'Reports', 'dir': 'Reports', 'dont_stop': True, 'format': 'HTML, RPT', 'output': 'report_%f-%i%I%v.%x'}} (kibot - config_reader.py:276)
+DEBUG:Parsing preflight check_zone_fills (kibot - config_reader.py:285)
+DEBUG:Parsing preflight drc (kibot - config_reader.py:285)
+DEBUG:Preflights loaded from `kibot_yaml/kibot_pre_drc_report.yaml`: ['check_zone_fills', 'drc'] (kibot - config_reader.py:378)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'GERBER_OUTPUT': 'gbr_gerbers', 'NOTE': 'external layer thicknesses are specified after plating'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NOTE': 'external layer thicknesses are specified after plating'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'GERBER_OUTPUT': 'gbr_gerbers', 'NOTE': 'external layer thicknesses are specified after plating', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'GERBER_OUTPUT': 'gbr_gerbers', 'NOTE': 'external layer thicknesses are specified after plating', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @GERBER_OUTPUT@ -> gbr_gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @NOTE@ -> external layer thicknesses are specified after plating () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'GERBER_OUTPUT': 'gbr_gerbers', 'NOTE': 'external layer thicknesses are specified after plating', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot preflight for Draw Fancy Stackup feature
+# https://kibot.readthedocs.io/en/latest/configuration/preflights/draw_fancy_stackup.html
+
+kibot:
+ version: 1
+
+preflight:
+ update_xml: true
+ draw_fancy_stackup:
+ gerber: 'gbr_gerbers'
+ gerber_extension_only: True
+ draw_stackup: True
+ draw_vias: True
+ columns:
+ - 'material'
+ - 'layer'
+ - 'thickness'
+ - 'dielectric'
+ - 'layer_type'
+ - 'gerber'
+ note: 'external layer thicknesses are specified after plating'
+
+ (kibot - config_reader.py:676)
+DEBUG:Parsing preflight options: {'update_xml': True, 'draw_fancy_stackup': {'gerber': 'gbr_gerbers', 'gerber_extension_only': True, 'draw_stackup': True, 'draw_vias': True, 'columns': ['material', 'layer', 'thickness', 'dielectric', 'layer_type', 'gerber'], 'note': 'external layer thicknesses are specified after plating'}} (kibot - config_reader.py:276)
+DEBUG:Parsing preflight update_xml (kibot - config_reader.py:285)
+DEBUG:Parsing preflight draw_fancy_stackup (kibot - config_reader.py:285)
+DEBUG:Preflights loaded from `kibot_yaml/kibot_pre_draw_stackup.yaml`: ['update_xml', 'draw_fancy_stackup'] (kibot - config_reader.py:378)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'netlist', 'COMMENT': 'Schematic netlist in KiCad format'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'netlist', 'COMMENT': 'Schematic netlist in KiCad format'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'netlist', 'COMMENT': 'Schematic netlist in KiCad format', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'netlist', 'COMMENT': 'Schematic netlist in KiCad format', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> netlist () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Schematic netlist in KiCad format () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'netlist', 'COMMENT': 'Schematic netlist in KiCad format', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating netlist in KiCad format
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/netlist.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: netlist
+ comment: 'Schematic netlist in KiCad format'
+ type: netlist
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `netlist` (netlist) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_netlist.yaml`: ['netlist'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'gbr_gerbers', 'COMMENT': 'Gerbers in GBR format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'PLOT_REFS': True} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'gbr_gerbers', 'COMMENT': 'Gerbers in GBR format', 'DIR': 'Manufacturing/Fabrication/Gerbers'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'gbr_gerbers', 'COMMENT': 'Gerbers in GBR format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'PLOT_REFS': True, 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'gbr_gerbers', 'COMMENT': 'Gerbers in GBR format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'PLOT_REFS': True, 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> gbr_gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Gerbers in GBR format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication/Gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PLOT_REFS@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'gbr_gerbers', 'COMMENT': 'Gerbers in GBR format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'PLOT_REFS': True, 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Gerber files
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/gerber.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: gbr_gerbers
+ comment: 'Gerbers in GBR format'
+ type: gerber
+ category: 'Manufacturing/Fabrication/Gerbers'
+ dir: 'Manufacturing/Fabrication/Gerbers'
+ layers: ['copper', 'Edge.Cuts', 'F.Silkscreen', 'F.Mask', 'F.Paste', 'B.Silkscreen', 'B.Mask', 'B.Paste']
+ options:
+ subtract_mask_from_silk: true
+ plot_footprint_refs: true
+ plot_footprint_values: false
+ create_gerber_job_file: false
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `gbr_gerbers` (gerber) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_gerber.yaml`: ['gbr_gerbers'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'zip_odb', 'COMMENT': 'ODB++ in ZIP format', 'DIR': 'Manufacturing/Fabrication'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'zip_odb', 'COMMENT': 'ODB++ in ZIP format', 'DIR': 'Manufacturing/Fabrication'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'zip_odb', 'COMMENT': 'ODB++ in ZIP format', 'DIR': 'Manufacturing/Fabrication', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'zip_odb', 'COMMENT': 'ODB++ in ZIP format', 'DIR': 'Manufacturing/Fabrication', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> zip_odb () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> ODB++ in ZIP format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'zip_odb', 'COMMENT': 'ODB++ in ZIP format', 'DIR': 'Manufacturing/Fabrication', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating ODB++ files
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/odb.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: zip_odb
+ comment: 'ODB++ in ZIP format'
+ type: odb
+ category: 'Manufacturing/Fabrication'
+ dir: 'Manufacturing/Fabrication'
+ options:
+ dnf_filter: _kibom_dnf_Config
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `zip_odb` (odb) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_odb.yaml`: ['zip_odb'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': True, 'PTH_NPTH': False, 'MAP_FORMAT': 'None'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': True, 'PTH_NPTH': False, 'MAP_FORMAT': 'None', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': True, 'PTH_NPTH': False, 'MAP_FORMAT': 'None', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> drl_excellon () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Drill in Excellon format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication/Gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GENERATE_DRILL@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PTH_NPTH@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MAP_FORMAT@ -> None () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': True, 'PTH_NPTH': False, 'MAP_FORMAT': 'None', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating drill Gerber files
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: drl_excellon
+ comment: 'Drill in Excellon format'
+ type: excellon
+ category: 'Manufacturing/Fabrication/Gerbers'
+ dir: 'Manufacturing/Fabrication/Gerbers'
+ options:
+ generate_drill_files: true
+ pth_and_npth_single_file: false
+ map: 'None'
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `drl_excellon` (excellon) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_excellon_drill.yaml`: ['drl_excellon'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'drl_excellon', 'COMMENT': 'Drill in Excellon format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': True, 'PTH_NPTH': False, 'MAP_FORMAT': 'None'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'pdf_drill_map', 'COMMENT': 'Drill Map in PDF format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': False, 'PTH_NPTH': False, 'MAP_FORMAT': 'pdf'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'pdf_drill_map', 'COMMENT': 'Drill Map in PDF format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': False, 'PTH_NPTH': False, 'MAP_FORMAT': 'pdf', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'pdf_drill_map', 'COMMENT': 'Drill Map in PDF format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': False, 'PTH_NPTH': False, 'MAP_FORMAT': 'pdf', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> pdf_drill_map () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Drill Map in PDF format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication/Gerbers () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GENERATE_DRILL@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PTH_NPTH@ -> false () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MAP_FORMAT@ -> pdf () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'pdf_drill_map', 'COMMENT': 'Drill Map in PDF format', 'DIR': 'Manufacturing/Fabrication/Gerbers', 'GENERATE_DRILL': False, 'PTH_NPTH': False, 'MAP_FORMAT': 'pdf', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating drill Gerber files
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: pdf_drill_map
+ comment: 'Drill Map in PDF format'
+ type: excellon
+ category: 'Manufacturing/Fabrication/Gerbers'
+ dir: 'Manufacturing/Fabrication/Gerbers'
+ options:
+ generate_drill_files: false
+ pth_and_npth_single_file: false
+ map: 'pdf'
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `pdf_drill_map` (excellon) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_excellon_drill.yaml`: ['pdf_drill_map'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_drill_table', 'COMMENT': 'Drill Table in CSV format', 'DIR': 'Manufacturing/Fabrication/Tables', 'PTH_NPTH': 'yes', 'GROUP_ROUND_SLOTS': True} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_drill_table', 'COMMENT': 'Drill Table in CSV format', 'DIR': 'Manufacturing/Fabrication/Drill Tables', 'PTH_NPTH': 'no'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_drill_table', 'COMMENT': 'Drill Table in CSV format', 'DIR': 'Manufacturing/Fabrication/Drill Tables', 'PTH_NPTH': 'no', 'GROUP_ROUND_SLOTS': True, 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_drill_table', 'COMMENT': 'Drill Table in CSV format', 'DIR': 'Manufacturing/Fabrication/Drill Tables', 'PTH_NPTH': 'no', 'GROUP_ROUND_SLOTS': True, 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_drill_table () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Drill Table in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication/Drill Tables () (kibot - config_reader.py:90)
+DEBUG:- Replacing @PTH_NPTH@ -> no () (kibot - config_reader.py:90)
+DEBUG:- Replacing @GROUP_ROUND_SLOTS@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_drill_table', 'COMMENT': 'Drill Table in CSV format', 'DIR': 'Manufacturing/Fabrication/Drill Tables', 'PTH_NPTH': 'no', 'GROUP_ROUND_SLOTS': True, 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Drill Tables
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: csv_drill_table
+ comment: 'Drill Table in CSV format'
+ type: excellon
+ category: 'Manufacturing/Fabrication/Drill Tables'
+ dir: 'Manufacturing/Fabrication/Drill Tables'
+ options:
+ generate_drill_files: false
+ table:
+ unify_pth_and_npth: 'no'
+ group_slots_and_round_holes: true
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_drill_table` (excellon) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_drill_table.yaml`: ['csv_drill_table'] (kibot - config_reader.py:354)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_position', 'COMMENT': 'Position file in CSV format', 'DIR': 'Manufacturing/Assembly'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_position () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Position file in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_position', 'COMMENT': 'Position file in CSV format', 'DIR': 'Manufacturing/Assembly'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Position file in CSV format
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/position.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: csv_position
+ comment: 'Position file in CSV format'
+ type: position
+ category: 'Manufacturing/Assembly'
+ dir: 'Manufacturing/Assembly'
+ options:
+ format: 'CSV'
+ only_smd: false
+ include_virtual: false
+ output: '%f-CPL%I%v.%x'
+ separate_files_for_front_and_back: false
+
+definitions:
+ NAME: csv_position
+ COMMENT: Position file in CSV format
+ DIR: Manufacturing/Assembly (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_position` (position) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_pos.yaml`: ['csv_position'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '', 'EXCLUDE_FILTER': 'only_testpoints'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'EXCLUDE_FILTER': 'only_testpoints'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '', 'EXCLUDE_FILTER': 'only_testpoints', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '', 'EXCLUDE_FILTER': 'only_testpoints', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Testpoint report in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Testing/Testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SUFFIX@ -> () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_FILTER@ -> only_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '', 'EXCLUDE_FILTER': 'only_testpoints', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating CSV Tespoints
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: csv_testpoints
+ comment: 'Testpoint report in CSV format'
+ type: bom
+ category: 'Testing/Testpoints'
+ dir: 'Testing/Testpoints'
+ options:
+ output: '%f-testpoints%I%v.%x'
+ csv:
+ hide_pcb_info: True
+ hide_stats_info: True
+ pre_transform: ['_kicost_rename']
+ exclude_filter: 'only_testpoints'
+ dnf_filter: '_null'
+ exclude_marked_in_sch: false
+ group_fields: []
+ sort_style: ref
+ use_aux_axis_as_origin: true
+ ignore_dnf: false
+ format: CSV
+ footprint_type_values: 'SMT,THRU,'
+ columns:
+ - field: References
+ name: Testpoint Ref.
+ - field: Net Name
+ name: Net
+ - field: Net Class
+ - field: Footprint X
+ name: X
+ - field: Footprint Y
+ name: Y
+ - field: Footprint Side
+ name: Side
+ - field: Footprint Type
+ name: Pad Type
+ - field: Value
+ - field: Footprint
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_testpoints` (bom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_testpoints.yaml`: ['csv_testpoints'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '', 'EXCLUDE_FILTER': 'only_testpoints'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_testpoints_top', 'COMMENT': 'Top testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-top', 'EXCLUDE_FILTER': 'only_testpoints_top'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_testpoints_top', 'COMMENT': 'Top testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-top', 'EXCLUDE_FILTER': 'only_testpoints_top', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_testpoints_top', 'COMMENT': 'Top testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-top', 'EXCLUDE_FILTER': 'only_testpoints_top', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_testpoints_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Top testpoint report in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Testing/Testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SUFFIX@ -> -top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_FILTER@ -> only_testpoints_top () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_testpoints_top', 'COMMENT': 'Top testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-top', 'EXCLUDE_FILTER': 'only_testpoints_top', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating CSV Tespoints
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: csv_testpoints_top
+ comment: 'Top testpoint report in CSV format'
+ type: bom
+ category: 'Testing/Testpoints'
+ dir: 'Testing/Testpoints'
+ options:
+ output: '%f-testpoints-top%I%v.%x'
+ csv:
+ hide_pcb_info: True
+ hide_stats_info: True
+ pre_transform: ['_kicost_rename']
+ exclude_filter: 'only_testpoints_top'
+ dnf_filter: '_null'
+ exclude_marked_in_sch: false
+ group_fields: []
+ sort_style: ref
+ use_aux_axis_as_origin: true
+ ignore_dnf: false
+ format: CSV
+ footprint_type_values: 'SMT,THRU,'
+ right_digits: 2
+ columns:
+ - field: References
+ name: Ref.
+ - field: Net Label
+ name: Net
+ - field: Footprint X
+ name: X [mm]
+ - field: Footprint Y
+ name: Y [mm]
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_testpoints_top` (bom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_testpoints_simple.yaml`: ['csv_testpoints_top'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_testpoints', 'COMMENT': 'Testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '', 'EXCLUDE_FILTER': 'only_testpoints'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_testpoints_bottom', 'COMMENT': 'Bottom testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-bottom', 'EXCLUDE_FILTER': 'only_testpoints_bottom'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_testpoints_bottom', 'COMMENT': 'Bottom testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-bottom', 'EXCLUDE_FILTER': 'only_testpoints_bottom', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_testpoints_bottom', 'COMMENT': 'Bottom testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-bottom', 'EXCLUDE_FILTER': 'only_testpoints_bottom', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_testpoints_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Bottom testpoint report in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Testing/Testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SUFFIX@ -> -bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_FILTER@ -> only_testpoints_bottom () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_testpoints_bottom', 'COMMENT': 'Bottom testpoint report in CSV format', 'DIR': 'Testing/Testpoints', 'SUFFIX': '-bottom', 'EXCLUDE_FILTER': 'only_testpoints_bottom', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating CSV Tespoints
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: csv_testpoints_bottom
+ comment: 'Bottom testpoint report in CSV format'
+ type: bom
+ category: 'Testing/Testpoints'
+ dir: 'Testing/Testpoints'
+ options:
+ output: '%f-testpoints-bottom%I%v.%x'
+ csv:
+ hide_pcb_info: True
+ hide_stats_info: True
+ pre_transform: ['_kicost_rename']
+ exclude_filter: 'only_testpoints_bottom'
+ dnf_filter: '_null'
+ exclude_marked_in_sch: false
+ group_fields: []
+ sort_style: ref
+ use_aux_axis_as_origin: true
+ ignore_dnf: false
+ format: CSV
+ footprint_type_values: 'SMT,THRU,'
+ right_digits: 2
+ columns:
+ - field: References
+ name: Ref.
+ - field: Net Label
+ name: Net
+ - field: Footprint X
+ name: X [mm]
+ - field: Footprint Y
+ name: Y [mm]
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_testpoints_bottom` (bom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_testpoints_simple.yaml`: ['csv_testpoints_bottom'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_bom', 'COMMENT': 'Bill of Materials in CSV format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_bom', 'COMMENT': 'Bill of Materials in CSV format', 'DIR': 'Manufacturing/Assembly'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_bom', 'COMMENT': 'Bill of Materials in CSV format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_bom', 'COMMENT': 'Bill of Materials in CSV format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_bom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Bill of Materials in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MPN_FIELD@ -> Manufacturer Part Number () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MAN_FIELD@ -> Manufacturer () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_bom', 'COMMENT': 'Bill of Materials in CSV format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Bill of Materials in CSV format
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: csv_bom
+ comment: 'Bill of Materials in CSV format'
+ type: bom
+ category: 'Manufacturing/Assembly'
+ dir: 'Manufacturing/Assembly'
+ options:
+ format: CSV
+ csv:
+ hide_pcb_info: true
+ hide_stats_info: true
+
+ group_fields: ['Manufacturer Part Number', 'Value']
+
+ columns:
+ - "Row"
+ - "Quantity Per PCB"
+ - "References"
+ - "Value"
+ - "Datasheet"
+ - "Footprint"
+ - "Description"
+ - "Manufacturer"
+ - "Manufacturer Part Number"
+ - "Supplier Part Number"
+ # - "arrow#"
+ # - "digikey#"
+ # - "farnell#"
+ # - "mouser#"
+ # - "newark#"
+ # - "rs#"
+ # - "tme#"
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_bom` (bom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_bom.yaml`: ['csv_bom'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'html_bom', 'COMMENT': 'BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'html_bom', 'COMMENT': 'Bill of Materials in HTML format', 'DIR': 'Manufacturing/Assembly'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'html_bom', 'COMMENT': 'Bill of Materials in HTML format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'html_bom', 'COMMENT': 'Bill of Materials in HTML format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> html_bom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Bill of Materials in HTML format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MPN_FIELD@ -> Manufacturer Part Number () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MAN_FIELD@ -> Manufacturer () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'html_bom', 'COMMENT': 'Bill of Materials in HTML format', 'DIR': 'Manufacturing/Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Interactive HTML BoM
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/ibom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: html_bom
+ comment: 'Bill of Materials in HTML format'
+ type: bom
+ category: 'Manufacturing/Assembly'
+ dir: 'Manufacturing/Assembly'
+ options:
+ format: HTML
+ html:
+ title: 'Bill of Materials'
+ datasheet_as_link: "Datasheet"
+ lcsc_link: true
+ logo: false
+ style: modern-blue
+
+ group_fields: ['Manufacturer Part Number', 'Value']
+
+ columns:
+ - "Row"
+ - "Quantity Per PCB"
+ - "References"
+ - "Value"
+ - "Datasheet"
+ - "Footprint"
+ - "Description"
+ - "Manufacturer"
+ - "Manufacturer Part Number"
+ - "Supplier Part Number"
+ # - "arrow#"
+ # - "digikey#"
+ # - "farnell#"
+ # - "mouser#"
+ # - "newark#"
+ # - "rs#"
+ # - "tme#"
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `html_bom` (bom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_html_bom.yaml`: ['html_bom'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'xlsx_costs_bom', 'COMMENT': 'Costs Bill of Materials in XLSX format', 'DIR': 'Manufacturing/Assembly', 'KICOST_CONFIG': '', 'FILT_PRE_TRANSFORM': 'field_rename'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'xlsx_bom', 'COMMENT': 'Bill of Materials in XLSX format', 'DIR': 'Manufacturing/Assembly', 'FILT_PRE_TRANSFORM': 'field_rename'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'xlsx_bom', 'COMMENT': 'Bill of Materials in XLSX format', 'DIR': 'Manufacturing/Assembly', 'KICOST_CONFIG': '', 'FILT_PRE_TRANSFORM': 'field_rename', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'xlsx_bom', 'COMMENT': 'Bill of Materials in XLSX format', 'DIR': 'Manufacturing/Assembly', 'KICOST_CONFIG': '', 'FILT_PRE_TRANSFORM': 'field_rename', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> xlsx_bom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Bill of Materials in XLSX format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @KICOST_CONFIG@ -> () (kibot - config_reader.py:90)
+DEBUG:- Replacing @FILT_PRE_TRANSFORM@ -> field_rename () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'xlsx_bom', 'COMMENT': 'Bill of Materials in XLSX format', 'DIR': 'Manufacturing/Assembly', 'KICOST_CONFIG': '', 'FILT_PRE_TRANSFORM': 'field_rename', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Bill of Materials in XLSX format
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: xlsx_bom
+ comment: 'Bill of Materials in XLSX format'
+ type: bom
+ category: 'Manufacturing/Assembly'
+ dir: 'Manufacturing/Assembly'
+ options:
+ format: XLSX
+ pre_transform:
+ - _value_split
+ - field_rename
+ count_smd_tht: true
+ distributors:
+ - Mouser
+ - Digi-Key
+ - TME
+ # - Arrow
+ # - Farnell
+ xlsx:
+ title: 'Bill of Materials'
+ datasheet_as_link: 'Datasheet'
+ logo: false
+ style: modern-blue
+ kicost: true
+ kicost_config: ''
+ specs: true
+
+ columns:
+ - "Row"
+ - "Quantity Per PCB"
+ - "References"
+ - "Value"
+ - "Datasheet"
+ - "Footprint"
+ - "Description"
+ - "manf"
+ - "manf#"
+ - "Supplier Part Number"
+ # - "arrow#"
+ # - "digikey#"
+ # - "farnell#"
+ # - "mouser#"
+ # - "newark#"
+ # - "rs#"
+ # - "tme#"
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `xlsx_bom` (bom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_xlsx_bom.yaml`: ['xlsx_bom'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'html_bom_interactive', 'COMMENT': 'Interactive BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'EXCLUDE_FILTER': 'exclude_testpoints', 'TITLE': '', 'MPN_FIELD': 'Manufacturer Part Number'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'html_bom_interactive', 'COMMENT': 'Interactive BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'EXCLUDE_FILTER': 'exclude_testpoints', 'TITLE': 'Nixie Clock Main Board Assembly'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'html_bom_interactive', 'COMMENT': 'Interactive BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'EXCLUDE_FILTER': 'exclude_testpoints', 'TITLE': 'Nixie Clock Main Board Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'html_bom_interactive', 'COMMENT': 'Interactive BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'EXCLUDE_FILTER': 'exclude_testpoints', 'TITLE': 'Nixie Clock Main Board Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> html_bom_interactive () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Interactive BOM in HTML format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @EXCLUDE_FILTER@ -> exclude_testpoints () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TITLE@ -> Nixie Clock Main Board Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @MPN_FIELD@ -> Manufacturer Part Number () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'html_bom_interactive', 'COMMENT': 'Interactive BOM in HTML format', 'DIR': 'Manufacturing/Assembly', 'EXCLUDE_FILTER': 'exclude_testpoints', 'TITLE': 'Nixie Clock Main Board Assembly', 'MPN_FIELD': 'Manufacturer Part Number', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for generating Interactive HTML BoM
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/ibom.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: html_bom_interactive
+ comment: 'Interactive BOM in HTML format'
+ type: ibom
+ dir: 'Manufacturing/Assembly'
+ category: 'Manufacturing/Assembly'
+ options:
+ # extra_data_file: '%F.net'
+ dark_mode: true
+ show_fields: 'Value,Footprint,Manufacturer Part Number'
+ group_fields: 'Value,Manufacturer Part Number'
+ show_fabrication: true
+ highlight_pin1: "selected"
+ exclude_filter: 'exclude_testpoints'
+ hide_excluded: true
+ forced_name: 'Nixie Clock Main Board Assembly'
+ mark_when_checked: 'Placed'
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `html_bom_interactive` (ibom) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_html_ibom.yaml`: ['html_bom_interactive'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_report', 'COMMENT': 'Report in CSV format', 'DIR': 'Manufacturing', 'OUTPUT_ID': '', 'TEMPLATE': 'total_components'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_comp_count', 'COMMENT': 'Component report (count) in CSV format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'components_count', 'TEMPLATE': 'total_components'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_comp_count', 'COMMENT': 'Component report (count) in CSV format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'components_count', 'TEMPLATE': 'total_components', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_comp_count', 'COMMENT': 'Component report (count) in CSV format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'components_count', 'TEMPLATE': 'total_components', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_comp_count () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Component report (count) in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @OUTPUT_ID@ -> components_count () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TEMPLATE@ -> total_components () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_comp_count', 'COMMENT': 'Component report (count) in CSV format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'components_count', 'TEMPLATE': 'total_components', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for CSV Report
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
+
+kibot:
+ version: 1
+
+outputs:
+ - name: csv_comp_count
+ comment: 'Component report (count) in CSV format'
+ type: report
+ category: 'Manufacturing/Assembly'
+ dir: 'Manufacturing/Assembly'
+ output_id: components_count
+ options:
+ output: '%f-%I%v.csv'
+ template: total_components
+ exclude_filter: '_mechanical'
+ csv_remove_leading_spaces: true
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_comp_count` (report) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_report.yaml`: ['csv_comp_count'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'csv_report', 'COMMENT': 'Report in CSV format', 'DIR': 'Manufacturing', 'OUTPUT_ID': '', 'TEMPLATE': 'total_components'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'csv_impedance_table', 'COMMENT': 'Impedance table in CSV format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'impedance_table', 'TEMPLATE': 'kibot_resources/templates/impedance_table.txt'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'csv_impedance_table', 'COMMENT': 'Impedance table in CSV format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'impedance_table', 'TEMPLATE': 'kibot_resources/templates/impedance_table.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_impedance_table', 'COMMENT': 'Impedance table in CSV format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'impedance_table', 'TEMPLATE': 'kibot_resources/templates/impedance_table.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> csv_impedance_table () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Impedance table in CSV format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication () (kibot - config_reader.py:90)
+DEBUG:- Replacing @OUTPUT_ID@ -> impedance_table () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TEMPLATE@ -> kibot_resources/templates/impedance_table.txt () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'csv_impedance_table', 'COMMENT': 'Impedance table in CSV format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'impedance_table', 'TEMPLATE': 'kibot_resources/templates/impedance_table.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for CSV Report
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
+
+kibot:
+ version: 1
+
+outputs:
+ - name: csv_impedance_table
+ comment: 'Impedance table in CSV format'
+ type: report
+ category: 'Manufacturing/Fabrication'
+ dir: 'Manufacturing/Fabrication'
+ output_id: impedance_table
+ options:
+ output: '%f-%I%v.csv'
+ template: kibot_resources/templates/impedance_table.txt
+ exclude_filter: '_mechanical'
+ csv_remove_leading_spaces: true
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `csv_impedance_table` (report) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_csv_report.yaml`: ['csv_impedance_table'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'txt_fabrication_notes', 'COMMENT': 'Report', 'DIR': 'Manufacturing', 'OUTPUT_ID': '_notes', 'TEMPLATE': 'kibot_ressources/template/fabrication_notes.txt'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'txt_fabrication_notes', 'COMMENT': 'Fabrication notes in TXT format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'fabrication_notes', 'TEMPLATE': 'kibot_resources/templates/fabrication_notes.txt'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'txt_fabrication_notes', 'COMMENT': 'Fabrication notes in TXT format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'fabrication_notes', 'TEMPLATE': 'kibot_resources/templates/fabrication_notes.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'txt_fabrication_notes', 'COMMENT': 'Fabrication notes in TXT format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'fabrication_notes', 'TEMPLATE': 'kibot_resources/templates/fabrication_notes.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> txt_fabrication_notes () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Fabrication notes in TXT format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Fabrication () (kibot - config_reader.py:90)
+DEBUG:- Replacing @OUTPUT_ID@ -> fabrication_notes () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TEMPLATE@ -> kibot_resources/templates/fabrication_notes.txt () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'txt_fabrication_notes', 'COMMENT': 'Fabrication notes in TXT format', 'DIR': 'Manufacturing/Fabrication', 'OUTPUT_ID': 'fabrication_notes', 'TEMPLATE': 'kibot_resources/templates/fabrication_notes.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for TXT Report (e.g. Fabrication/Assembly notes)
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
+
+kibot:
+ version: 1
+
+outputs:
+ - name: txt_fabrication_notes
+ comment: 'Fabrication notes in TXT format'
+ type: report
+ category: 'Manufacturing/Fabrication'
+ dir: 'Manufacturing/Fabrication'
+ output_id: fabrication_notes
+ options:
+ output: '%f-%I%v.txt'
+ template: kibot_resources/templates/fabrication_notes.txt
+ exclude_filter: '_mechanical'
+ mm_digits: 3
+ display_trailing_zeros: True
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `txt_fabrication_notes` (report) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_txt_report.yaml`: ['txt_fabrication_notes'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'txt_fabrication_notes', 'COMMENT': 'Report', 'DIR': 'Manufacturing', 'OUTPUT_ID': '_notes', 'TEMPLATE': 'kibot_ressources/template/fabrication_notes.txt'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'txt_assembly_notes', 'COMMENT': 'Assembly notes in TXT format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'assembly_notes', 'TEMPLATE': 'kibot_resources/templates/assembly_notes.txt'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'txt_assembly_notes', 'COMMENT': 'Assembly notes in TXT format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'assembly_notes', 'TEMPLATE': 'kibot_resources/templates/assembly_notes.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'txt_assembly_notes', 'COMMENT': 'Assembly notes in TXT format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'assembly_notes', 'TEMPLATE': 'kibot_resources/templates/assembly_notes.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> txt_assembly_notes () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Assembly notes in TXT format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Manufacturing/Assembly () (kibot - config_reader.py:90)
+DEBUG:- Replacing @OUTPUT_ID@ -> assembly_notes () (kibot - config_reader.py:90)
+DEBUG:- Replacing @TEMPLATE@ -> kibot_resources/templates/assembly_notes.txt () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'txt_assembly_notes', 'COMMENT': 'Assembly notes in TXT format', 'DIR': 'Manufacturing/Assembly', 'OUTPUT_ID': 'assembly_notes', 'TEMPLATE': 'kibot_resources/templates/assembly_notes.txt', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for TXT Report (e.g. Fabrication/Assembly notes)
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
+
+kibot:
+ version: 1
+
+outputs:
+ - name: txt_assembly_notes
+ comment: 'Assembly notes in TXT format'
+ type: report
+ category: 'Manufacturing/Assembly'
+ dir: 'Manufacturing/Assembly'
+ output_id: assembly_notes
+ options:
+ output: '%f-%I%v.txt'
+ template: kibot_resources/templates/assembly_notes.txt
+ exclude_filter: '_mechanical'
+ mm_digits: 3
+ display_trailing_zeros: True
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `txt_assembly_notes` (report) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_txt_report.yaml`: ['txt_assembly_notes'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'png_3d_viewer', 'COMMENT': '3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': '', 'VIEW': 'top', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'png_3d_viewer_top', 'COMMENT': 'Top 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'top', 'VIEW': 'top'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'png_3d_viewer_top', 'COMMENT': 'Top 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'top', 'VIEW': 'top', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'png_3d_viewer_top', 'COMMENT': 'Top 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'top', 'VIEW': 'top', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> png_3d_viewer_top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Top 3D viewer PCB render in PNG format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Images () (kibot - config_reader.py:90)
+DEBUG:- Replacing @SUFFIX@ -> top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @VIEW@ -> top () (kibot - config_reader.py:90)
+DEBUG:- Replacing @RAYTRACING@ -> true () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ROTATE_X@ -> 0 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ROTATE_Y@ -> 0 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ROTATE_Z@ -> 0 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @ZOOM@ -> 0 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @HEIGHT@ -> 2000 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @WIDTH@ -> 2000 () (kibot - config_reader.py:90)
+DEBUG:- Replacing @KEY_COLOR@ -> #00FF00 () (kibot - config_reader.py:90)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'png_3d_viewer_top', 'COMMENT': 'Top 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'top', 'VIEW': 'top', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:YAML after expanding definitions:
+# KiBot output for 3D Viewer renders in PNG format
+# https://kibot.readthedocs.io/en/latest/configuration/outputs/render_3d.html
+
+kibot:
+ version: 1
+
+outputs:
+- name: png_3d_viewer_top
+ comment: 'Top 3D viewer PCB render in PNG format'
+ type: render_3d
+ category: 'Images'
+ dir: 'Images'
+ options:
+ output: '%f-top%I%v.%x'
+ auto_crop: true
+ enable_crop_workaround: true
+ rotate_x: 0
+ rotate_y: 0
+ rotate_z: 0
+ zoom: 0
+ height: 2000
+ width: 2000
+ view: 'top'
+ ray_tracing: true
+ force_stackup_colors: true
+ orthographic: true
+ transparent_background: true
+ transparent_background_color: '#00FF00'
+ transparent_background_fuzz: 40
+
+ (kibot - config_reader.py:676)
+DEBUG:Pre-parsing output options for `png_3d_viewer_top` (render_3d) (kibot - config_reader.py:162)
+DEBUG:Outputs loaded from `kibot_yaml/kibot_out_png_3d_viewer.yaml`: ['png_3d_viewer_top'] (kibot - config_reader.py:354)
+DEBUG:Found local definitions (kibot - config_reader.py:641)
+DEBUG:- Local definitions: {'NAME': 'png_3d_viewer', 'COMMENT': '3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': '', 'VIEW': 'top', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00'} (kibot - config_reader.py:651)
+DEBUG:- Current definitions: {'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'KEY_COLOR': '#00FF00', 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results', 'NAME': 'png_3d_viewer_bottom', 'COMMENT': 'Bottom 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'bottom', 'VIEW': 'bottom'} (kibot - config_reader.py:652)
+DEBUG:- Updated definitions: {'NAME': 'png_3d_viewer_bottom', 'COMMENT': 'Bottom 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'bottom', 'VIEW': 'bottom', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:655)
+DEBUG:Applying preprocessor definitions (kibot - config_reader.py:660)
+DEBUG:- Applying CLI definitions: {'REVISION': '+ (Unreleased)'} (kibot - config_reader.py:667)
+DEBUG:- Applying collected definitions: {'NAME': 'png_3d_viewer_bottom', 'COMMENT': 'Bottom 3D viewer PCB render in PNG format', 'DIR': 'Images', 'SUFFIX': 'bottom', 'VIEW': 'bottom', 'RAYTRACING': True, 'ROTATE_X': 0, 'ROTATE_Y': 0, 'ROTATE_Z': 0, 'ZOOM': 0, 'HEIGHT': 2000, 'WIDTH': 2000, 'KEY_COLOR': '#00FF00', 'PROJECT_NAME': 'Nixie Tube Clock', 'BOARD_NAME': 'Nixie Clock Main Board', 'COMPANY': 'Company Name', 'DESIGNER': 'Aidan Brzezinski', 'LOGO': 'Logos/dummy_logo.png', 'GIT_URL': 'https://git.lokislair.com/aidanbrzezinski/Nixie_Tube_Clock.git', 'CHECK_ZONE_FILLS': False, 'STACKUP_TABLE_NOTE': 'external layer thicknesses are specified after plating', 'MPN_FIELD': 'Manufacturer Part Number', 'MAN_FIELD': 'Manufacturer', 'GROUP_ROUND_SLOTS': True, 'GROUP_PTH_NPTH': 'no', 'GROUP_PTH_NPTH_DRL': False, 'PLOT_REFS': True, 'COLOR_THEME': 'Altium_Theme', 'SHEET_WKS': '${KIPRJMOD}/Templates/KDT_Template_PCB_GIT_A4.kicad_wks', 'FAB_SCALING': 1, 'ASSEMBLY_SCALING': 1, 'EXCLUDE_REFS': '[MB*]', '3D_VIEWER_ROT_X': 2, '3D_VIEWER_ROT_Y': -1, '3D_VIEWER_ROT_Z': 1, '3D_VIEWER_ZOOM': -1, 'OUTPUT_DIR': './', 'REPORT_DIR': 'Reports', 'SCHEMATIC_DIR': 'Schematic', 'MANUFACTURING_DIR': 'Manufacturing', 'ASSEMBLY_DIR': '@MANUFACTURING_DIR@/Assembly', 'FABRICATION_DIR': '@MANUFACTURING_DIR@/Fabrication', 'GERBERS_DIR': '@FABRICATION_DIR@/Gerbers', 'FAB_DRILL_TABLES_DIR': '@FABRICATION_DIR@/Drill Tables', 'TESTING_DIR': 'Testing', 'TESTPOINTS_DIR': '@TESTING_DIR@/Testpoints', 'IMAGES_DIR': 'Images', '3D_DIR': '3D', 'RESOURCES_DIR': 'kibot_resources', 'REPORT_TEMPLATE_DIR': '@RESOURCES_DIR@/templates', 'SCRIPTS_DIR': '@RESOURCES_DIR@/scripts', 'LAYER_TITLE_PAGE': 'TitlePage', 'LAYER_DNP_TOP': 'F.DNP', 'LAYER_DNP_BOTTOM': 'B.DNP', 'LAYER_DRILL_MAP': 'DrillMap', 'LAYER_TP_LIST_TOP': 'F.TestPointList', 'LAYER_TP_LIST_BOTTOM': 'B.TestPointList', 'LAYER_ASSEMBLY_TEXT_TOP': 'F.AssemblyText', 'LAYER_ASSEMBLY_TEXT_BOTTOM': 'B.AssemblyText', 'LAYER_DNP_CROSS_TOP': 'F.DNP', 'LAYER_DNP_CROSS_BOTTOM': 'B.DNP', 'FILT_FIELD_RENAME': 'field_rename', 'FILT_TP_ONLY': 'only_testpoints', 'FILT_TP_EXCLUDE': 'exclude_testpoints', 'FILT_TP_TOP_ONLY': 'only_testpoints_top', 'FILT_TP_BOTTOM_ONLY': 'only_testpoints_bottom', 'SCH_VARIANT_OUTPUT': 'value_split', 'NETLIST_OUTPUT': 'netlist', 'GERBER_OUTPUT': 'gbr_gerbers', 'ODB_OUTPUT': 'zip_odb', 'EXCELLON_DRILL_OUTPUT': 'drl_excellon', 'PDF_DRILL_MAP_OUTPUT': 'pdf_drill_map', 'DXF_DRILL_MAP_OUTPUT': 'dxf_drill_map', 'CSV_DRILL_TABLE_OUTPUT': 'csv_drill_table', 'CSV_POS_OUTPUT': 'csv_position', 'CSV_TP_OUTPUT': 'csv_testpoints', 'CSV_TP_TOP_OUTPUT': 'csv_testpoints_top', 'CSV_TP_BOTTOM_OUTPUT': 'csv_testpoints_bottom', 'CSV_BOM_OUTPUT': 'csv_bom', 'XLSX_BOM_OUTPUT': 'xlsx_bom', 'HTML_IBOM_OUTPUT': 'html_bom_interactive', 'HTML_BOM_OUTPUT': 'html_bom', 'CSV_COMP_COUNT_OUPUT': 'csv_comp_count', 'CSV_IMPEDANCE_TABLE_OUTPUT': 'csv_impedance_table', 'TXT_FAB_NOTES_OUTPUT': 'txt_fabrication_notes', 'TXT_ASSEMBLY_NOTES_OUTPUT': 'txt_assembly_notes', 'PNG_3D_VIEWER_TOP': 'png_3d_viewer_top', 'PNG_3D_VIEWER_BOTTOM': 'png_3d_viewer_bottom', 'PNG_3D_VIEWER_ANGLED_TOP': 'png_3d_viewer_angled_top', 'PNG_3D_VIEWER_ANGLED_BOTTOM': 'png_3d_viewer_angled_bottom', 'STEP_OUTPUT': 'step', 'BLENDER_OUTPUT': 'blender', 'PDF_SCHEMATIC_OUTPUT': 'pdf_schematic', 'PDF_FABRICATION_OUTPUT': 'pdf_fabrication', 'PDF_ASSEMBLY_OUTPUT': 'pdf_assembly', 'ZIP_COMPRESS_FAB_OUTPUT': 'zip_compress_fab', 'HTML_KICANVAS_OUTPUT': 'html_kicanvas', 'HTML_KIRI_OUTPUT': 'html_kiri', 'MD_README_OUTPUT': 'md_readme', 'HTML_NAV_RES_OUTPUT': 'html_navigate_results'} (kibot - config_reader.py:670)
+DEBUG:- Replacing @NAME@ -> png_3d_viewer_bottom () (kibot - config_reader.py:90)
+DEBUG:- Replacing @COMMENT@ -> Bottom 3D viewer PCB render in PNG format () (kibot - config_reader.py:90)
+DEBUG:- Replacing @DIR@ -> Images (