Skip to main content

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

Metadata

Release files for ds-provider-xledger-py-lib 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ds-provider-xledger-py-lib 0.2.4
File Size Uploaded
ds_provider_xledger_py_lib-0.2.4.tar.gz 103.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ds-provider-xledger-py-lib 0.2.4
File Interpreter ABI Platform
ds_provider_xledger_py_lib-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 274.6 kB

Release files / ds_provider_xledger_py_lib-0.2.4.tar.gz

Download URL ds_provider_xledger_py_lib-0.2.4.tar.gz
Size 103.0 kB
Tags Source
SHA-256 checksum
How to use checksums
35d65d665000d86efa57ae2dc73ea314255671d0cc2dbf5858b426c2b0f2516b
BLAKE2b-256 checksum
How to use checksums
a7b12e318426f9d3459bd3ee7125391d69f2c18eac49e2beced0f7089290b09e
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.4-py3-none-any.whl

Download URL ds_provider_xledger_py_lib-0.2.4-py3-none-any.whl
Size 171.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
508482210c154ca57c3ffac5144e794170901ad0e13c67bea34d6232a8b6b77e
BLAKE2b-256 checksum
How to use checksums
cac781c5df9c50b7a28538eeb3cdb41a383dbf6da1b4bdc1c4b2394929933d47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page