Skip to main content

Personal data infrastructure framework — health, finance, journals, and AI agents

Project description

Roshni

roshni (روشنی) — "light" in Urdu

Personal data infrastructure framework for health tracking, financial planning, journal search, and AI agents.

Install

pip install roshni                    # Core only (config, secrets, caching)
pip install roshni[health]            # + Health data collection framework
pip install roshni[fitbit]            # + Fitbit collector
pip install roshni[journal-faiss]     # + Journal RAG with FAISS
pip install roshni[financial-full]    # + Financial calculators + market data
pip install roshni[all]               # Everything

Modules

Module What it does Optional dep
core Config, secrets, caching, storage, LLM abstraction (included)
health Health data collection protocol + ETL base health
financial Mortgage, zakat, tax calculators, market data financial / financial-full
journal RAG-based journal search (chunking, embeddings, retrieval) journal-faiss / journal-chroma
agent AI agent framework (base agent, router, circuit breaker) agent
gateway Messaging gateway (Telegram bot framework) gateway-telegram
integrations Google Sheets, Drive, Gmail, Cloud Storage wrappers google

Quick Start

Configuration

from roshni.core.config import Config

config = Config(
    config_file="config/config.yaml",
    env_prefix="MYAPP_",
    data_dir="~/.myapp-data",
)

print(config.get("llm.provider"))

Secrets Management

from roshni.core.secrets import SecretsManager, EnvProvider, YamlFileProvider

manager = SecretsManager(providers=[
    EnvProvider("MYAPP_"),
    YamlFileProvider("~/.myapp/secrets.yaml"),
])

api_key = manager.get("trello.api_key")
all_trello = manager.get_namespace("trello")

Financial Calculators

from roshni.financial.calculators import MortgageTerms, calculate_monthly_payment

terms = MortgageTerms(
    balance=500_000,
    current_rate=0.065,
    is_interest_only=False,
    remaining_term_years=30,
)

payment = calculate_monthly_payment(terms)

Health Data Collection

from roshni.health.collector import HealthCollector, BaseCollector
from roshni.health.models import DailyHealth

class MyCollector(BaseCollector):
    name = "my_tracker"

    def collect(self, start_date, end_date):
        # Fetch from your data source
        return [DailyHealth(date=start_date, steps=10000, sleep_hours=7.5)]

Optional Dependencies

Extra Installs Use case
health pandas, requests Health data pipelines
fitbit fitbit, requests-oauthlib Fitbit API collector
journal sentence-transformers, scikit-learn Journal embeddings + search
journal-faiss faiss-cpu FAISS vector backend
journal-chroma chromadb ChromaDB vector backend
financial pandas Financial data analysis
financial-full yfinance, duckdb, cvxpy Market data + portfolio optimization
llm litellm Multi-provider LLM abstraction
agent litellm AI agent framework
agent-langchain langchain, langchain-core LangChain agent integration
gateway-telegram python-telegram-bot, apscheduler Telegram bot gateway
google gspread, google-api-python-client, etc. Google API integrations
storage-gcs google-cloud-storage GCS storage backend

Development

git clone https://github.com/uabbasi/roshni.git
cd roshni
uv sync --extra dev

# Run tests
uv run pytest tests/

# Lint + format
uv run ruff check . --fix && uv run ruff format .

# Type check
uv run mypy src/roshni/

License

Apache 2.0

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

roshni-0.1.0.tar.gz (81.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roshni-0.1.0-py3-none-any.whl (80.3 kB view details)

Uploaded Python 3

File details

Details for the file roshni-0.1.0.tar.gz.

File metadata

  • Download URL: roshni-0.1.0.tar.gz
  • Upload date:
  • Size: 81.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for roshni-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d88fdbb7a96f93310256c81833958e0b32a50a63bb5ef3a5b91c6c4b676418fa
MD5 2649db7e4e7f5d3922a27229de3a78cb
BLAKE2b-256 8e31abe8ece3b674766ef2aa454a95e9dc454ea5b2e1cc5ad3c4599465bcb9ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for roshni-0.1.0.tar.gz:

Publisher: publish.yml on uabbasi/roshni

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file roshni-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: roshni-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 80.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for roshni-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9a8f659d81b1eca6e443159c1fb3190836c0c971623c9ca39e3572341ae3b65
MD5 9ee30d8b2f9c2b0f0880612e26d54dd3
BLAKE2b-256 374f27b9a7e742250ebe7d51b02576644b02ee132a0ced75dd0b58a6c4078a69

See more details on using hashes here.

Provenance

The following attestation bundles were made for roshni-0.1.0-py3-none-any.whl:

Publisher: publish.yml on uabbasi/roshni

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page