# Definitions dataset: * set of objects * * Can be hand crafted or generated by a task * Can be either a CSV file or ini file delta: the change from one version of an object to another. the object needs a key database: collection of objects object: instance of a type. string key-values with a type # Tasks task: kicad-sch-to-dataset input: $sch output: data-set: * name: kicad-sch * types: * kicad-schematic-component * kicad-sheet * kicad-design task: kicad-pcb-to-dataset input: $pcb output: data-set: * name: kicad-pcb * types: * kicad-pcb-component file: gerber task: kicad-create-component-data-set input: * data-set: * name: kicad-pcb * data-set: * name: kicad-sch * uses types: * kicad-schematic-component * kicad-pcb-component output: data-set: type: component task: validate-component input: type: component output: data-set: type: component task: create-bom input: type: component output: data-set: (CSV) type: bom-component ## Customizations Case: your 'value' field is (usually) on the form 'Capacity/Max voltage/Tolerance' and you want to split this out into separate fields. Standard setup: * task: create-kicad-sch-objects * inputs: none * outputs: dataset:create-kicad-sch-objects * task: create-kicad-sch-objects * inputs: none * outputs: dataset:create-kicad-sch-objects # Hand crafted datasets CSV files unless specified. * kicad-footprint-mapping: mappings from a footprint * value-to-mpn: mapping from value to MPN, for components not found at seller * digikey-footprint-mapping: mappings from digikey's footprint names to normalized form # Directory structure $dataset-base-dir/$data-set/ data-set.ini $object-type/ $key.ini For tasks $data-set = $task-name.