Typed sync and async tools for financial market data research
Project description
tvfinance
tvfinance is a typed, async-first Python toolkit for financial market data research. One domain implementation powers synchronous Python, native async Python, CLI, and optional MCP interfaces.
Python 3.10 through 3.14 are supported.
Features
- Symbol search, quote snapshots, batch quotes, live quote updates, and screeners.
- Historical OHLCV bars with configurable resolution and adjustment.
- Option-series discovery and automatically selected option chains.
- Economic, earnings, revenue, dividend, and IPO calendars.
- News metadata, optional article bodies, and Markdown output.
- Company profile, financials, forecasts, technicals, bonds, ETFs, holdings, filings, and community ideas.
- Ticker, Tickers, AsyncTicker, and AsyncTickers facades.
- Typed immutable models, strict validation, retry, cache, and structured errors.
- Optional persistent SQLite TTL/LRU cache with no additional dependency.
Installation
pip install tvfinance
pip install "tvfinance[mcp]"
No MCP dependency is imported by the base package.
Quick start
import tvfinance
quote = tvfinance.quote("NASDAQ:AAPL")
bars = tvfinance.history("NASDAQ:AAPL", resolution="1D", count=30)
profile = tvfinance.profile("NASDAQ:AAPL")
Native async calls live in tvfinance.aio:
from tvfinance import aio
quote = await aio.quote("NASDAQ:AAPL")
bars = await aio.history("NASDAQ:AAPL", count=30)
Reuse connections for multiple operations:
from tvfinance import AsyncClient
async with AsyncClient() as client:
quote = await client.quote("NASDAQ:AAPL")
news = await client.news("NASDAQ:AAPL", fetch_body=True)
CLI and MCP entry points:
tvfinance --help
tvfinance history NASDAQ:AAPL --count 30
tvfinance-mcp
Development
uv sync --group dev
uv run ruff format .
uv run ruff check .
uv run mypy src tests
uv run pytest
uv build
Status
Version 26.0.0 is the first production release of the rebuilt package. Provider endpoints are unofficial and may change. This project is for research and does not provide financial advice. The project was substantially created with LLM assistance; read the AI disclosure before use or contribution.
Project details
Release history Release notifications | RSS feed
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 tvfinance-26.0.0.tar.gz.
File metadata
- Download URL: tvfinance-26.0.0.tar.gz
- Upload date:
- Size: 214.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48ab2ce21aece7a227cdecb61451db3a6f46333965e91a3fa2d5bcd9edd1e9ef
|
|
| MD5 |
f2fa52fe4ba1c96c7ddada6787d91995
|
|
| BLAKE2b-256 |
5200479197fe035e411382c3f3860353969671a1672f69d860c26ac2e992496c
|
File details
Details for the file tvfinance-26.0.0-py3-none-any.whl.
File metadata
- Download URL: tvfinance-26.0.0-py3-none-any.whl
- Upload date:
- Size: 37.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab83bba841158c63713dbe945333aff0f1c7845f65b00cb25cbea581638ac7a4
|
|
| MD5 |
77a2fe2fb704dbc463346f2df9085c50
|
|
| BLAKE2b-256 |
7c31a979d9f758cf6549ec832a929f7c1e115a54b2ca395cb373180d56657962
|