gridforge-low-code-platform.../gridforge/dsl.py

44 lines
768 B
Python

from __future__ import annotations
from typing import Any, Dict
from pydantic import BaseModel
class Object(BaseModel):
id: str
name: str
description: str | None = None
fields: Dict[str, Any] = {}
class Morphism(BaseModel):
id: str
name: str
source_object_id: str
target_object_id: str
schema: Dict[str, Any] = {}
class Functor(BaseModel):
id: str
name: str
map_function: str # serialized function body or reference
class Limit(BaseModel):
id: str
name: str
constraints: Dict[str, Any] = {}
class Colimit(BaseModel):
id: str
name: str
constraints: Dict[str, Any] = {}
class TimeMonoid(BaseModel):
id: str
rounds: int = 1
mode: str = "sync" # or async, delta-sync, etc.