Skip to main content

A format-agnostic, schema-driven, hierarchical configuration UI.

Project description

StructUI

PyPI version CI CD License: MIT

StructUI is a format-agnostic, schema-driven, hierarchical configuration UI engine built in Python. Designed as a flexible architectural backbone, it parses standard configuration files (YAML, JSON, CSV, XML) and dynamically generates a live web-based property editor based on constraints and metadata defined in a schema file.

The architecture is explicitly decoupled, making it readily extensible to strict domain-specific specifications (e.g., AUTOSAR configurators) and agent-driven programmatic workflows.

Features

  • Pillar A: Format-Agnostic Parsers: cleanly separate UI generation from underlying data formats. Out-of-the-box support for YAML, JSON, and XML (including schema-driven arrays and attributes), with abstract base classes extensible to CSV and others.
  • Pillar B: Hierarchical UI: Dynamic tree-based rendering with full support for multidimensional containers, dynamic polymorphic list additions, and node mapping. Powered natively by NiceGUI.
  • Pillar C: Data Validity: Enforces schema metadata strictly at the UI layer. Missing fields gracefully populate via defaults, required flags trigger locking, and nested typings are continuously evaluated.
  • Pillar D: Extensibility & Programmatic Control: Decomposed core logic (App, Parser, State, Schema, UI) allowing external tools and wrappers (e.g. CLI, Agent Workflows) to invoke the editor or inject properties safely.

Installation

From PyPI (recommended)

pip install structui

From Source (development)

git clone https://github.com/MoSaeedHammad/structui.git
cd structui
pip install -e .

Quick Start

Launch the editor in the current directory against your local configuration files by simply typing:

structui --dir . --schema .structui_schema.yaml --port 8080

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

structui-0.2.0.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

structui-0.2.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file structui-0.2.0.tar.gz.

File metadata

  • Download URL: structui-0.2.0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for structui-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0681a0559d257e01896d53f0a1414c363e263f6d1a67aecffc932cb743222e2e
MD5 83da05d9fed342ef879412d065763081
BLAKE2b-256 5033de20e2d7c94bd97f8f451ec9e08d5f455e90e5560bbaeb21d9662f21d09e

See more details on using hashes here.

Provenance

The following attestation bundles were made for structui-0.2.0.tar.gz:

Publisher: publish.yml on MoSaeedHammad/structui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file structui-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: structui-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for structui-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87eed00b26efff75a0275a03e4475380102d9d9aa332420f1863215fbd3013ba
MD5 1333cc562c5f37565582763d5a8b0417
BLAKE2b-256 82e67c2e0d08407e5a79b40ae577ad6ff483310eb6e35e0c047fc3e3da6f0679

See more details on using hashes here.

Provenance

The following attestation bundles were made for structui-0.2.0-py3-none-any.whl:

Publisher: publish.yml on MoSaeedHammad/structui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page