Providers
PostgreSQL for Python
ARX.SDK for Python is in development: not published to PyPI yet.
Its packages aren't on PyPI yet. Until they are, this page says what exists; its full documentation, built from verified samples like the C# pages for PostgreSQL, comes with the first release.
What it is
An idiomatic Python implementation of the ARX specification 0.1, checked against the same test vectors as the .NET packages. Python 3.10 or later.
| Package | What it is |
|---|---|
| arx_sdk | The entity (a dict-like ArxEntity) and query model, the schema catalog, errors with the shared codes, the injection check, paging cookies and capability flags. |
| arx_sdk.postgresql | The PostgreSQL provider, async, on psycopg 3 (the postgresql extra). |
What it does today
The PostgreSQL provider has create, create_multiple, retrieve, retrieve_multiple (criteria, columns, order, paging by page number, the total), update, delete and delete_matching.
Every value is a parameter and every name is validated, as in every implementation. Links, aggregates, paging cookies, transactions and Execute aren't in it yet: a call that needs one is refused with ARX8001, never answered in part. The other databases are .NET only for now.
A first look
The shape of the API, from the implementation's own README:
import os
from arx_sdk import ArxEntity, ArxIdColumn, ArxSchemaCatalog
from arx_sdk.postgresql import ArxPgDbService
schema = ArxSchemaCatalog.create().table("account", ArxIdColumn.generated("id")).build()
service = ArxPgDbService(os.environ["ARX_POSTGRESQL"], schema)
record_id = await service.create(ArxEntity("account", {"name": "Northwind Traders"}))
account = await service.retrieve("account", record_id)Follow it
The roadmap says where each language is, and the specification is what every implementation follows.