Skip to content

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

Defining Classes


Objectscript Class Components

Component

Base class for Objectscript class components.

Parameter

Defining Class Parameters

Property

Defining and Using Literal Properties

Method

Defining Methods

ClassMethod

Defining Methods

Projection

Defining Class Projections

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

Storage Definitions

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.