tt-data-store
Work with a shared market-data archive as if it were a local folder — backed by S3.
tt-data-store on PyPI · GitHub
New here? Start with the usage guide.
The idea
You have candle data (OHLCV) stored as Parquet files on S3. Multiple people or jobs need to read and write that data without stepping on each other.
MarketStore gives you a local working copy of the archive:
- Open a folder → catalogue syncs from S3 (instruments + file list)
- Call
get()→ downloads only the Parquet you need - Call
write()+push()→ publish your changes for everyone else
You never manage S3 keys or checksums by hand. The library handles catalogue sync, downloads, and publishing.
Install
pip install "tt-data-store[s3]"
Python 3.11+. The [s3] extra installs boto3.
You also need AWS credentials with access to your archive bucket — environment variables, ~/.aws/credentials, or an IAM role.
30-second example
from tt_data_store import MarketStore
store = MarketStore(
"./data",
remote="s3://my-bucket/archive",
region="us-east-1",
)
# Read
df = store.get("NSE:INDEX:NIFTY", start="2026-01-01", end="2026-01-31")
# Write (new data you collected)
store.instruments.create(exchange="NSE", instrument_type="INDEX", symbol="NIFTY")
store.write(instrument="NSE:INDEX:NIFTY", candles=df, source="my-collector")
store.push()
That's the whole workflow: open → read or write → push.
Documentation
| Guide | What you'll learn |
|---|---|
| Usage guide | Concepts, setup, reading, writing, sync, troubleshooting |
| API reference | Method signatures, return types, errors |
When to use what
| You want to… | Call |
|---|---|
| Check if anyone else published changes | store.fetch() |
| Catch up with the remote catalogue | store.pull() |
| Load candles into a DataFrame | store.get(instrument, start=..., end=...) |
| Save new candles locally | store.write(instrument=..., candles=df, source=...) |
| Share your changes with others | store.push() |
| See what's out of sync | store.status() |
See the usage guide for when to call each one and what happens under the hood.
Development
git clone https://github.com/Tiny-Trader/data-store.git
cd data-store
uv sync --extra dev --extra s3
uv run pytest
License
Apache-2.0 — see LICENSE.
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 tt_data_store-1.0.1.tar.gz.
File metadata
- Download URL: tt_data_store-1.0.1.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b131aa2d39bfb499481bd3d635e83aa213be8b7c2938751437d08f7a2216822
|
|
| MD5 |
d01ea3bf1c55beb5f81dd1973bf567d6
|
|
| BLAKE2b-256 |
7f63ee08074cd0f29d5ece9e796486e018ec41181b583970cf8e897b69665154
|
Provenance
The following attestation bundles were made for tt_data_store-1.0.1.tar.gz:
Publisher:
publish.yml on Tiny-Trader/data-store
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tt_data_store-1.0.1.tar.gz -
Subject digest:
0b131aa2d39bfb499481bd3d635e83aa213be8b7c2938751437d08f7a2216822 - Sigstore transparency entry: 2586187471
- Sigstore integration time:
-
Permalink:
Tiny-Trader/data-store@5280bbd1045e363c47ae009a819bb4eb9245bc9d -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/Tiny-Trader
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5280bbd1045e363c47ae009a819bb4eb9245bc9d -
Trigger Event:
push
-
Statement type:
File details
Details for the file tt_data_store-1.0.1-py3-none-any.whl.
File metadata
- Download URL: tt_data_store-1.0.1-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e84dd0d0327b4fc5fc4e97d9dd23345dc34358ce67608da7c45216bd11f663ec
|
|
| MD5 |
99f7f2e7e9359beb3eaaaeb1c731dddc
|
|
| BLAKE2b-256 |
5360eedbe13bf99f2722618f611555f93104e0d2fff960276a83ad77d3a43bda
|
Provenance
The following attestation bundles were made for tt_data_store-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on Tiny-Trader/data-store
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tt_data_store-1.0.1-py3-none-any.whl -
Subject digest:
e84dd0d0327b4fc5fc4e97d9dd23345dc34358ce67608da7c45216bd11f663ec - Sigstore transparency entry: 2586187648
- Sigstore integration time:
-
Permalink:
Tiny-Trader/data-store@5280bbd1045e363c47ae009a819bb4eb9245bc9d -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/Tiny-Trader
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5280bbd1045e363c47ae009a819bb4eb9245bc9d -
Trigger Event:
push
-
Statement type: