This make the code cleaner and better documented.
Now the usage is more clear, and also a little bit more strict.
I'm using a modified docopt because I preffer using args.option instead of
args['--option'], I also fixed a few flake8 issues in docopt.py.
The old mechanism is supported, but removed from examples.
Added a test case for the new mechanism.
Documented the reason for the complex properties.
Added docstrings to these particular cases (with None as default).
- Included properties
- The final dot is placed by the printing code (removed from messages)
- docstrings line lengths limited
- Better HPGL help
- Fixed ibom default output (.html.html)
- pdf_pcb_print to use PCB name when not output name
- Default PS scaling factor to 1 (not 2)
--help-list-outputs list supported outputs
--help-outputs list details for the supported outputs
--help-output OUTPUT shows the help for this particular output
Pro:
- Much easier to add new outputs and pre-flights
- All options are optional
- Much better configuration syntax check
- Access to data is simpler
Cons:
- Much more source code files
- I focused on one application, not multiple instances running on the same
process.
Implemented in a different way.
For all internal commands now we use Python bindings to fill the zones as
suggested by @arikrupnik in johnbeard/kiplot#11
For 'print_pcb' now we ask KiCad to do it before printing (needs v1.4.1)
- When a BoM operation fails now we show the output of the child process.
(Only enabled when using debug verbosity)
- The error levels 1 and 2 were overlapped with internal Python codes.
- Now we delay the PCB load until we really need it. Which could be never.
_configure_plot_ctrl is called only for "layer" outputs, there is no
point trying to configure other formats.
Also some of the "configuration" were ridiculous calls with an assert
that only tested Python's sanity. Probably optimized out by python
compiler.