Zum Inhalt

API Reference

download(path, username, password, version, uri)

Grap JSON Files....

Source code in src/form_download_helper/__init__.py
def download(path: Path, username: str, password: str, version: int, uri: str):
    """Grap JSON Files...."""
    ozg_sync = DownloadOZG(path, uri, username, password, version)
    ozg_sync.get()

Klassen

DownloadOZG

Die Hauptklasse für das Herunterladen von OZG-Formularen.

class DownloadOZG:
    def __init__(self, path, uri, username, password, version):
        """
        Initialisiert den OZG Downloader.

        Args:
            path (str): Zielverzeichnis für Downloads
            uri (str): URI des Formulars
            username (str): Benutzername für Authentication
            password (str): Passwort für Authentication  
            version (int): Versionsnummer des Formulars
        """

Methoden

get()
def get(self):
    """
    Lädt alle Formular-Dateien herunter und erstellt die Verzeichnisstruktur.

    Downloads:
    - JSON Schema (@@schema-view)
    - Dependency Tree (@@deptree-view)  
    - Deform Template (@@deform-view)

    Generiert:
    - Python Formularklassen
    - Test-Dateien
    - Package-Struktur
    """

Funktionen

download()

def download(path: Path, username: str, password: str, version: int, uri: str):
    """
    Hauptfunktion für den Download-Prozess.

    Args:
        path (Path): Zielverzeichnis
        username (str): Benutzername 
        password (str): Passwort
        version (int): Formular-Version
        uri (str): Formular-URI

    Example:
        >>> download(Path("/tmp"), "user", "pass", 2, "https://example.com/form")
    """

format_version()

def format_version(version):
    """
    Formatiert Versionsnummer für Verzeichnisnamen.

    Args:
        version (int|float): Versionsnummer

    Returns:
        str: Formatierte Version (z.B. "v2_0")

    Example:
        >>> format_version(2)
        "v2_0"
        >>> format_version(2.5)  
        "v2_5"
    """

main()

def main() -> int:
    """
    CLI Entry Point.

    Returns:
        int: Exit Code (0 bei Erfolg)
    """

Templates

FORM_TEMPLATE

Template für generierte Python Formularklassen:

FORM_TEMPLATE = """from ritter.browser import TemplateLoader
from uv.ozg.forms import DefaultDocumentEditForm as BaseOZGEditForm
from uvcreha.endpoints.browser.document import (
    DefaultDocumentEditForm as BaseREHAEditForm,
)
from uv.dynforms import dyn_form
from reha.prototypes.views.document import views

# ... Template-Inhalt
"""

FORM_TEST_TEMPLATE

Template für generierte Test-Dateien:

FORM_TEST_TEMPLATE = """def test_base(loaded_app):
    assert "%s" in loaded_app.document_stores["ozg"].keys()
"""

Konstanten

URI

Standard-URI für Schema-Abfragen:

URI = "https://formulare.uv-kooperation.de/ozg/rul/ozg-90/@@schema-view?version=1"

HTTP Endpoints

Das Tool greift auf folgende Endpoints zu:

Endpoint Beschreibung Parameter
@@schema-view JSON Schema des Formulars version
@@deptree-view Dependency Tree version
@@deform-view Deform Template version

Beispiel-Requests

# Schema abrufen
response = requests.get(
    f"{uri}/@@schema-view?version={version}",
    auth=HTTPBasicAuth(username, password)
)

# Dependency Tree abrufen  
response = requests.get(
    f"{uri}/@@deptree-view?version={version}",
    auth=HTTPBasicAuth(username, password)
)

# Template abrufen
response = requests.get(
    f"{uri}/@@deform-view?version={version}",
    auth=HTTPBasicAuth(username, password)
)