Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tvfinance-26.0.0.tar.gz (214.8 kB view details)

Uploaded Source

Built Distribution

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

tvfinance-26.0.0-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

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

Hashes for tvfinance-26.0.0.tar.gz
Algorithm Hash digest
SHA256 48ab2ce21aece7a227cdecb61451db3a6f46333965e91a3fa2d5bcd9edd1e9ef
MD5 f2fa52fe4ba1c96c7ddada6787d91995
BLAKE2b-256 5200479197fe035e411382c3f3860353969671a1672f69d860c26ac2e992496c

See more details on using hashes here.

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

Hashes for tvfinance-26.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab83bba841158c63713dbe945333aff0f1c7845f65b00cb25cbea581638ac7a4
MD5 77a2fe2fb704dbc463346f2df9085c50
BLAKE2b-256 7c31a979d9f758cf6549ec832a929f7c1e115a54b2ca395cb373180d56657962

See more details on using hashes here.

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