ds-provider-xledger-py-lib
A Python package from the ds-common library collection.
Installation
Install the package using pip:
pip install ds-provider-xledger-py-lib
Or using uv (recommended):
uv pip install ds-provider-xledger-py-lib
Quick Start
from ds_provider_xledger_py_lib import __version__
print(f"ds-provider-xledger-py-lib version: {__version__}")
Features
- Linked service support for Xledger GraphQL authentication and connectivity checks
- Dataset operations for read, create, update, and delete workflows
- Pagination and checkpoint support for resilient read operations
- Structured GraphQL error mapping into provider-specific exceptions
Usage
1) Test linked service connection
from uuid import uuid4
from ds_provider_xledger_py_lib.linked_service import (
XledgerLinkedService,
XledgerLinkedServiceSettings,
)
linked_service = XledgerLinkedService(
id=uuid4(),
name="xledger-linked-service",
version="1.0.0",
settings=XledgerLinkedServiceSettings(
host="https://demo.xledger.net/graphql",
token="YOUR_XLEDGER_TOKEN",
timeout=60,
),
)
success, message = linked_service.test_connection()
print(success, message)
2) Read data from an entrypoint
from uuid import uuid4
from ds_provider_xledger_py_lib.dataset import XledgerDataset, XledgerDatasetSettings
from ds_provider_xledger_py_lib.dataset.xledger import XledgerReadSettings
from ds_provider_xledger_py_lib.linked_service import XledgerLinkedService, XledgerLinkedServiceSettings
linked_service = XledgerLinkedService(
id=uuid4(),
name="xledger-linked-service",
version="1.0.0",
settings=XledgerLinkedServiceSettings(
host="https://demo.xledger.net/graphql",
token="YOUR_XLEDGER_TOKEN",
timeout=60,
),
)
dataset = XledgerDataset(
id=uuid4(),
name="xledger-dataset-read",
version="1.0.0",
linked_service=linked_service,
settings=XledgerDatasetSettings(
entrypoint="employees",
read=XledgerReadSettings(
columns=["dbId", "code", "description"],
limit=1000,
first=1000,
),
),
)
linked_service.connect()
dataset.read()
print(dataset.output.head())
3) Update rows
from uuid import uuid4
import pandas as pd
from ds_provider_xledger_py_lib.dataset import XledgerDataset, XledgerDatasetSettings
from ds_provider_xledger_py_lib.dataset.xledger import XledgerUpdateSettings
from ds_provider_xledger_py_lib.linked_service import XledgerLinkedService, XledgerLinkedServiceSettings
linked_service = XledgerLinkedService(
id=uuid4(),
name="xledger-linked-service",
version="1.0.0",
settings=XledgerLinkedServiceSettings(
host="https://demo.xledger.net/graphql",
token="YOUR_XLEDGER_TOKEN",
timeout=60,
),
)
dataset = XledgerDataset(
id=uuid4(),
name="xledger-dataset-update",
version="1.0.0",
linked_service=linked_service,
settings=XledgerDatasetSettings(
entrypoint="employees",
update=XledgerUpdateSettings(
return_columns=["dbId", "code", "description"],
),
),
)
dataset.input = pd.DataFrame(
[{"dbId": 1, "code": "EMP-001", "description": "Updated employee"}]
)
linked_service.connect()
dataset.update()
print(dataset.output)
For complete runnable scripts, see the repository's examples/ folder.
Requirements
- Python 3.11 or higher
Optional Dependencies
- ds-protocol-http-py-lib>=0.1.0-beta.4,<1.0.0
- ds-resource-plugin-py-lib>=0.1.0-rc.2,<1.0.0
- ds-common-logger-py-lib>=0.1.0-alpha.5,<1.0.0
Documentation
Full documentation is available at:
Development
To contribute or set up a development environment:
# Clone the repository
git clone https://github.com/grasp-labs/ds-provider-xledger-py-lib.git
cd ds-provider-xledger-py-lib
# Install development dependencies
uv sync --all-extras --dev
# Run tests
make test
See the README for more information.
License
This package is licensed under the Apache License 2.0. See the LICENSE-APACHE file for details.
Support
- Issues: GitHub Issues
- Releases: GitHub Releases
Metadata
Release files for ds-provider-xledger-py-lib 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ds_provider_xledger_py_lib-0.2.3.tar.gz | 97.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ds_provider_xledger_py_lib-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 263.0 kB
Release files / ds_provider_xledger_py_lib-0.2.3.tar.gz
| Download URL | ds_provider_xledger_py_lib-0.2.3.tar.gz |
|---|---|
| Size | 97.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc3305922f7e00869ec5bf317de147177d4ec34102b73ebd55bde3f8d95b6a51
|
|
BLAKE2b-256 checksum How to use checksums |
42559a359305b481f40c23c403db366b33f78c8303b689547105020e678eac82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ds_provider_xledger_py_lib-0.2.3-py3-none-any.whl
| Download URL | ds_provider_xledger_py_lib-0.2.3-py3-none-any.whl |
|---|---|
| Size | 165.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3fa63b49bd4ec957c4bd9c15162829bb6b4991c2df31c53ca3c4b9256eed00dc
|
|
BLAKE2b-256 checksum How to use checksums |
2dc8ba01074edee0ab5766cbc36811e427addca2e9f1a585ad77afb2b1b832b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|