ll.la provides a Python API for the LivingApps system (see http://www.living-apps.de/ or http://www.living-apps.com/ for more info).
ll.la allows you to fetch the configured data sources from a template, create new records, and update and delete existing records all from your Python prompt (or script).
For more info about LivingApps and this Python SDK, see https://my.living-apps.de/docs/PythonSDK.html (in german).
0.62.0 (2026-08-19)
Update to XIST 5.89 (which added Postgres support for vSQL).
Fixed the dynamic vSQL queries which were broken by the changed vSQL API in XIST 5.89 (vsql.Group now takes vsql.Field objects, vsql.Query.sqlsource() and vsql.sql() now return t-strings): DBHandler.count_records(), DBHandler.fetch_records(), DBHandler.delete_records(), DBHandler.aggregate_records(), DBHandler.count_records_from_apps() and DBHandler.fetch_records_from_apps() (i.e. the methods behind App.count_records(), App.fetch_records(), App.delete_records(), App.aggregate_records(), AppGroup.count_records(), AppGroup.fetch_records() and AppGroup.fetch_recordpage()).
The queries are now composed as t-strings, and all values (including the out parameters) are passed as real bind parameters instead of being embedded literally into the SQL source or being passed as keyword arguments to execute().
Added support for the translations of the multilingual attributes of apps, app groups, controls and lookup items via the new classes AppLang, AppGroupLang, ControlLang and LookupItemLang.
The multilingual attributes themselves (e.g. control.label) remain plain strings: their getters now return the translation matching globals.lang. A label from the active view still wins over the translation, and when there’s no translation (or the translated attribute is None) the attribute of the object itself is used.
All translations are accessible (and modifiable) via the new attribute translations whose attributes are the language codes (e.g. control.translations.de; this works in UL4 and in Python). Accessing a known language for which no translations exist yet creates a new empty translation object. Each translation object can be saved with its method save(); translations.save() saves the translations for all languages.
Setting e.g. control.label still sets the attribute of the control itself and never touches the translations.
DBHandler.save_app() and DBHandler.save_control() now pass the “raw” attribute values (i.e. without the active view or the translations applied) to the database. This also fixes save_app() which previously accessed nonexistent App attributes for the grammatical gender and the case forms of the type name.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ll_la-0.62.0.tar.gz.
File metadata
- Download URL: ll_la-0.62.0.tar.gz
- Upload date:
- Size: 129.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30c4de37dcf52914f7f545d6b7003522ddf84bb4d6ced99c9bc3eda7d6cb3c33
|
|
| MD5 |
5c6621e44f5ade7086080fe86c86867d
|
|
| BLAKE2b-256 |
a4be5d2b89e1f10025598a9c24bb0607442cc441ca26b9cf3a71ed827ccd5b4d
|
File details
Details for the file ll_la-0.62.0-py3-none-any.whl.
File metadata
- Download URL: ll_la-0.62.0-py3-none-any.whl
- Upload date:
- Size: 92.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33da949406ed5c6c21268d503ead542ed385af02cb25e2c467986db3d6c45221
|
|
| MD5 |
ac3e5f02ff5f6bfc840d223e8e3b1a11
|
|
| BLAKE2b-256 |
958cf9fa88b220c0e32c194d2a9bab99a865ea5c003c6b6525534df566aeb6c2
|