3ca28acbb3d175ac367aa0f704cb3b8fb5548e94
Add a [Python code generator][1] that takes an OpenAPI definition and outputs the corresponding data model as [dataclasses][2] This is intended to be used in the Remote Asset Library project, to create, download, parse, and validate information of a remote asset library. [1]: https://koxudaxi.github.io/datamodel-code-generator/ [2]: https://docs.python.org/3/library/dataclasses.html ## Running the Generator The generator is a Python script, which creates its own Python virtualenv, installs the dependencies it needs, and then runs the generator within that virtualenv. The script is intended to run via the `generate_datamodels` CMake target. For example, `ninja generate_datamodels` in the build directory. ## Details The virtualenv is created in Blender's build directory, and is not cleaned up after running. This means that subsequent runs will just use it directly, instead of reinstalling dependencies on every run. ## Generated Code & Interaction with Build System It is my intention that the code generation _only_ happens when the OpenAPI specification changes. This means that the generated code will be committed to Git like any hand-written code. Building Blender will therefore _not_ require the code generator to run. Only people working on the area that uses the generated code will have to deal with this. Pull Request: https://projects.blender.org/blender/blender/pulls/139495
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
