The Core module contains the interface (non-implementation) details and enumerations of CodeToCAD, as well as generic utilities.
CodeToCAD interfaces are abstract and must be implemented by Providers to be useable.
For example, if you want to use CodeToCAD's Part class in Blender, you should first implement blender_provider's Part class, implementing PartInterface.
capabilities.json contains all the "actions" that CodeToCAD is expected to perform.
CodeToCAD files under the following directories are autogenerated:
Nesting in capabilities.json is formatted like this: className > methods > properties > parameters/information > definitions
E.g.: "Part": => className "information": => a method "Capabilities related to...", "constructor": { => a method "parameters": => a property {"name": => a parameter {"type": "string"} => a definition }, }, "fromFile": { => a method "information": => a property "Create a shape from a file.", "parameters": => a property {"filePath": => a parameter {"type": "string"}, => a definition "fileType": => a parameter {"type": "string", "required": false} => a definition } }
The jinja2 templates reference this structure to build python classes and methods.