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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ds_provider_xledger_py_lib-0.2.2.tar.gz (93.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ds_provider_xledger_py_lib-0.2.2-py3-none-any.whl (160.7 kB view details)

Uploaded Python 3

File details

Details for the file ds_provider_xledger_py_lib-0.2.2.tar.gz.

File metadata

File hashes

Hashes for ds_provider_xledger_py_lib-0.2.2.tar.gz
Algorithm Hash digest
SHA256 54300c4d7f3a41147402230c68d24a2e9a97a0a3ec89c4a08da209513b2cf473
MD5 ce7c1bcb72f5821a25d729764f15bff3
BLAKE2b-256 4f951255bf3555c50c34cf6cd0cddbaeb8c6fa3950a4a3ee20134d37d0129c01

See more details on using hashes here.

File details

Details for the file ds_provider_xledger_py_lib-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ds_provider_xledger_py_lib-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5d4ae8cdb890db46aa1cfae7cedb7fe0a062128c9d81d94c3341e241103315b0
MD5 9ec722ce7215a13a753e0d1a030c6106
BLAKE2b-256 b3cc93d877c1cbbfe4e429a0888324df424a2b8f2b9e41db16765df78257ca9c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page