Python client library for the DataPress API
Project description
DataPress Python Client
A Python client library for interacting with the DataPress API.
Installation
pip install datapress
How to Use
Set your API credentials as environment variables:
export DATAPRESS_API_KEY="your-api-key"
export DATAPRESS_URL="https://your-datapress-instance.com"
Basic Usage
from datapress import DataPressClient
# Initialize client
client = DataPressClient()
# Verify authentication
user_info = client.whoami()
print(f"Logged in as: {user_info['title']}")
# Get a dataset
dataset = client.get_dataset("ab12x")
print(f"Dataset: {dataset['title']}")
Renaming a Dataset
# Rename a dataset using patch operations
patch = [{"op": "replace", "path": "/title", "value": "New Dataset Name"}]
result = client.patch_dataset("ab12x", patch)
print(f"Dataset renamed to: {result['dataset']['title']}")
Adding a File
# Upload a new file to a dataset
result = client.upload_file(
dataset_id="ab12x",
file_path="data/sales.csv",
# Optional parameters:
title="Sales Data",
description="Monthly sales figures",
order=1,
timeframe={"from": "2024-01", "to": "2025-04"}
)
print(f"File uploaded with ID: {result['resource_id']}")
Replacing a File
# Replace an existing file
result = client.upload_file(
dataset_id="ab12x",
file_path="data/updated_spending.csv",
# Optional parameters:
resource_id="xyz", # ID of existing file to replace
title="Updated Spending Data"
)
print(f"File replaced: {result['resource_id']}")
Uploading a File from S3
You can transfer a file from S3 to a dataset by passing your boto3.client instance to the upload_file_from_s3 method. This will download the file in 5MB chunks and incrementally upload it to the dataset.
import boto3
session = boto3.session.Session()
s3_client = session.client(
"s3",
# ... credentials, endpoints, regions etc
aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),
aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"),
)
# Upload a file from S3 to a dataset
result = client.upload_file_from_s3(
s3_client=s3_client,
bucket="your-bucket-name",
key="your-object-key",
dataset_id="ab12x",
# Optional parameters:
resource_id="xyz", # ID of existing file to replace
title="Updated Spending Data",
description="Monthly spending figures",
order=1,
timeframe={"from": "2024-01", "to": "2025-04"}
)
print(f"File uploaded from S3: {result['resource_id']}")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file datapress-1.2.0.tar.gz.
File metadata
- Download URL: datapress-1.2.0.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dfdf1d9701666dc0d8dc1915183148419b665617ac5bb545213f93d6bcdfc04
|
|
| MD5 |
c57dc92148742b0028d0e2ad78b073a9
|
|
| BLAKE2b-256 |
6366d606b01453202756f78a0ca8e2e0480faf8e221d2fa4c76be0fe51459d92
|
File details
Details for the file datapress-1.2.0-py3-none-any.whl.
File metadata
- Download URL: datapress-1.2.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35e0def27f8dfb23609465724b6e553c6b08e1168f619a794c3bf0d486f2964e
|
|
| MD5 |
c98d0ffd1697e1b467ff244372886c89
|
|
| BLAKE2b-256 |
6a504a99c5964c44c8f48a8889ec080a5c4c0bdc183642776a999242ec3687d0
|