XMAS-App
The XLeistelle model-driven application schema app is a Python web application to edit and create data according to geo-spatial standards of the XLeistelle, e.g. XPlanung, XTrasse. It is based on NiceGUI for a graphical user interface and XPlan-Tools for the data model and respective functionality.
While it could be advanced to a standalone application, its current focus is integration in QGIS to provide attribute forms etc.
Features
- Render attribute forms for features.
- Create and edit features in combination with the corresponding QGIS Plugin.
- Import GML documents into a database.
- Export GML, JSON-FG or GPKG files from a databse.
- Delete plans from a database.
- Display and edit relations of plan objects in a tree view.
Installation
Container Image
Container images are available in the registry. See here for configuration.
Python >= v3.11
GDAL and its Python bindings are required, so you need to make sure the GDAL system library and Python package versions match. QGIS installations come with GDAL and a Python environment that can readily be used to install the app.
Install with pip, e.g. via OSGeo4W Shell:
pip install xmas-app
Pixi
This project uses Pixi for package management. To install this repo with a self-contained environment, run
git clone https://gitlab.opencode.de/xleitstelle/xmas-app.git
cd xmas-app
pixi install
Running
Preconditions
A Postgres DB with PostGIS extension and adequate permissions for the used role. If required tables were not previously created with xplan-tools, they will be generated on initialization.
For convenience, you can run
docker compose -f compose.yaml up -d
This will spin up a readily usable XMAS-App container with a PostGIS backend.
Modes
QGIS Plugin mode
If XPlan-GUI was installed in the QGIS Python environment, it can be started from the plugin panel. Configuration parameters are handled by the plugin.
Standalone mode
Starting in standalone mode requires some configuration parameters which have to be provided as an .env file or via environment variables.
The database connection parameters can be either user name, password etc. or a service definition.
| Variable | Description | Required | Example | |
|---|---|---|---|---|
| PGDATABASE | name of the database | (x) | coretable | |
| PGHOST | host of the database | (x) | localhost | |
| PGPORT | port of the database | (x) | 55432 | |
| PGUSER | user of the database | (x) | foo | |
| PGPASSWORD | password of the database user | (x) | bar | |
| PGSERVICE | the databas service to use | (x) | coretable | |
| APP_PORT | the port on which the app should run | x | 1337 | |
| APPSCHEMA | the default appschema | x | xplan | |
| APPSCHEMA_VERSION | the default appschema's version | x | 6.0 | |
| XMAS_DB_SCHEMA | the database schema to use | myschema |
First activate the pixi shell
pixi shell
then run
xmas-app
Optional: batch import test data to the database using xplan-tools
Test data can be downloaded from https://gitlab.opencode.de/xleitstelle/xplanung/testdaten, e.g. a ZIP archive with BP_Plans in v 6.0.
To import all .gml files at once, extract the archive and use:
(on Linux/Mac/Wsl Bash):
for f in <pfad>/bp/*.gml; do
xplan-tools convert "$f" postgresql://postgres:postgres@localhost:55432/postgres
done
(on Windows:):
for %f in (*.gml) do xplan-tools convert "%f" postgresql://postgres:postgres@127.0.0.1:55432/postgres
License
The code in this repository is licensed under the EUPL-1.2-or-later
© XLeitstelle, 2025
Metadata
Release files for xmas-app 0.18.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xmas_app-0.18.6.tar.gz | 68.9 kB | Without provenance | Details for xmas_app-0.18.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xmas_app-0.18.6-py3-none-any.whl | Python 3 | none | any | Details for xmas_app-0.18.6-py3-none-any.whl |
Total release size: 151.0 kB
Release files / xmas_app-0.18.6.tar.gz
| Download URL | xmas_app-0.18.6.tar.gz |
|---|---|
| Size | 68.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b5db7ebed2dc6a3fcf6a21b3c0e79fe08175c69dcb6b2c9d95b1b7d5abfd92d0
|
|
BLAKE2b-256 checksum How to use checksums |
adffb5e2b509b684b904a68e5768f0ad9441ee3778d3cd78f06d6c03c9eb882f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.4 CPython/3.12.13 Linux/5.4.0-205-generic
|
Release files / xmas_app-0.18.6-py3-none-any.whl
| Download URL | xmas_app-0.18.6-py3-none-any.whl |
|---|---|
| Size | 82.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e2914d5b7154545e8064587a15ae6121d9a45cade9c9cb6f095b75b2713664b
|
|
BLAKE2b-256 checksum How to use checksums |
dc062b972c4f798ecca4c18dc1795d354832a778d72858a5aa1b951f3672c326
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.4 CPython/3.12.13 Linux/5.4.0-205-generic
|
Security for xmas-app 0.18.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.