Commit Graph

49 Commits

Author SHA1 Message Date
Salvador E. Tropea 4368364489 Refactored the BaseOutput class to make it more similar to the YAML
Now the options are just an attribute of the outputs.
It means we have a set of classes for the options.
All the output content is parsed by the classes, including the Layers.
Now the layers support a simple string (with interesting shortcuts), a list of
strings or the original list of dicts.
2020-07-08 15:17:24 -03:00
Salvador E. Tropea 1c4c94cfa2 Some super() use clean-up.
Now using Python3 style everywhere.
Added some missing calls to allow more cases of use.
2020-07-05 19:11:52 -03:00
Salvador E. Tropea 45ecb1d02a Added a mechanism to specify suboptions.
Now the legacy drill.map.type and drill.report.filename are specified in this
way.
The BaseOutput class now inherits from Optionable.
Suboptions are just Optionable classes.
Also: added traceback print when an error is reported and we are in debug mode.
2020-07-05 12:40:57 -03:00
Salvador E. Tropea 4538236574 Now outputs and preflights are loaded as plugins.
They can be added from ~/.config/kiplot/plugins/
Also sorted the preflights in the YAML example and allower -v for
--help-list-outputs, needed to know from where are the plugins loaded.
2020-07-02 12:30:30 -03:00
Salvador E. Tropea ec35d2443f Added option to copy plot options from the PCB to the YAML example.
Also added DXF.metric_units and updated the README.
2020-07-01 20:43:03 -03:00
Salvador E. Tropea d926a5419e Added --example basic tests
Also added support for output directory to --example
2020-06-30 20:43:42 -03:00
Salvador E. Tropea 4ae54f3ded Added --example/-x option to generate a configuration example.
The example contains all the available preflights and outputs.
If the user specifies a PCB the names of the layers are from the provided PCB
2020-06-30 20:09:14 -03:00
Salvador E. Tropea 42d1f14056 Now layers are solved when we really need it.
So we can do some operations (like --list) without loading the board.
Also: now the names for the layers are asked to pcbnew classes (not from file)
2020-06-29 12:55:02 -03:00
Salvador E. Tropea a436aea8e7 Now the README.md is sychronized using the help output.
The --help-outputs and --help are embedded in the README.md
To make it easier to read now options are enclosed in `` and the list of
outputs is sorted.
2020-06-27 18:28:05 -03:00
Salvador E. Tropea c82c2f0c39 Added support for all the missing IBoM options.
Note that variants_blacklist and variants_whitelist needs a fresh IBoM.
These options didn't work and crashed IBoM. It was reported as a result of
the tests included in this commit.
2020-06-27 15:04:35 -03:00
Salvador E. Tropea 2f0f3f755d Changed the command line parser from argparse to docopt.
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.
2020-06-26 12:04:56 -03:00
Salvador E. Tropea 46a20404a4 Added preflights help. 2020-06-25 10:31:23 -03:00
Salvador E. Tropea fa1ea5bdc9 Outputs help and options review
- 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)
2020-06-25 09:05:46 -03:00
Salvador E. Tropea ac4ae89aba Added command line help for the outputs.
--help-list-outputs list supported outputs
--help-outputs list details for the supported outputs
--help-output OUTPUT shows the help for this particular output
2020-06-24 11:02:17 -03:00
Salvador E. Tropea 458d4ba0a9 Removed flake8 issues 2020-06-23 10:27:11 -03:00
Salvador E. Tropea 2bb2bd2034 Added preliminary tests to add "automagic" documenation for the output options 2020-06-22 19:47:37 -03:00
Salvador E. Tropea 20d79d58ad Restricted the YAML support to safe features.
I think it doesn't change anything important, but looks sensitive.
2020-06-21 11:58:35 -03:00
Salvador E. Tropea 19023ef4e6 Added tests to cover 100% of kiplot/config_reader.py
Mostly parser errors.
2020-06-19 23:38:09 -03:00
Salvador E. Tropea 7679604646 Major code refactor
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.
2020-06-19 15:54:55 -03:00
Salvador E. Tropea 2766b5afcb Added STEP file output 2020-06-15 13:21:24 -03:00
Salvador E. Tropea c390ec3cb8 Added support for kicad-automation-tools v1.4.0 DRC/ERC filters 2020-06-09 13:49:04 -03:00
Salvador E. Tropea 103ef8b79e Fixed: Most formats that needed layers didn't complain when ommited 2020-05-26 13:50:38 -03:00
Salvador E. Tropea bb6bae95a2 Excluded from coverage the fatal case case when python-yaml isn't installed. 2020-05-26 12:43:14 -03:00
Salvador E. Tropea b053017284 Tolerate config files without outputs 2020-05-20 10:36:28 -03:00
Salvador E. Tropea 0a018e8b2b Added a catch for KiPlotConfigurationError errors and printed it with context. 2020-03-23 00:42:48 -03:00
Salvador E. Tropea 9267597330 Made flake8 compliant 2020-03-22 20:16:57 -03:00
Salvador E. Tropea d4f12a1d13 Unified the YAML errors, added more context information 2020-03-22 13:02:17 -03:00
Salvador E. Tropea 6067c84394 Added support for the layer names used in the PCB file. 2020-03-21 15:10:24 -03:00
Salvador E. Tropea 3aaf1ce045 Added support to print the PCB in PDF format (using print, not plot) 2020-03-21 14:34:02 -03:00
Salvador E. Tropea d0d9c37064 Added schematic printing to PDF.
Partially added PCB printing to PDF.
2020-03-19 19:59:19 -03:00
Salvador E. Tropea 438142dabd Added KiBoM and InteractiveHtmlBoM support 2020-03-19 16:26:45 -03:00
Salvador E. Tropea 85acaadf26 Added generation of the BoM in XML format 2020-03-19 09:57:11 -03:00
Salvador E. Tropea 5a386bdd32 Added ERC check 2020-03-18 23:15:17 -03:00
Salvador E. Tropea 2af2c0c88d Added DRC support using kicad-automation-scripts 2020-03-16 10:59:36 -03:00
Salvador E. Tropea c0acfe3865 Added format and color to the logs. Also enhanced the yaml/pcbnew log error. 2020-03-14 16:12:05 -03:00
Salvador E. Tropea 8d1668a7d6 Merge branch 'add_info_process' 2020-03-13 14:16:50 -03:00
Salvador E. Tropea bce849b44b Added only_smd to only generate positions for SMD components.
Made the .pos more similar to what KiCad generates (sorted, capitalization, date, etc.)
2020-03-13 13:04:27 -03:00
Salvador E. Tropea 97b6cedf06 Merge branch 'position' of https://github.com/rdeterre/kiplot 2020-03-13 10:46:10 -03:00
Salvador E. Tropea 49bb86d748 Moved the module to the root and added a script named kiplot to call it from /usr/bin.
Simplified the setup.py to make it work with Debian.
Added Debian package files.
Added a MANIFEST.in
2020-03-10 14:49:18 -03:00
John Beard c80c34939e Move to src directory 2018-06-02 17:55:32 +01:00
John Beard 2eec853d08 Tweak debug 2018-06-02 17:52:33 +01:00
John Beard 02f3db1a2d Add preflight options, but they don't wowork 2018-06-02 17:21:47 +01:00
John Beard 57c320984a Add svg, fix mirror plot 2018-06-02 16:56:20 +01:00
John Beard d3b331e3ad Add validation 2018-06-02 16:33:11 +01:00
John Beard 5aada8a3cd Add postscript and other stuff 2018-06-02 15:51:24 +01:00
John Beard 1519ff2e08 Overhaul config parsing 2018-06-02 13:31:03 +01:00
John Beard fb7e579a64 Even more working 2018-06-02 12:28:46 +01:00
John Beard 5298dc2c72 Getting there 2018-06-01 23:56:22 +01:00
John Beard 21e185c9d6 Initial commit 2018-06-01 20:08:57 +01:00