Metadata-Version: 2.3
Name: exsource_tools
Version: 0.0.8
Summary: Python tools for using Exsource files.
Author-email: Julian Stirling <julian@julianstirling.co.uk>
Keywords: Documentation,Hardware
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Requires-Python: >=3.7
Requires-Dist: argparse
Requires-Dist: jsonschema
Requires-Dist: pyyaml>=5.1
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: colorama; extra == 'dev'
Requires-Dist: pylint; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Description-Content-Type: text/markdown

# ExSource-Tools

An experimental Python library for validating and using the [ExSource Specification](https://gitlab.com/gitbuilding/exsourcespec) which is in the early stage of development.

## Commands

### Make

This packages adds the following command:

    exsource-make

This will attempt to process `exsource-def.yml` to create inputs. The first instance of this proof of principle implementation supports OpenSCAD, FreeCAD, and CadQuery files. Each of these must be installed separately if they are to be used.

***FreeCAD***  
By default FreeCAD exporter will expect there to be a PartDesign Body called `Body`, it can export this to STEP and/or STL. The body to export can be changed by specifying the label of the object with `object-selected` as a parameter. For example:
```yaml
frame:
    name: Main frame
    description: >
        This frame holds the shelf brackets and shelves.
    output-files:
        - output/frame.step
        - output/frame.stl
    source-files:
        - assets/frame.FCStd
    parameters:
        object-selected: "Frame"
    application: freecad
```

***CadQuery***  
The CardQuery export is performed via [cq-cli](https://github.com/CadQuery/cq-cli)

### Check

You can also use the command:

    exsource-check

This will specify what would happen if `exsource-make` was run.
