Providers

PostgreSQL for Python

ARX.SDK for Python is in development: not published to PyPI yet.

In development

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.

PackageWhat it is
arx_sdkThe 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.postgresqlThe 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:

example.py
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.