Skip to main content

Finkovsky SDK — Python

Typed Python client for the Finkovsky API — technical analysis, equity data, Taiwan market, and economic indicators.

pip install finkovsky

Requires Python 3.10+.

Three Ways to Use

1. Agent / LLM tool call (synchronous)

from finkovsky import Client, CreditError, RateLimitError

fk = Client(api_key="sk-...")  # or set FINKOVSKY_API_KEY

try:
    result = fk.ta.analyze(symbol="AAPL")
    print(result)
except CreditError as e:
    print(f"out of credits: {e.remaining}/{e.required}")
except RateLimitError as e:
    print(f"slow down: retry after {e.retry_after}s")

See examples/agent_tool_wrapping.md for framework-specific wrapping patterns.

2. Notebook / quantitative research

from finkovsky import Client
from finkovsky.pandas import to_dataframe

fk = Client()
df = to_dataframe(fk.tw.ohlcv(symbol="2330", days=90))
df["close"].plot()

Install the pandas extra: pip install 'finkovsky[pandas]'.

3. Async backend service

import asyncio
from finkovsky import AsyncClient

async def main():
    async with AsyncClient() as fk:
        result = await fk.ta.analyze(symbol="AAPL")
        print(result)

asyncio.run(main())

Authentication

  • Client(api_key="sk-...") — explicit key.
  • Client() — reads FINKOVSKY_API_KEY; raises AuthError if neither is set.
  • Client(api_key="sk-...", base_url="https://staging.example.com") — override for staging/self-hosted deployments.

Error Hierarchy

Exception HTTP trigger Meaning
AuthError 401, 403, missing key Credentials need fixing.
CreditError 402 Out of credits; carries remaining / required.
RateLimitError 429 Too many requests; carries retry_after.
APIError other 4xx, 5xx Carries status_code, body, request_id.
ValidationError client-side Response could not be parsed into the expected schema.

Endpoint Reference

All routes are available via client.<namespace>.<method>(...). The generated typed surface lives in src/finkovsky/_facade.py.

Development

cd sdk/python
pip install -e '.[dev]'
./scripts/gen.sh          # regenerate from a running API
./scripts/gen.sh --check  # drift check
pytest -m "not integration"

License

MIT — same as the parent repository.

Metadata

Release files for finkovsky 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for finkovsky 0.5.0
File Size Uploaded Provenance
finkovsky-0.5.0.tar.gz 69.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for finkovsky 0.5.0
File Interpreter ABI Platform
finkovsky-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 289.0 kB

Release files / finkovsky-0.5.0.tar.gz

Download URL finkovsky-0.5.0.tar.gz
Size 69.0 kB
Tags Source
SHA-256 checksum
How to use checksums
06bbc7282ec9f9629abd8cf788b4c58a643d31643f78ac1e99b67865511c8fde
BLAKE2b-256 checksum
How to use checksums
32ea021a759dfbf17e7ce3709b6bd45c3d89876edde819652ac79b25cb58c5a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / finkovsky-0.5.0-py3-none-any.whl

Download URL finkovsky-0.5.0-py3-none-any.whl
Size 219.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
059994d915d35b9a0852043c41c4b2431dfc1de6677c6b7017c064a8b562a197
BLAKE2b-256 checksum
How to use checksums
031f09e9b42cd3ee937eeb6e825197fddd42f5685752e4e6c8e14e47df15122f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Security for finkovsky 0.5.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page