NubraCollector
nubracollector is a desktop collector and Python helper library for Nubra realtime market data.
It combines:
- a PySide6 desktop UI for login, stream selection, field filtering, and live tables
- a reusable Python API for starting Nubra websocket streams in code
- local storage outputs for CSV, Excel, SQLite, and Parquet
- first-run instrument catalog caching for searchable instrument selection
Features
- Supports all five Nubra websocket stream types:
indexoptionorderbookgreeksohlcv
- Compact UI login flow with environment, phone, OTP or TOTP, and MPIN
- Dark and light themes
- Live stream preview table with selected-field filtering
- Searchable instrument picker with cached instrument master data
- Stream output storage to:
- CSV
- Excel
- SQLite
- Parquet
Installation
From a local checkout:
pip install .
After publishing:
pip install nubracollector
Launch The Desktop UI
nubracollector
Or from Python:
from nubracollector import launch_ui
launch_ui()
Python Usage
from nubracollector import NubraCollector
from nubracollector.models import AuthConfig, StorageConfig, StorageFormat, SubscriptionConfig
collector = NubraCollector(
AuthConfig(
environment="UAT",
use_env_credentials=True,
phone_number="9999999999",
mpin="0000",
)
)
collector.login()
collector.start(
SubscriptionConfig(
stream_key="index",
values=["NIFTY", "BANKNIFTY"],
exchange="NSE",
selected_fields=["indexname", "timestamp", "index_value", "volume"],
),
StorageConfig(
format=StorageFormat.SQLITE,
target_path="market_data.db",
table_name="index_ticks",
),
)
Project Layout
nubracollector/
nubracollector/
app.py
auth.py
collector.py
instrument_cache.py
models.py
normalizers.py
schemas.py
session.py
storage.py
ui/
Notes
- The UI stores auth tokens locally for SDK reuse between steps.
- Instrument catalog refresh requires a valid Nubra session.
- CSV output is written immediately while streaming.
- Default output filenames include a timestamp to avoid collisions between runs.
Build A Distribution
python -m build
This creates files in dist/ ready for upload to PyPI.
Metadata
Release files for nubracollector 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 | Actions |
|---|---|---|---|---|
| nubracollector-0.1.0.tar.gz | 23.1 kB | Without provenance | Details for nubracollector-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nubracollector-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for nubracollector-0.1.0-py3-none-any.whl |
Total release size: 49.9 kB
Release files / nubracollector-0.1.0.tar.gz
| Download URL | nubracollector-0.1.0.tar.gz |
|---|---|
| Size | 23.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d1b37bcb8921be920b4e47382f30f34c36e28a577f464aab9fb4847ff47b24da
|
|
BLAKE2b-256 checksum How to use checksums |
e6637c89a9506c0651a7b7c7c96ef6eced5fbd1d4437ab7cdff2cd2491554e27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / nubracollector-0.1.0-py3-none-any.whl
| Download URL | nubracollector-0.1.0-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
59b7602a09d8dd102a1289f114268fd8530c961c50a3d9c9466c3ce849488a74
|
|
BLAKE2b-256 checksum How to use checksums |
c2fc1d07e31d419e08fd499df7488d373d419d23a61211a32d357435c5a85b24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Security for nubracollector 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.