Load Pools CLI
A command-line tool for uploading HuggingFace datasets and GitHub repositories to Load S3 and tagging them for use with Load's data pools.
Features
- GitHub repository upload: Clone and upload entire repos with file-by-file tagging
- HuggingFace integration: Upload datasets by path
- Automatic tagging: Data-Protocol, Path, Filename, and Content-Type to make data discoverable
- Query support: All uploads are queryable via s3-agent's tag query API
Installation
Prerequisites
A Load Network account API key from cloud.load.network. HuggingFace calls may ask for a HuggingFace API key, freely available for registered users here
Usage
Upload a GitHub Repository
Upload all files from a GitHub repository with proper folder structure tagging:
load-pools create --github https://github.com/owner/repo --auth YOUR_LOAD_API_KEY
What happens:
- Repository is cloned to a temporary directory
- Each file is uploaded individually to s3-agent
- Files are tagged with:
Data-Protocol: "owner/repo"Path: "folder/subfolder"(relative path from repo root)Filename: "file.ext"Content-Type: "mime/type"
Example tags for file images/grayscale/9582.png:
[
{"key": "Data-Protocol", "value": "owner/repo"},
{"key": "Path", "value": "images/grayscale"},
{"key": "Filename", "value": "9582.png"},
{"key": "Content-Type", "value": "image/png"}
]
Upload a HuggingFace Dataset
Upload a HuggingFace dataset. Tables are uploaded row by row, with proper tagging.
load-pools create --hugging-face username/dataset-name --auth YOUR_LOAD_API_KEY
For private datasets or to bypass anonymous rate limits, pass --hf-auth <YOUR_TOKEN>.
What happens:
- HuggingFace dataset is downloaded
- Table rows are extracted into individual dataitems
- Rows are uploaded to s3-agent with metadata tags
Command Options
load-pools create [OPTIONS]
Options:
--github TEXT GitHub repository URL
--hugging-face TEXT HuggingFace repository slug (user/repo)
--auth TEXT Load account API key [required]
-v, --verbose Show detailed upload progress
--help Show help message
Querying Uploaded Data
After uploading, you can query your data using the s3-agent tags API.
Query all files from a GitHub repository:
curl -X POST https://load-s3-agent.load.network/tags/query \
-H "Content-Type: application/json" \
-d '{
"filters": [
{"key": "Data-Protocol", "value": "owner/repo"}
]
}'
Query files in a specific folder:
curl -X POST https://load-s3-agent.load.network/tags/query \
-H "Content-Type: application/json" \
-d '{
"filters": [
{"key": "Data-Protocol", "value": "owner/repo"},
{"key": "Path", "value": "images/grayscale"}
]
}'
Query by filename:
curl -X POST https://load-s3-agent.load.network/tags/query \
-H "Content-Type: application/json" \
-d '{
"filters": [
{"key": "Data-Protocol", "value": "owner/repo"},
{"key": "Filename", "value": "9582.png"}
]
}'
Query by content type:
curl -X POST https://load-s3-agent.load.network/tags/query \
-H "Content-Type: application/json" \
-d '{
"filters": [
{"key": "Data-Protocol", "value": "owner/repo"},
{"key": "Content-Type", "value": "image/png"}
]
}'
Examples
Upload a dataset repository:
load-pools create \
--github https://github.com/username/my-dataset \
--auth load_acc_xxxxxxxxxxxxx
Upload with verbose output:
load-pools create \
--github https://github.com/ml-datasets/images \
--auth load_acc_xxxxxxxxxxxxx \
--verbose
Upload a HuggingFace dataset:
load-pools create \
--hugging-face openai/graphwalks \
--auth load_acc_xxxxxxxxxxxxx
License
MIT License - see LICENSE file for details.
Related Projects
- xans104 - HuggingFace model uploader with ANS-104
- Load Network - Decentralized data storage network
- s3-agent - Load S3 Agent API
Metadata
Release files for load-pools 0.1.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| load_pools-0.1.19.tar.gz | 10.8 kB | Without provenance | Details for load_pools-0.1.19.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| load_pools-0.1.19-py3-none-any.whl | Python 3 | none | any | Details for load_pools-0.1.19-py3-none-any.whl |
Total release size: 22.2 kB
Release files / load_pools-0.1.19.tar.gz
| Download URL | load_pools-0.1.19.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bc27bc002648682c7377bec3542725b1fa4006e6f9782ec4e8d6aca393284dfd
|
|
BLAKE2b-256 checksum How to use checksums |
468fd7f5f9d49d3d73072487ccb91e0b03cf556cb3e0e54bf24f2a5c4e3eef29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / load_pools-0.1.19-py3-none-any.whl
| Download URL | load_pools-0.1.19-py3-none-any.whl |
|---|---|
| Size | 11.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
752edb0f2b84881dc7214d6418bb4f6a3616d19377c1f17b03a7602e119878b5
|
|
BLAKE2b-256 checksum How to use checksums |
ce98517a9072ab0b1056c7e302b371d946d6a055ad53eae27e48c3e40643e8a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for load-pools 0.1.19
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.