Skip to main content

DataGraphs Python Client

Python client library for DataGraphs.

Installation

uv add pydatagraphs

or

pip install pydatagraphs

Quick starts

from datagraphs import Client

# Connect to a project
client = Client(
    project_name="my-project",
    api_key="your-api-key",
)

# Check the API is reachable
print(client.status())

# Retrieve all entities of a given type
products = client.get("Product")

# Query with filters and pagination
results = client.query(q="Acme", page_size=50)
from datagraphs import Client

# Connect to a project
client = Client(
    project_name="my-project",
    api_key="your-api-key",
    client_id="your-client-id",
    client_secret="your-client-secret"
)

# Read the project schema and dataset configurations
schema = client.get_schema()
datasets = client.get_datasets()

# Update the project schema and dataset configurations
client.apply_schema(schema)
client.apply_datasets(datasets)
import json
from datagraphs import Client, Gateway, Schema, Dataset

# Connect to a project
client = Client(
    project_name="my-project",
    api_key="your-api-key",
    client_id="your-client-id",
    client_secret="your-client-secret"
)
gateway = Gateway(client)

# Load / dump data via the Gateway
gateway.dump_data("./backup")
result = gateway.load_data(from_dir_path="./backup")
if not result.ok:
    # Entities not written, per class: result.failed holds a FailedWrite (id, HTTP
    # status, errors) for each. result.timed_out holds the ids of writes that hit a
    # 504 and may still have completed: verify them with a read, or reload them.
    raise SystemExit(1)

# Load / dump project via the Gateway
schema_output_path = "./schemas/"
datasets_output_path = "./datasets/"
gateway.dump_project(schema_output_path, datasets_output_path)

with open("./schemas/myproject-model-v1.0.json") as f:
    schema_data = json.load(f)
with open("./datasets/myproject-datasets-v1.0.json") as f:
    datasets_data = json.load(f)
schema = Schema.create_from(schema_data)
datasets = [Dataset.create_from(d) for d in datasets_data]
gateway.load_project(schema, datasets)

For full API documentation, please see here

Authentication

For read-only access, an API key is sufficient. For write operations, supply OAuth credentials as well:

client = Client(
    project_name="my-project",
    api_key="your-api-key",
    client_id="your-client-id",
    client_secret="your-client-secret",
)

Key classes

Class Description
Client HTTP client for the DataGraphs REST API
Gateway Higher-level wrapper class for deploying projects and bulk export/load of data
Schema In-memory representation of a project's domain model
Dataset Represents a dataset within a project

Development

Install uv, then:

uv sync                                          # create virtualenv & install deps
uv run pytest tests -v                            # unit tests
uv run pytest tests_integration -v                # integration tests
uv run pytest tests -v --capture=tee-sys          # capturing stdout/stderr
uv run pytest --cov=src --cov-report=html         # coverage report
uvx ruff check .                                  # lint

License

MIT — Copyright (c) 2026 Data Language

Metadata

Release files for pydatagraphs 0.7.0

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

Source distribution (sdist)

Source distribution for pydatagraphs 0.7.0
File Size Uploaded Provenance
pydatagraphs-0.7.0.tar.gz 60.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pydatagraphs 0.7.0
File Interpreter ABI Platform
pydatagraphs-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 125.9 kB

Release files / pydatagraphs-0.7.0.tar.gz

Download URL pydatagraphs-0.7.0.tar.gz
Size 60.7 kB
Tags Source
SHA-256 checksum
How to use checksums
22a93cde3ae2363d08e84048db9e4032f70fcac9d896367caa5fec98dd499ead
BLAKE2b-256 checksum
How to use checksums
4e9d978808400f61c596b4c2681a25a32e81e51547763b2a82fc974951c82eb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / pydatagraphs-0.7.0-py3-none-any.whl

Download URL pydatagraphs-0.7.0-py3-none-any.whl
Size 65.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d365ccc0b778cf417bffffe108523011e73f00530b34c849018917926a38b625
BLAKE2b-256 checksum
How to use checksums
c16e906774ef10a078e2b7169484683038b2ad95bec8176ee6fa0a819b13c74b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for pydatagraphs 0.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pydatagraphs-0.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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