Initial Release
Objectscript class code generation library for Python
You can install the package using pip:
pip install pyobjectscript_gen
Or from source:
git clone https://github.com/Antoine-dh/pyobjectscript_gen.git
pip install .
Here’s a basic example of how to use the library:
from pyobjectscript_gen.cls import *cls = Class( name="Demo.MyExample.MyClass", extends=["%RegisteredObject"] )
example of declaratively creating properties
cls.components = [ Property( name="Property1", type="%String", ), Property( name="Property2", type="%Numeric", ), ]
example of iteratively creating a method
method = Method("MyMethod") method.return_type = "%String" method.impl = [ "set returnvalue=..Property1_..Property2", "quit returnvalue" ]
append method to class components
cls.components.append(method)
generate on sys.stdout
cls.generate()
See the generated class in examples/generated/basic.cls
You can find the full documentation at: Read the docs
All the documentation can also be found in code with python docstrings in src/pyobjectscript_gen/cls.py
All examples code can be found in examples/ and their respective output classes in examples/generated/
# Basic class example with 2 properties and a method python3 -m examples.basic > Basic.clsTest class for every features capable to be generated by the library
python3 -m examples.features > Features.cls
Real life example of creating persistent classes from an arbitrary CSV file describing properties
python3 -m examples.csv_import ./examples/data.csv
Real life example of multiple classes generation using custom subclasses of the library's components
Generates a simple REST example with a business operation, request and response classes in the specified output directory
python3 -m examples.rest ./examples/generated/rest/
Contributions are welcome!
To get started:
git clone https://github.com/Antoine-dh/pyobjectscript_gen.git
python -m venv .venv
source .venv/bin/activate # On Windows, use .venv\bin\activate.bat
pip install -r requirements.txt
This project is licensed under the GNU General Public License.