Implemented output priorities
- By default `qr_lib` is high priority and `navigate_results`/ `compress` are low priority. - Priorities can be configured. - A command line option disables it.
This commit is contained in:
parent
0deed52479
commit
043ee382d3
|
|
@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
### Added
|
### Added
|
||||||
|
- General stuff:
|
||||||
|
- Outputs now can have priorities, by default is applied.
|
||||||
|
Use `-n` to disable it.
|
||||||
- New outputs:
|
- New outputs:
|
||||||
- `navigate_results` creates web pages to browse the generated outputs.
|
- `navigate_results` creates web pages to browse the generated outputs.
|
||||||
- New globals:
|
- New globals:
|
||||||
|
|
@ -20,6 +23,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
### Changed
|
### Changed
|
||||||
- KiCad environment variables: more variables detected, native KiCad 6 names,
|
- KiCad environment variables: more variables detected, native KiCad 6 names,
|
||||||
all exported to the environment (#205)
|
all exported to the environment (#205)
|
||||||
|
- Consequences of the priorities implementation:
|
||||||
|
- `qr_lib` outputs are created before others
|
||||||
|
- `navigate_results` and `compress` outputs are created after others
|
||||||
|
|
||||||
## [1.1.0] - 2022-05-24
|
## [1.1.0] - 2022-05-24
|
||||||
### Added
|
### Added
|
||||||
|
|
|
||||||
65
README.md
65
README.md
|
|
@ -1172,6 +1172,8 @@ Next time you need this list just use an alias, like this:
|
||||||
* Valid keys:
|
* Valid keys:
|
||||||
- `output`: [string='%f-%i%I%v.%x'] Filename for the output (%i=boardview, %x=brd). Affected by global options.
|
- `output`: [string='%f-%i%I%v.%x'] Filename for the output (%i=boardview, %x=brd). Affected by global options.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* BoM (Bill of Materials)
|
* BoM (Bill of Materials)
|
||||||
|
|
@ -1362,6 +1364,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `style`: [string='modern-blue'] Head style: modern-blue, modern-green, modern-red and classic.
|
- `style`: [string='modern-blue'] Head style: modern-blue, modern-green, modern-red and classic.
|
||||||
- `title`: [string='KiBot Bill of Materials'] BoM title.
|
- `title`: [string='KiBot Bill of Materials'] BoM title.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Archiver (files compressor)
|
* Archiver (files compressor)
|
||||||
|
|
@ -1396,6 +1400,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `output`: [string='%f-%i%I%v.%x'] Name for the generated archive (%i=name of the output %x=according to format). Affected by global options.
|
- `output`: [string='%f-%i%I%v.%x'] Name for the generated archive (%i=name of the output %x=according to format). Affected by global options.
|
||||||
- *remove_files*: Alias for move_files.
|
- *remove_files*: Alias for move_files.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=10] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Datasheets downloader
|
* Datasheets downloader
|
||||||
|
|
@ -1424,6 +1430,8 @@ Next time you need this list just use an alias, like this:
|
||||||
It only makes sense if the `output` field makes their output different.
|
It only makes sense if the `output` field makes their output different.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* DXF (Drawing Exchange Format)
|
* DXF (Drawing Exchange Format)
|
||||||
|
|
@ -1476,6 +1484,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `use_aux_axis_as_origin`: [boolean=false] Use the auxiliary axis as origin for coordinates.
|
- `use_aux_axis_as_origin`: [boolean=false] Use the auxiliary axis as origin for coordinates.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Excellon drill format
|
* Excellon drill format
|
||||||
|
|
@ -1517,6 +1527,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `use_aux_axis_as_origin`: [boolean=false] Use the auxiliary axis as origin for coordinates.
|
- `use_aux_axis_as_origin`: [boolean=false] Use the auxiliary axis as origin for coordinates.
|
||||||
- `zeros_format`: [string='DECIMAL_FORMAT'] [DECIMAL_FORMAT,SUPPRESS_LEADING,SUPPRESS_TRAILING,KEEP_ZEROS] How to handle the zeros.
|
- `zeros_format`: [string='DECIMAL_FORMAT'] [DECIMAL_FORMAT,SUPPRESS_LEADING,SUPPRESS_TRAILING,KEEP_ZEROS] How to handle the zeros.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* GenCAD
|
* GenCAD
|
||||||
|
|
@ -1543,6 +1555,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `save_origin`: [boolean=false] Save the origin coordinates in the file.
|
- `save_origin`: [boolean=false] Save the origin coordinates in the file.
|
||||||
- `unique_pin_names`: [boolean=false] Generate unique pin names.
|
- `unique_pin_names`: [boolean=false] Generate unique pin names.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Gerber drill format
|
* Gerber drill format
|
||||||
|
|
@ -1576,6 +1590,8 @@ Next time you need this list just use an alias, like this:
|
||||||
(%i='drill_report' %x='txt').
|
(%i='drill_report' %x='txt').
|
||||||
- `use_aux_axis_as_origin`: [boolean=false] Use the auxiliary axis as origin for coordinates.
|
- `use_aux_axis_as_origin`: [boolean=false] Use the auxiliary axis as origin for coordinates.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Gerber format
|
* Gerber format
|
||||||
|
|
@ -1634,6 +1650,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `use_protel_extensions`: [boolean=false] Use legacy Protel file extensions.
|
- `use_protel_extensions`: [boolean=false] Use legacy Protel file extensions.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* HPGL (Hewlett & Packard Graphics Language)
|
* HPGL (Hewlett & Packard Graphics Language)
|
||||||
|
|
@ -1688,6 +1706,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `uppercase_extensions`: [boolean=false] Use uppercase names for the extensions.
|
- `uppercase_extensions`: [boolean=false] Use uppercase names for the extensions.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* IBoM (Interactive HTML BoM)
|
* IBoM (Interactive HTML BoM)
|
||||||
|
|
@ -1763,6 +1783,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `variants_whitelist`: [string=''] List of board variants to include in the BOM.
|
- `variants_whitelist`: [string=''] List of board variants to include in the BOM.
|
||||||
IBoM option, avoid using in conjunction with KiBot variants/filters.
|
IBoM option, avoid using in conjunction with KiBot variants/filters.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* KiBoM (KiCad Bill of Materials)
|
* KiBoM (KiCad Bill of Materials)
|
||||||
|
|
@ -1864,6 +1886,8 @@ Next time you need this list just use an alias, like this:
|
||||||
variants with the ';' (semicolon) character.
|
variants with the ';' (semicolon) character.
|
||||||
This isn't related to the KiBot concept of variants.
|
This isn't related to the KiBot concept of variants.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* KiCost (KiCad Cost calculator)
|
* KiCost (KiCad Cost calculator)
|
||||||
|
|
@ -1914,6 +1938,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
Don't use the `kicost_variant` when using internal variants/filters.
|
Don't use the `kicost_variant` when using internal variants/filters.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Navigate Results
|
* Navigate Results
|
||||||
|
|
@ -1934,6 +1960,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `link_from_root`: [string=''] The name of a file to create at the main output directory linking to the home page.
|
- `link_from_root`: [string=''] The name of a file to create at the main output directory linking to the home page.
|
||||||
- `output`: [string='%f-%i%I%v.%x'] Filename for the output (%i=html, %x=navigate). Affected by global options.
|
- `output`: [string='%f-%i%I%v.%x'] Filename for the output (%i=html, %x=navigate). Affected by global options.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=10] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Netlist
|
* Netlist
|
||||||
|
|
@ -1958,6 +1986,8 @@ Next time you need this list just use an alias, like this:
|
||||||
testing, is generated from the PCB.
|
testing, is generated from the PCB.
|
||||||
- `output`: [string='%f-%i%I%v.%x'] Filename for the output (%i=netlist/IPC-D-356, %x=net/d356). Affected by global options.
|
- `output`: [string='%f-%i%I%v.%x'] Filename for the output (%i=netlist/IPC-D-356, %x=net/d356). Affected by global options.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* PCB Print
|
* PCB Print
|
||||||
|
|
@ -2046,6 +2076,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `via_color`: [string=''] Color used for through-hole `colored_vias`.
|
- `via_color`: [string=''] Color used for through-hole `colored_vias`.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* PcbDraw - Beautiful 2D PCB render
|
* PcbDraw - Beautiful 2D PCB render
|
||||||
|
|
@ -2095,6 +2127,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `vcuts`: [boolean=false] Render V-CUTS on the Cmts.User layer.
|
- `vcuts`: [boolean=false] Render V-CUTS on the Cmts.User layer.
|
||||||
- `warnings`: [string='visible'] [visible,all,none] Using visible only the warnings about components in the visible side are generated.
|
- `warnings`: [string='visible'] [visible,all,none] Using visible only the warnings about components in the visible side are generated.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* PDF (Portable Document Format)
|
* PDF (Portable Document Format)
|
||||||
|
|
@ -2168,6 +2202,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `plot_footprint_values`: [boolean=true] Include the footprint values.
|
- `plot_footprint_values`: [boolean=true] Include the footprint values.
|
||||||
- `plot_sheet_reference`: [boolean=false] Include the frame and title block. Only available for KiCad 6 and you get a poor result
|
- `plot_sheet_reference`: [boolean=false] Include the frame and title block. Only available for KiCad 6 and you get a poor result
|
||||||
The `pcb_print` output can do a better job for PDF, SVG, PS, EPS and PNG outputs.
|
The `pcb_print` output can do a better job for PDF, SVG, PS, EPS and PNG outputs.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
- `tent_vias`: [boolean=true] Cover the vias.
|
- `tent_vias`: [boolean=true] Cover the vias.
|
||||||
- `uppercase_extensions`: [boolean=false] Use uppercase names for the extensions.
|
- `uppercase_extensions`: [boolean=false] Use uppercase names for the extensions.
|
||||||
|
|
@ -2218,6 +2254,8 @@ Next time you need this list just use an alias, like this:
|
||||||
If it starts with `+` the text is concatenated.
|
If it starts with `+` the text is concatenated.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* PDF Schematic Print (Portable Document Format)
|
* PDF Schematic Print (Portable Document Format)
|
||||||
|
|
@ -2245,6 +2283,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
Not fitted components are crossed.
|
Not fitted components are crossed.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* PDF joiner
|
* PDF joiner
|
||||||
|
|
@ -2275,6 +2315,8 @@ Next time you need this list just use an alias, like this:
|
||||||
See the `from_cwd` option.
|
See the `from_cwd` option.
|
||||||
- `use_external_command`: [boolean=false] Use the `pdfunite` tool instead of PyPDF2 Python module.
|
- `use_external_command`: [boolean=false] Use the `pdfunite` tool instead of PyPDF2 Python module.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Pick & place
|
* Pick & place
|
||||||
|
|
@ -2309,6 +2351,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `use_aux_axis_as_origin`: [boolean=true] Use the auxiliary axis as origin for coordinates (KiCad default).
|
- `use_aux_axis_as_origin`: [boolean=true] Use the auxiliary axis as origin for coordinates (KiCad default).
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* PS (Postscript)
|
* PS (Postscript)
|
||||||
|
|
@ -2368,6 +2412,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `width_adjust`: [number=0] This width factor is intended to compensate PS printers/plotters that do not strictly obey line width settings.
|
- `width_adjust`: [number=0] This width factor is intended to compensate PS printers/plotters that do not strictly obey line width settings.
|
||||||
Only used to plot pads and tracks.
|
Only used to plot pads and tracks.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* QR_Lib
|
* QR_Lib
|
||||||
|
|
@ -2406,6 +2452,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `reference`: [string='QR'] The reference prefix.
|
- `reference`: [string='QR'] The reference prefix.
|
||||||
- `use_sch_dir`: [boolean=true] Generate the libs relative to the schematic/PCB dir.
|
- `use_sch_dir`: [boolean=true] Generate the libs relative to the schematic/PCB dir.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=90] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* 3D render of the PCB
|
* 3D render of the PCB
|
||||||
|
|
@ -2462,6 +2510,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `zoom`: [number=0] Zoom steps. Use positive to enlarge, get closer, and negative to reduce.
|
- `zoom`: [number=0] Zoom steps. Use positive to enlarge, get closer, and negative to reduce.
|
||||||
Same result as using the mouse wheel in the 3D viewer.
|
Same result as using the mouse wheel in the 3D viewer.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Design report
|
* Design report
|
||||||
|
|
@ -2495,6 +2545,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `template`: [string='full'] Name for one of the internal templates (full, full_svg, simple) or a custom template file.
|
- `template`: [string='full'] Name for one of the internal templates (full, full_svg, simple) or a custom template file.
|
||||||
Note: when converting to PDF PanDoc can fail on some Unicode values (use `simple_ASCII`).
|
Note: when converting to PDF PanDoc can fail on some Unicode values (use `simple_ASCII`).
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* Schematic with variant generator
|
* Schematic with variant generator
|
||||||
|
|
@ -2518,6 +2570,8 @@ Next time you need this list just use an alias, like this:
|
||||||
A short-cut to use for simple cases where a variant is an overkill.
|
A short-cut to use for simple cases where a variant is an overkill.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* STEP (ISO 10303-21 Clear Text Encoding of the Exchange Structure)
|
* STEP (ISO 10303-21 Clear Text Encoding of the Exchange Structure)
|
||||||
|
|
@ -2551,6 +2605,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `subst_models`: [boolean=true] Substitute STEP or IGS models with the same name in place of VRML models.
|
- `subst_models`: [boolean=true] Substitute STEP or IGS models with the same name in place of VRML models.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* SVG (Scalable Vector Graphics)
|
* SVG (Scalable Vector Graphics)
|
||||||
|
|
@ -2604,6 +2660,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `uppercase_extensions`: [boolean=false] Use uppercase names for the extensions.
|
- `uppercase_extensions`: [boolean=false] Use uppercase names for the extensions.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* SVG PCB Print (Scalable Vector Graphics)
|
* SVG PCB Print (Scalable Vector Graphics)
|
||||||
|
|
@ -2652,6 +2710,8 @@ Next time you need this list just use an alias, like this:
|
||||||
If it starts with `+` the text is concatenated.
|
If it starts with `+` the text is concatenated.
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
* SVG Schematic Print
|
* SVG Schematic Print
|
||||||
|
|
@ -2678,6 +2738,8 @@ Next time you need this list just use an alias, like this:
|
||||||
- `variant`: [string=''] Board variant to apply.
|
- `variant`: [string=''] Board variant to apply.
|
||||||
Not fitted components are crossed.
|
Not fitted components are crossed.
|
||||||
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
- `output_id`: [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
|
||||||
|
- `priority`: [number=50] [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
|
||||||
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
- `run_by_default`: [boolean=true] When enabled this output will be created when no specific outputs are requested.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3130,7 +3192,7 @@ KiBot: KiCad automation tool for documents generation
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
kibot [-b BOARD] [-e SCHEMA] [-c CONFIG] [-d OUT_DIR] [-s PRE]
|
kibot [-b BOARD] [-e SCHEMA] [-c CONFIG] [-d OUT_DIR] [-s PRE]
|
||||||
[-q | -v...] [-i] [-C] [-m MKFILE] [-g DEF]... [TARGET...]
|
[-q | -v...] [-C | -i | -n] [-m MKFILE] [-g DEF]... [TARGET...]
|
||||||
kibot [-v...] [-b BOARD] [-e SCHEMA] [-c PLOT_CONFIG] --list
|
kibot [-v...] [-b BOARD] [-e SCHEMA] [-c PLOT_CONFIG] --list
|
||||||
kibot [-v...] [-b BOARD] [-d OUT_DIR] [-p | -P] --example
|
kibot [-v...] [-b BOARD] [-d OUT_DIR] [-p | -P] --example
|
||||||
kibot [-v...] [--start PATH] [-d OUT_DIR] [--dry] [-t, --type TYPE]...
|
kibot [-v...] [--start PATH] [-d OUT_DIR] [--dry] [-t, --type TYPE]...
|
||||||
|
|
@ -3158,6 +3220,7 @@ Options:
|
||||||
-i, --invert-sel Generate the outputs not listed as targets
|
-i, --invert-sel Generate the outputs not listed as targets
|
||||||
-l, --list List available outputs (in the config file)
|
-l, --list List available outputs (in the config file)
|
||||||
-m MKFILE, --makefile MKFILE Generate a Makefile (no targets created)
|
-m MKFILE, --makefile MKFILE Generate a Makefile (no targets created)
|
||||||
|
-n, --no-priority Don't sort targets by priority
|
||||||
-p, --copy-options Copy plot options from the PCB file
|
-p, --copy-options Copy plot options from the PCB file
|
||||||
-P, --copy-and-expand As -p but expand the list of layers
|
-P, --copy-and-expand As -p but expand the list of layers
|
||||||
-q, --quiet Remove information logs
|
-q, --quiet Remove information logs
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
kibot [-b BOARD] [-e SCHEMA] [-c CONFIG] [-d OUT_DIR] [-s PRE]
|
kibot [-b BOARD] [-e SCHEMA] [-c CONFIG] [-d OUT_DIR] [-s PRE]
|
||||||
[-q | -v...] [-i] [-C] [-m MKFILE] [-g DEF]... [TARGET...]
|
[-q | -v...] [-C | -i | -n] [-m MKFILE] [-g DEF]... [TARGET...]
|
||||||
kibot [-v...] [-b BOARD] [-e SCHEMA] [-c PLOT_CONFIG] --list
|
kibot [-v...] [-b BOARD] [-e SCHEMA] [-c PLOT_CONFIG] --list
|
||||||
kibot [-v...] [-b BOARD] [-d OUT_DIR] [-p | -P] --example
|
kibot [-v...] [-b BOARD] [-d OUT_DIR] [-p | -P] --example
|
||||||
kibot [-v...] [--start PATH] [-d OUT_DIR] [--dry] [-t, --type TYPE]...
|
kibot [-v...] [--start PATH] [-d OUT_DIR] [--dry] [-t, --type TYPE]...
|
||||||
|
|
@ -37,6 +37,7 @@ Options:
|
||||||
-i, --invert-sel Generate the outputs not listed as targets
|
-i, --invert-sel Generate the outputs not listed as targets
|
||||||
-l, --list List available outputs (in the config file)
|
-l, --list List available outputs (in the config file)
|
||||||
-m MKFILE, --makefile MKFILE Generate a Makefile (no targets created)
|
-m MKFILE, --makefile MKFILE Generate a Makefile (no targets created)
|
||||||
|
-n, --no-priority Don't sort targets by priority
|
||||||
-p, --copy-options Copy plot options from the PCB file
|
-p, --copy-options Copy plot options from the PCB file
|
||||||
-P, --copy-and-expand As -p but expand the list of layers
|
-P, --copy-and-expand As -p but expand the list of layers
|
||||||
-q, --quiet Remove information logs
|
-q, --quiet Remove information logs
|
||||||
|
|
@ -319,7 +320,7 @@ def main():
|
||||||
generate_makefile(args.makefile, plot_config, outputs)
|
generate_makefile(args.makefile, plot_config, outputs)
|
||||||
else:
|
else:
|
||||||
# Do all the job (preflight + outputs)
|
# Do all the job (preflight + outputs)
|
||||||
generate_outputs(outputs, args.target, args.invert_sel, args.skip_pre, args.cli_order)
|
generate_outputs(outputs, args.target, args.invert_sel, args.skip_pre, args.cli_order, args.no_priority)
|
||||||
# Print total warnings
|
# Print total warnings
|
||||||
logger.log_totals()
|
logger.log_totals()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -326,7 +326,7 @@ def get_board_comps_data(comps):
|
||||||
c.virtual = True
|
c.virtual = True
|
||||||
|
|
||||||
|
|
||||||
def preflight_checks(skip_pre):
|
def preflight_checks(skip_pre, targets):
|
||||||
logger.debug("Preflight checks")
|
logger.debug("Preflight checks")
|
||||||
|
|
||||||
if skip_pre is not None:
|
if skip_pre is not None:
|
||||||
|
|
@ -350,7 +350,7 @@ def preflight_checks(skip_pre):
|
||||||
else:
|
else:
|
||||||
logger.debug('Skipping `{}`'.format(skip))
|
logger.debug('Skipping `{}`'.format(skip))
|
||||||
o_pre.disable()
|
o_pre.disable()
|
||||||
BasePreFlight.run_enabled()
|
BasePreFlight.run_enabled(targets)
|
||||||
|
|
||||||
|
|
||||||
def get_output_dir(o_dir, obj, dry=False):
|
def get_output_dir(o_dir, obj, dry=False):
|
||||||
|
|
@ -411,44 +411,63 @@ def run_output(out, dont_stop=False):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
def generate_outputs(outputs, target, invert, skip_pre, cli_order, dont_stop=False):
|
def generate_outputs(outputs, targets, invert, skip_pre, cli_order, no_priority, dont_stop=False):
|
||||||
logger.debug("Starting outputs for board {}".format(GS.pcb_file))
|
logger.debug("Starting outputs for board {}".format(GS.pcb_file))
|
||||||
preflight_checks(skip_pre)
|
# Make a list of target outputs
|
||||||
# Check if the preflights pulled options
|
n = len(targets)
|
||||||
for out in RegOutput.get_prioritary_outputs():
|
if n == 0:
|
||||||
if config_output(out, dont_stop=dont_stop):
|
# No targets means all
|
||||||
logger.info('- '+str(out))
|
if invert:
|
||||||
run_output(out, dont_stop=dont_stop)
|
|
||||||
# Check if all must be skipped
|
|
||||||
n = len(target)
|
|
||||||
if n == 0 and invert:
|
|
||||||
# Skip all targets
|
# Skip all targets
|
||||||
logger.debug('Skipping all outputs')
|
logger.debug('Skipping all outputs')
|
||||||
return
|
else:
|
||||||
|
targets = [out for out in RegOutput.get_outputs() if out.run_by_default]
|
||||||
|
else:
|
||||||
# Check we got a valid list of outputs
|
# Check we got a valid list of outputs
|
||||||
for name in target:
|
for name in targets:
|
||||||
out = RegOutput.get_output(name)
|
out = RegOutput.get_output(name)
|
||||||
if out is None:
|
if out is None:
|
||||||
logger.error('Unknown output `{}`'.format(name))
|
logger.error('Unknown output `{}`'.format(name))
|
||||||
exit(EXIT_BAD_ARGS)
|
exit(EXIT_BAD_ARGS)
|
||||||
# Generate outputs
|
# Check for CLI+invert inconsistency
|
||||||
if cli_order and not invert:
|
if cli_order and invert:
|
||||||
# Use the CLI order
|
logger.error("CLI order and invert options can't be used simultaneously")
|
||||||
for name in target:
|
exit(EXIT_BAD_ARGS)
|
||||||
out = RegOutput.get_output(name)
|
# Now convert the list of names into a list of output objects
|
||||||
if config_output(out, dont_stop=dont_stop):
|
if cli_order:
|
||||||
logger.info('- '+str(out))
|
# Add them in the same order found at the command line
|
||||||
run_output(out, dont_stop)
|
targets = [RegOutput.get_output(name) for name in targets]
|
||||||
else:
|
else:
|
||||||
# Use the declaration order
|
# Add them in the declared order
|
||||||
|
new_targets = []
|
||||||
|
if invert:
|
||||||
|
# Invert the selection
|
||||||
for out in RegOutput.get_outputs():
|
for out in RegOutput.get_outputs():
|
||||||
if (((n == 0 or ((out.name not in target) and invert)) and out.run_by_default) or
|
if (out.name not in targets) and out.run_by_default:
|
||||||
((out.name in target) and not invert)):
|
new_targets.append(out)
|
||||||
|
else:
|
||||||
|
logger.debug('Skipping `{}` output'.format(out.name))
|
||||||
|
else:
|
||||||
|
# Normal list
|
||||||
|
for out in RegOutput.get_outputs():
|
||||||
|
if out.name in targets:
|
||||||
|
new_targets.append(out)
|
||||||
|
else:
|
||||||
|
logger.debug('Skipping `{}` output'.format(out.name))
|
||||||
|
targets = new_targets
|
||||||
|
logger.debug('Outputs before preflights: {}'.format(targets))
|
||||||
|
# Run the preflights
|
||||||
|
preflight_checks(skip_pre, targets)
|
||||||
|
logger.debug('Outputs after preflights: {}'.format(targets))
|
||||||
|
if not cli_order and not no_priority:
|
||||||
|
# Sort by priority
|
||||||
|
targets = sorted(targets, key=lambda o: o.priority, reverse=True)
|
||||||
|
logger.debug('Outputs after sorting: {}'.format(targets))
|
||||||
|
# Configure and run the outputs
|
||||||
|
for out in targets:
|
||||||
if config_output(out, dont_stop=dont_stop):
|
if config_output(out, dont_stop=dont_stop):
|
||||||
logger.info('- '+str(out))
|
logger.info('- '+str(out))
|
||||||
run_output(out, dont_stop)
|
run_output(out, dont_stop)
|
||||||
else:
|
|
||||||
logger.debug('Skipping `%s` output', str(out))
|
|
||||||
|
|
||||||
|
|
||||||
def adapt_file_name(name):
|
def adapt_file_name(name):
|
||||||
|
|
@ -859,7 +878,7 @@ def generate_targets(config_file):
|
||||||
with open(config_file) as cf_file:
|
with open(config_file) as cf_file:
|
||||||
outputs = cr.read(cf_file)
|
outputs = cr.read(cf_file)
|
||||||
# Do all the job
|
# Do all the job
|
||||||
generate_outputs(outputs, [], False, None, False, dont_stop=True)
|
generate_outputs(outputs, [], False, None, False, False, dont_stop=True)
|
||||||
|
|
||||||
|
|
||||||
def _walk(path, depth):
|
def _walk(path, depth):
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,9 @@ class BaseOutput(RegOutput):
|
||||||
self.category = Optionable
|
self.category = Optionable
|
||||||
""" [string|list(string)=''] The category for this output. If not specified an internally defined category is used.
|
""" [string|list(string)=''] The category for this output. If not specified an internally defined category is used.
|
||||||
Categories looks like file system paths, i.e. PCB/fabrication/gerber """
|
Categories looks like file system paths, i.e. PCB/fabrication/gerber """
|
||||||
|
self.priority = 50
|
||||||
|
""" [0,100] Priority for this output. High priority outputs are created first.
|
||||||
|
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs """
|
||||||
if GS.global_dir:
|
if GS.global_dir:
|
||||||
self.dir = GS.global_dir
|
self.dir = GS.global_dir
|
||||||
self._sch_related = False
|
self._sch_related = False
|
||||||
|
|
@ -150,6 +153,9 @@ class BaseOutput(RegOutput):
|
||||||
gb['dir'] = dir
|
gb['dir'] = dir
|
||||||
return outs
|
return outs
|
||||||
|
|
||||||
|
def fix_priority_help(self):
|
||||||
|
self._help_priority = self._help_priority.replace('[number=50]', '[number={}]'.format(self.priority))
|
||||||
|
|
||||||
def run(self, output_dir):
|
def run(self, output_dir):
|
||||||
self.output_dir = output_dir
|
self.output_dir = output_dir
|
||||||
self.options.run(self.expand_filename(output_dir, self.options.output))
|
self.options.run(self.expand_filename(output_dir, self.options.output))
|
||||||
|
|
|
||||||
|
|
@ -225,10 +225,14 @@ class Compress(BaseOutput): # noqa: F821
|
||||||
This is used to generate groups of files in compressed file format. """
|
This is used to generate groups of files in compressed file format. """
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
# Make it low priority so it gets created after all the other outputs
|
||||||
|
self.priority = 10
|
||||||
with document:
|
with document:
|
||||||
self.options = CompressOptions
|
self.options = CompressOptions
|
||||||
""" [dict] Options for the `compress` output """
|
""" [dict] Options for the `compress` output """
|
||||||
self._none_related = True
|
self._none_related = True
|
||||||
|
# The help is inherited and already mentions the default priority
|
||||||
|
self.fix_priority_help()
|
||||||
|
|
||||||
def get_dependencies(self):
|
def get_dependencies(self):
|
||||||
return self.options.get_dependencies()
|
return self.options.get_dependencies()
|
||||||
|
|
|
||||||
|
|
@ -455,9 +455,13 @@ class Navigate_Results(BaseOutput): # noqa: F821
|
||||||
Generates a web page to navigate the generated outputs """
|
Generates a web page to navigate the generated outputs """
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
# Make it low priority so it gets created after all the other outputs
|
||||||
|
self.priority = 10
|
||||||
with document:
|
with document:
|
||||||
self.options = Navigate_ResultsOptions
|
self.options = Navigate_ResultsOptions
|
||||||
""" [dict] Options for the `navigate_results` output """
|
""" [dict] Options for the `navigate_results` output """
|
||||||
|
# The help is inherited and already mentions the default priority
|
||||||
|
self.fix_priority_help()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_conf_examples(name, layers, templates):
|
def get_conf_examples(name, layers, templates):
|
||||||
|
|
|
||||||
|
|
@ -529,11 +529,15 @@ class QR_Lib(BaseOutput): # noqa: F821
|
||||||
- To keep them updated add the `update_qr` preflight """
|
- To keep them updated add the `update_qr` preflight """
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
# Make it high priority so it gets created before all the other outputs
|
||||||
|
self.priority = 90
|
||||||
with document:
|
with document:
|
||||||
self.options = QR_LibOptions
|
self.options = QR_LibOptions
|
||||||
""" [dict] Options for the `boardview` output """
|
""" [dict] Options for the `boardview` output """
|
||||||
self._both_related = True
|
self._both_related = True
|
||||||
self._update_mode = False
|
self._update_mode = False
|
||||||
|
# The help is inherited and already mentions the default priority
|
||||||
|
self.fix_priority_help()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_conf_examples(name, layers, templates):
|
def get_conf_examples(name, layers, templates):
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ class BasePreFlight(Registrable):
|
||||||
_registered = {}
|
_registered = {}
|
||||||
_in_use = {}
|
_in_use = {}
|
||||||
_options = {}
|
_options = {}
|
||||||
|
_targets = None
|
||||||
|
|
||||||
def __init__(self, name, value):
|
def __init__(self, name, value):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
@ -49,7 +50,18 @@ class BasePreFlight(Registrable):
|
||||||
return BasePreFlight._options.get(name)
|
return BasePreFlight._options.get(name)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def run_enabled():
|
def insert_target(out):
|
||||||
|
""" Add a target, at the beginning of the list and with high priority """
|
||||||
|
try:
|
||||||
|
del BasePreFlight._targets[BasePreFlight._targets.index(out)]
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
BasePreFlight._targets.insert(0, out)
|
||||||
|
out.priority = 90
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def run_enabled(targets):
|
||||||
|
BasePreFlight._targets = targets
|
||||||
try:
|
try:
|
||||||
for k, v in BasePreFlight._in_use.items():
|
for k, v in BasePreFlight._in_use.items():
|
||||||
if v._enabled:
|
if v._enabled:
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ class Update_QR(BasePreFlight): # noqa: F821
|
||||||
self._pcb_related = True
|
self._pcb_related = True
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
for o in list(RegOutput.get_outputs()): # We convert it to a list because we will mutate the dict
|
for o in RegOutput.get_outputs():
|
||||||
if o.type == 'qr_lib':
|
if o.type == 'qr_lib':
|
||||||
RegOutput.make_prioritary(o.name)
|
BasePreFlight.insert_target(o) # noqa: F821
|
||||||
o._update_mode = True
|
o._update_mode = True
|
||||||
logger.debug('Making {} prioritary'.format(o))
|
logger.debug('Making {} prioritary'.format(o))
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,6 @@ class RegOutput(Optionable, Registrable):
|
||||||
_def_variants = {}
|
_def_variants = {}
|
||||||
# List of defined outputs
|
# List of defined outputs
|
||||||
_def_outputs = OrderedDict()
|
_def_outputs = OrderedDict()
|
||||||
# List of priority outputs
|
|
||||||
_prio_outputs = OrderedDict()
|
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
@ -59,8 +57,6 @@ class RegOutput(Optionable, Registrable):
|
||||||
RegOutput._def_variants = {}
|
RegOutput._def_variants = {}
|
||||||
# List of defined outputs
|
# List of defined outputs
|
||||||
RegOutput._def_outputs = OrderedDict()
|
RegOutput._def_outputs = OrderedDict()
|
||||||
# List of priority outputs
|
|
||||||
RegOutput._prio_outputs = OrderedDict()
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def add_variants(variants):
|
def add_variants(variants):
|
||||||
|
|
@ -108,20 +104,10 @@ class RegOutput(Optionable, Registrable):
|
||||||
def get_outputs():
|
def get_outputs():
|
||||||
return RegOutput._def_outputs.values()
|
return RegOutput._def_outputs.values()
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_prioritary_outputs():
|
|
||||||
return RegOutput._prio_outputs.values()
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_output(name):
|
def get_output(name):
|
||||||
return RegOutput._def_outputs.get(name, None)
|
return RegOutput._def_outputs.get(name, None)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def make_prioritary(name):
|
|
||||||
out = RegOutput._def_outputs[name]
|
|
||||||
del RegOutput._def_outputs[name]
|
|
||||||
RegOutput._prio_outputs[name] = out
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_variant(variant):
|
def check_variant(variant):
|
||||||
if variant:
|
if variant:
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,6 @@ preflight:
|
||||||
update_qr: true
|
update_qr: true
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
- name: 'QRCodes'
|
|
||||||
comment: "Example of QR codes"
|
|
||||||
type: qr_lib
|
|
||||||
options:
|
|
||||||
output: 'qr.%x'
|
|
||||||
qrs:
|
|
||||||
- size_sch: 1
|
|
||||||
size_pcb: 2
|
|
||||||
size_units: inches
|
|
||||||
layer: copper
|
|
||||||
- name: QR2
|
|
||||||
text: 'https://github.com/INTI-CMNB/KiBot/'
|
|
||||||
correction_level: 'high'
|
|
||||||
|
|
||||||
- name: 'print_sch'
|
- name: 'print_sch'
|
||||||
comment: "Print schematic (PDF)"
|
comment: "Print schematic (PDF)"
|
||||||
type: pdf_sch_print
|
type: pdf_sch_print
|
||||||
|
|
@ -39,3 +25,17 @@ outputs:
|
||||||
layers:
|
layers:
|
||||||
- layer: F.SilkS
|
- layer: F.SilkS
|
||||||
- layer: F.Cu
|
- layer: F.Cu
|
||||||
|
|
||||||
|
- name: 'QRCodes'
|
||||||
|
comment: "Example of QR codes"
|
||||||
|
type: qr_lib
|
||||||
|
options:
|
||||||
|
output: 'qr.%x'
|
||||||
|
qrs:
|
||||||
|
- size_sch: 1
|
||||||
|
size_pcb: 2
|
||||||
|
size_units: inches
|
||||||
|
layer: copper
|
||||||
|
- name: QR2
|
||||||
|
text: 'https://github.com/INTI-CMNB/KiBot/'
|
||||||
|
correction_level: 'high'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue