daggydata
Upload datasets to Daggy from a script, a notebook or cron, with an API
key: one file, several files, or a hive-partitioned folder, up to 25 GB. Bytes go straight to
storage in parallel parts; only requests is needed, no cloud credentials.
pip install daggydata
The package installs the daggy command and imports as daggy.
Create an API key on the API keys page of the Daggy app, then:
export DAGGY_API_KEY=daggy_prod_...
daggy upload sales ./sales.parquet
daggy upload events ./events/ --overwrite --description "Clickstream"
import daggy # reads DAGGY_API_KEY
ds = daggy.upload("sales", "./sales.parquet")
print(ds.name, ds.num_obs, "rows")
What gets uploaded
- A file is uploaded under its name, with anything outside
[A-Za-z0-9_.-]replaced (Q3 sales.csv→Q3_sales.csv). - A folder becomes one dataset. Hive folders like
region=west/become columns. Marker files (_SUCCESS,.crc,_temporary/) are skipped. - Formats:
.parquet .pq .csv .tsv .txt .json .ndjson .jsonl, one format per upload, uncompressed. --overwrite(overwrite=True) replaces an existing dataset; without it, an existing name is refused. Appends are not supported.
| Limit | Value |
|---|---|
| Size per upload | 25 GiB |
| Files per upload | 200 |
| Open uploads at once | 5 |
| Time to finish an upload | 20 hours |
| Paths in a folder | [A-Za-z0-9_.=/-], at most 8 levels |
Resuming
The session id is printed (logged, from Python) before any data is sent. If a run is killed or a part keeps failing, run it again with the id; only the missing parts are sent:
daggy upload sales ./sales.parquet --resume <session_id>
try:
daggy.upload("sales", "./sales.parquet")
except daggy.UploadError as e:
print(e.code, e.session_id, e.final_state)
# final_state None or "uploading": daggy.upload(..., resume=e.session_id)
UploadError has status, code, message, session_id and final_state (None for a
refused request or a failed part, otherwise failed, aborted or uploading). From Python,
progress goes to the daggy logger: logging.basicConfig(level=logging.INFO) shows it.
Options
| CLI | Python | |
|---|---|---|
--overwrite |
overwrite=True |
replace an existing dataset |
--description D |
description="D" |
dataset description (≤ 10,000 characters) |
--resume SID |
resume="SID" |
finish an earlier upload |
--workers N |
workers=N |
parallel part uploads (default 8) |
--api URL |
api_url="URL" |
API address; default from the key (DAGGY_API_URL also works) |
DAGGY_API_KEY |
api_key="..." |
the key |
CLI exit codes: 0 done; 1 the upload ended failed/aborted or needs --resume; 2 bad usage,
a refused request or a part that kept failing; 130 interrupted.
License
MIT
Metadata
Release files for daggydata 0.1.0
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 | |
|---|---|---|---|---|
| daggydata-0.1.0.tar.gz | 8.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| daggydata-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.9 kB
Release files / daggydata-0.1.0.tar.gz
| Download URL | daggydata-0.1.0.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27a744c8510d086814e11ea3c4d9c0c9d498d7d0fe179c25e69ff7f7b0c4c47e
|
|
BLAKE2b-256 checksum How to use checksums |
1701e5d0e35ecca38211428f1b1b848d70323f121b3e514331fda22219483f14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.4
|
Release files / daggydata-0.1.0-py3-none-any.whl
| Download URL | daggydata-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8bb509298e6b72e2615af4e6a5532a30eaaa63af7f3fe577bcfd2b5df32d0392
|
|
BLAKE2b-256 checksum How to use checksums |
57a90c278b245ff8c54a6cf1a05a2bccfcdd278df4da7b8c0a31d2580f5f430b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.4
|
Security for daggydata 0.1.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.
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.