Getting Started
Installation
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 .
Basic Usage
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
Running Examples
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/
API Reference
Class
Objectscript Class Components
Component
Base class for Objectscript class components.
Parameter
Property
Defining and Using Literal Properties
Method
ClassMethod
Projection
Query
Defining and Using Class Queries
Trigger
Syntax of Triggers in Class Definitions
Index
Defining Indexes Using a Class Definition
ForeignKey
Syntax of Foreign Keys in Class Definitions
Storage
XData
Defining and Using XData Blocks
Miscellaneous classes
Expression
Wrapper class for Objectscript expressions.
MethodArgument
Used to specify method arguments in the Method or Query component.