Objectscript class code generation library for Python
- Objectscript class code generation
- Clean and simple to use interface in python
- Extensible classes for custom usage
You can install the package using pip:
pip install pyobjectscript_genOr 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
- Python 3.9+
- Jinja2
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.cls
# Test 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.txtThis project is licensed under the GNU General Public License.