finlens — Dữ liệu chứng khoán Việt Nam cho Python
Thư viện Python lấy dữ liệu thị trường chứng khoán Việt Nam — giá cuối ngày
và trong phiên, khớp lệnh từng lệnh (tick-by-tick), dòng tiền theo nhóm nhà đầu
tư, báo cáo tài chính và danh mục mã — trả về thẳng dưới dạng
pandas.DataFrame.
Phủ HOSE (HSX), HNX và UPCOM: 1.645 cổ phiếu và chứng chỉ quỹ, 632 chứng
quyền có bảo đảm, hợp đồng phái sinh VN30F1M, và các chỉ số VNINDEX, VN30,
HNX-INDEX, UPCOM-INDEX.
Python library for Vietnam stock market data — daily and intraday OHLCV, tick-by-tick trades, foreign investor flows, financial statements. Covers HOSE, HNX and UPCOM. Returns pandas DataFrames.
pip install finlens
import finlens
client = finlens.client(api_key="flk_...") # hoặc đặt biến FINLENS_API_KEY
df = client.eod.stock.ohlcv("HPG,VCB,FPT", start="2026-01-01", end="2026-01-05")
print(df)
# symbol date open high low close volume
# 0 FPT 2026-01-05 94.40 94.40 91.93 93.71 7129300.0
# 1 HPG 2026-01-05 23.57 23.70 22.94 23.17 59427911.0
# 2 VCB 2026-01-05 ...
Giá ở đây tính bằng nghìn đồng — 23.17 nghĩa là 23.170 VND.
Mục lục
- Vì sao dùng finlens
- Cài đặt và khoá API
- Lấy được những dữ liệu gì
- Đơn vị — đọc trước khi tính toán
- Tra cứu nhanh
- Xử lý lỗi
- Async
- Câu hỏi thường gặp
Vì sao dùng finlens
Trả về pandas.DataFrame trần, không phải wrapper. Ghi được to_parquet,
nối được pd.concat, dùng được mọi tutorial pandas bạn từng đọc.
Nhiều mã trong một request. ohlcv("HPG,VCB,FPT,...") với 50 mã là một
lời gọi HTTP chứ không phải 50 lời gọi tuần tự.
Đơn vị được khai báo, không phải đoán. Mỗi frame mang theo
df.attrs["finlens"]["units"]. Giá cổ phiếu Việt Nam thường ghi bằng nghìn
đồng còn chứng quyền bằng đồng — nhầm chỗ này sai đúng 1000 lần và không
có lỗi nào báo. Thư viện tách chúng thành các namespace riêng nên một lời gọi
không bao giờ trả về bảng trộn hai đơn vị.
Kết quả rỗng vẫn đúng cột, đúng kiểu. Ngày thị trường nghỉ, df["close"]
vẫn chạy — không KeyError.
Type hint đầy đủ, docstring tiếng Việt. Autocomplete và help() hoạt động;
mypy --strict chạy sạch.
Cài đặt và khoá API
pip install finlens
Yêu cầu Python 3.11+ và pandas 3.0+.
Lấy khoá API tại finlens.vn. Khoá có dạng flk_....
import finlens
# Cách 1 — truyền thẳng
client = finlens.client(api_key="flk_...")
# Cách 2 — biến môi trường FINLENS_API_KEY (khuyến nghị)
client = finlens.client()
# Dùng như context manager để đóng kết nối gọn gàng
with finlens.client() as client:
df = client.eod.stock.ohlcv("HPG")
Tạo client không chạm mạng — an toàn để đặt ở cell đầu notebook hoặc trong
__init__ của một lớp.
client.whoami() # gói dịch vụ, hạn mức, ngày hết hạn
client.status() # trạng thái service (không cần khoá)
Lấy được những dữ liệu gì
Giá cuối ngày (EOD)
client.eod.stock.ohlcv("HPG", start="2020-01-01", interval="1w")
client.eod.index.ohlcv("VNINDEX")
client.eod.derivative.ohlcv("VN30F1M")
client.eod.warrant.ohlcv("CHPG2628")
client.eod.sector.ohlcv("8355") # chỉ số ngành ICB
Cổ phiếu có từ 2007, chỉ số ngành từ 2000. interval nhận 1d, 1w,
1mo, 3mo, 6mo, 1y — gộp nhóm chạy ở server.
Giá cổ phiếu mặc định đã điều chỉnh quyền; thêm adjusted=False để lấy giá
thô đúng như phiên hôm đó.
Trong phiên và tick-by-tick
client.intraday.stock.ohlcv("HPG", interval="5min")
client.intraday.stock.ticks("HPG", date="2026-08-03") # từng lệnh khớp
client.intraday.stock.net_active_value("HPG", interval="1h") # mua/bán chủ động
Tick có từ 2022. interval trong phiên: 1min, 5min, 15min, 30min,
1h, 4h.
Cột side của tick có ba giá trị: buy (bên mua nâng giá chạm bên bán),
sell (bên bán hạ giá chạm bên mua), và auction (khớp lệnh định kỳ ATO/ATC).
Phiên định kỳ không có bên chủ động nên xếp nó vào mua hay bán đều sai — nó
chiếm 1,4%–8,6% khối lượng tuỳ mã, quá lớn để giấu.
ticks() lấy một mã, một phiên mỗi lần gọi: một phiên phái sinh sôi động là
hơn 90.000 dòng.
Dòng tiền theo nhóm nhà đầu tư
client.eod.stock.investor.flow("HPG", group="foreign")
client.eod.stock.investor.breakdown("HPG") # tất cả các nhóm
client.eod.sector.investor.flow("8355") # theo ngành ICB
| Nhóm | Có từ | Phạm vi |
|---|---|---|
foreign |
2010 | cả ba sàn |
foreign_individual, foreign_institutional |
2024 | HOSE |
local_individual, local_institutional |
2024 | HOSE |
proprietary (tự doanh) |
2022 | cả ba sàn |
Bốn nhóm chi tiết cộng lại bằng 0 — mua ròng của nhóm này là bán ròng của
nhóm kia. foreign và proprietary đến từ nguồn khác và nằm trên trục riêng;
meta.additive_groups trong response nói rõ nhóm nào cộng được với nhau.
Báo cáo tài chính
client.financials.statement("HPG", kind="balance_sheet", period="quarterly")
client.financials.periods("HPG") # kỳ nào có số liệu
client.financials.line_items(com_type="NH", kind="balance_sheet")
Có từ 2004. Bốn loại hình doanh nghiệp (CT phi tài chính, NH ngân hàng,
CK chứng khoán, BH bảo hiểm) có cây chỉ tiêu khác nhau, nhưng frame ở dạng
long và mỗi dòng mang company_type của chính nó — nên
statement(["HPG", "VCB"]) chạy được dù hai mã khác loại hình.
Tra cứu danh mục
client.meta.symbols() # 1.645 mã
client.meta.symbols(exchange="HOSE") # 431 mã
client.meta.symbols(icb="8300") # toàn ngành ngân hàng
client.meta.symbols(kind="fund") # 24 chứng chỉ quỹ niêm yết
client.meta.sectors(level=2) # 19 ngành ICB cấp 2
client.meta.sectors(level=4) # 106 ngành ICB cấp 4
client.meta.warrants(underlying="HPG") # chứng quyền của HPG
Tham số icb= nhận cả mã cấp 2 lẫn cấp 4 — bạn không cần biết mã mình cầm
thuộc cấp nào.
# Lấy danh sách mã để lặp
tickers = client.meta.symbols(exchange="HOSE")["symbol"].tolist()
Đơn vị — đọc trước khi tính toán
Đây là nguồn lỗi số một khi làm việc với dữ liệu chứng khoán Việt Nam, và nó sai âm thầm: không exception nào, chỉ là một con số sai.
| Loại | Cột giá | Khối lượng | Giá trị tiền |
|---|---|---|---|
| Cổ phiếu, ETF, chứng chỉ quỹ | nghìn VND (22.3 = 22.300 đ) |
cổ phiếu | VND |
| Chỉ số | điểm chỉ số | cổ phiếu | — |
| Phái sinh | điểm chỉ số | hợp đồng | VND |
| Chứng quyền | VND thô | chứng quyền | VND |
Luôn đọc thay vì giả định:
df.attrs["finlens"]["units"] # {'close': 'kVND', 'volume': 'share', ...}
df.attrs["finlens"]["price_basis"] # 'adjusted' hoặc 'raw'
df.attrs["finlens"]["as_of"] # mốc nước của dữ liệu
⚠️ DataFrame.attrs không sống sót qua pd.concat hay merge của pandas.
Đọc đơn vị trước khi ghép frame.
Tra cứu nhanh
| Bạn muốn | Gọi |
|---|---|
| Giá VNINDEX theo tháng | client.eod.index.ohlcv("VNINDEX", interval="1mo") |
| Khối ngoại mua ròng HPG | client.eod.stock.investor.flow("HPG") |
| Từng lệnh khớp một phiên | client.intraday.stock.ticks("HPG", date="2026-08-03") |
| Cân đối kế toán theo quý | client.financials.statement("HPG", kind="balance_sheet", period="quarterly") |
| Mọi mã ngành ngân hàng | client.meta.symbols(icb="8300") |
| Chứng quyền còn hạn | client.meta.warrants() |
| Giá thô, chưa điều chỉnh | client.eod.stock.ohlcv("HPG", adjusted=False) |
Mọi phương thức đều nhận refresh=True để bỏ qua cache, và on_error="raise"
để một mã lỗi làm cả lời gọi thất bại thay vì chỉ cảnh báo.
Xử lý lỗi
Mọi lỗi kế thừa finlens.FinLensError và mang theo .code, .request_id,
.doc_url.
import finlens
try:
df = client.eod.stock.ohlcv("HPG")
except finlens.RateLimitError as e:
print(f"Chờ {e.retry_after} giây")
except finlens.DailyQuotaExceededError as e:
print(f"Hết hạn mức ngày, mở lại lúc {e.resets_at}")
except finlens.InvalidSymbolError:
print("Mã không tồn tại")
except finlens.FinLensError as e:
print(f"{e.code}: {e}")
Cây ngoại lệ:
FinLensError
├── AuthError InvalidApiKeyError · ApiKeyExpiredError · AccountExpiredError
├── TierError DatasetNotInTierError · SymbolNotInTierError
├── QuotaError RateLimitError · DailyQuotaExceededError
├── ValidationError InvalidSymbolError · InvalidDateRangeError · InvalidIntervalError
├── TransportError ConnectionFailedError · TlsVerificationError · RequestTimeoutError
└── DataError SchemaMismatchError · NoDataError
ValidationError cũng kế thừa ValueError, nên except ValueError vẫn bắt được.
Một mã lỗi không làm mất các mã còn lại. Mặc định on_error="warn": bạn
nhận về những mã thành công kèm một cảnh báo, chi tiết ở
df.attrs["finlens"]["failed"].
Async
Mọi thứ có bản async với cùng chữ ký:
import asyncio
import finlens
async def main():
async with finlens.AsyncClient(api_key="flk_...") as client:
df = await client.eod.stock.ohlcv("HPG,VCB")
asyncio.run(main())
Bản đồng bộ và bất đồng bộ dùng chung một lõi, nên không có chuyện một bên được sửa bug còn bên kia thì không.
Câu hỏi thường gặp
Giá cổ phiếu tính bằng đơn vị gì?
Nghìn đồng. 22.3 nghĩa là 22.300 VND. Chứng quyền thì ngược lại — VND thô.
Luôn đọc df.attrs["finlens"]["units"].
Dữ liệu có từ năm nào? Giá cuối ngày cổ phiếu từ 2007, chỉ số ngành từ 2000, khối ngoại từ 2010, báo cáo tài chính từ 2004, tick trong phiên từ 2022. Nhóm nhà đầu tư chi tiết (cá nhân/tổ chức, trong nước/nước ngoài) từ 2024 và chỉ có ở HOSE.
Lấy được dữ liệu của phiên đang chạy không?
Được. Dữ liệu trong phiên cập nhật liên tục và meta.as_of cho biết mốc nước.
Lưu ý giá trong phiên là giá thô, chưa điều chỉnh quyền — khác với EOD.
Lấy được bao nhiêu mã một lần?
Tuỳ gói dịch vụ, xem client.limits(). Thư viện tự chia nhỏ và gọi song song,
bạn cứ truyền cả danh sách. Riêng ticks() là một mã một phiên.
Có sổ lệnh (order book) không?
Không. ticks() trả lệnh đã khớp, không phải độ sâu sổ lệnh. Giá đặt và
khối lượng chờ theo bậc không có trong nguồn dữ liệu.
Có dữ liệu quỹ mở, trái phiếu, hàng hoá không?
Chưa. Chứng chỉ quỹ niêm yết (kind="fund") thì có; quỹ mở, NAV, trái phiếu
và hàng hoá thì không.
Cache hoạt động thế nào?
Tự động. Dữ liệu lịch sử cache 7 ngày, phiên gần nhất 60 giây, danh mục và cây
ngành 24 giờ. refresh=True để bỏ qua, client.cache.stats() để xem.
Chạy sau proxy doanh nghiệp hoặc phần mềm diệt virus?
Nếu gặp TlsVerificationError, trỏ tới CA bundle của tổ chức bạn:
finlens.client(ca_bundle="/đường/dẫn/ca.pem") hoặc đặt biến môi trường
FINLENS_CA_BUNDLE.
Nâng cấp từ 0.1.x
Phiên bản 1.0 là bản viết lại và có thay đổi phá vỡ tương thích. Danh sách đầy đủ nằm ở changelog. Đáng chú ý nhất:
- Tên cột dùng
snake_case—Datethànhdate. interval="1M"bị từ chối vì nhập nhằng giữa một tháng và một phút; dùng1mohoặc1min.net_active_value()trước đây trả ba đơn vị khác nhau dưới cùng một tên cột; nay luôn là VND và cómeta.value_unitkhai rõ.- Mọi tham số sau mã chứng khoán là keyword-only.
Tài liệu và hỗ trợ
- Tài liệu: docs.finlens.vn/python-sdk
- Changelog: docs.finlens.vn/python-sdk/changelog
- Trang chủ: finlens.vn
- Hỗ trợ: client@finlens.vn
Khi báo lỗi, kèm theo finlens.build_info() và request_id trong thông báo lỗi
— hai thứ đó cho biết chính xác bản build nào và request nào.
>>> finlens.build_info()
{'version': '1.0.1', 'commit': 'a1b2c3d', 'built_at': '...', 'cython': '3.2.9', ...}
Giấy phép
MIT — xem toàn văn giấy phép. File LICENSE cũng đi kèm trong gói.
Metadata
Release files for finlens 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 18.9 MB
Release files / finlens-1.0.1-cp314-cp314-win_amd64.whl
| Download URL | finlens-1.0.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 754.9 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b36913350ad5d1eeb290a4f63d2655a57fb1c2d4d1f9c8d6d03294588ab6568c
|
|
BLAKE2b-256 checksum How to use checksums |
3e3e6f42fd07b0b7a34d84cadb5cd92f67b7230daa646558acfe4c8c278cb6aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | finlens-1.0.1-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 849.1 kB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
6ef745c57f5f7a294d8ebc18aed80252a17d5dfa96e31ca4fa0fe164b1a58a80
|
|
BLAKE2b-256 checksum How to use checksums |
12c5a67af19496b9c0f2461575ff39e8aa2cf57963beeec69ce68acfcc19bc9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | finlens-1.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 845.2 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
315eb4af2df744eb0ce090c28f8e8fe793fa87a53b328f4e228e8d066ce3ef48
|
|
BLAKE2b-256 checksum How to use checksums |
dee422fc80682b801f887b2389759213aa6f1b84923a7acae1f8d9fc87ef0627
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | finlens-1.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 803.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
ffc077a54f7129f5541dd38844bfbeaa85bb232c605ab32ef3fe1de13b9470d7
|
|
BLAKE2b-256 checksum How to use checksums |
0d655e573bfe7f4017eaf7878a934214bd69408af4830576e1253f25a7a24006
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | finlens-1.0.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 730.4 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb1afec12d0b8085fc8d5e77c706b2f6df21e489e7240f25aa3873807e734001
|
|
BLAKE2b-256 checksum How to use checksums |
05e36df21c0ff9cbb9d9e5f5c6d40a7aa22c169f272e1030abe95e323c8cdab3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | finlens-1.0.1-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 755.8 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
a8a62065926b06d63f6bcac9b3f7f7684039a1acba1bf7155cf1f5a3a06b6f0c
|
|
BLAKE2b-256 checksum How to use checksums |
f596f5cb90f54953a3802ba1496b4492b7d5262e96f03f70f8d72e31f0cb4486
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp313-cp313-win_amd64.whl
| Download URL | finlens-1.0.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 737.8 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e0c84a20a3a87e3b85441b79fba452d7b350695c36e4139d037e2aa9a750d091
|
|
BLAKE2b-256 checksum How to use checksums |
9b714fa96791ce38895561994508253de6e1b3301c4c80f6ac20396eaa52b430
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | finlens-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 844.4 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b54d3723eee417961dea160430e6fb4e2a43f102085dcd3eeb2afb8ee913f266
|
|
BLAKE2b-256 checksum How to use checksums |
eed9eada471be87e621174d8483a1074c9caae35df50d88cd40ce6fb5f187d7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | finlens-1.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 841.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ec89b9a5d5cf9aaee018ff457821143e212721455c2aecd5da697ee66d701321
|
|
BLAKE2b-256 checksum How to use checksums |
ab6a18510b8c7beb71d45a32f86c5caa9b3f06a9cbd2f369d122d53c850a82c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | finlens-1.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 791.9 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0d3eb712766a8e6c73bc60dd9b0fc631dccfea360a72cda931a03de1f4665a83
|
|
BLAKE2b-256 checksum How to use checksums |
029ba8f63572bb7daeee8c9cb1bf50972d48ba93629aee925c8039f8197ed9c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | finlens-1.0.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 727.8 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fbdb8ef86cd2193c6c0dcd796df8e618b8eafa336bf632e13cfe2304504cc231
|
|
BLAKE2b-256 checksum How to use checksums |
9aba30074bbf4e7d13c41202b56e23e438af379dca801ced29993f204a889cf1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | finlens-1.0.1-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 753.8 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
d9973bd611bac7e5ada0faff30720534cb08d5ff6b93fdc5c6049f515fe109ff
|
|
BLAKE2b-256 checksum How to use checksums |
a808586f1acfb6eda690cc4fe49834c92e2efc4bdc9dfcb55cae0cc7e0695a56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp312-cp312-win_amd64.whl
| Download URL | finlens-1.0.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 744.9 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
21498e7bb50473077e1531fbccc02c6d7c521978d1cdcf3c78745c2e309ffc5d
|
|
BLAKE2b-256 checksum How to use checksums |
00d75a668d77a1af8ac90c0f5bdf1c3789266cce93b31642c542fcafe861ef02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | finlens-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 850.6 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
8a761feed376d3f94b658697125f8044ffb4a02db93d121755b4bbaa1fc007d6
|
|
BLAKE2b-256 checksum How to use checksums |
c46ce6894aaf1864f5589e703910a64e679b3bc73105815f0f1169b9b3fda383
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | finlens-1.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 847.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8691c2a481427a2179537b7b391e191aea27c49b97408594f3ca871b200aead6
|
|
BLAKE2b-256 checksum How to use checksums |
776055529e012514dda8be1418e85fe4017f4413408623a6ca6906357d0c15cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | finlens-1.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 797.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
12dabcfadff3310b54807ecea3ee1e5ceb418cf4d8066118354b54338a0743d2
|
|
BLAKE2b-256 checksum How to use checksums |
06da49c973f77de782d7d13e54cdccacc3d6af15a17521e63a4eae8385e3087a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | finlens-1.0.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 732.6 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb9b2475f56c3d1d53e5289d0c07dacabbfa822e54d2af8f9cfb7a4cf344176f
|
|
BLAKE2b-256 checksum How to use checksums |
c9e06596ea349bfcec5767d4f745cb842275aa3fd372f198e881f0efcf6e8aa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | finlens-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 756.0 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
e1f3f1d39258b329b5c15786b0c087e8d4fe083d88641424a652de6765513500
|
|
BLAKE2b-256 checksum How to use checksums |
29447aa6bf184b0243a734f38de285e45f7c5ba586f9eb4d0c304bcad073262b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp311-cp311-win_amd64.whl
| Download URL | finlens-1.0.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 763.5 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d2ec27a34cb62a96dc89eb3c3252105340702c76ba709d9d4af86958273c85df
|
|
BLAKE2b-256 checksum How to use checksums |
5cca63e3d38b217f4c3691a97332c9e0ae5e486999903da1d66c1ed16e35a011
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | finlens-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 839.6 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b2d46e9d54b5a1cad19aaf6e7b2af53b0dae875392ab3d06d62ff25f76cb0657
|
|
BLAKE2b-256 checksum How to use checksums |
f15f58d35628328e9c7e42e6a81a19fb5b62ceb46bad839fd3b96775bbdf38d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | finlens-1.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 837.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9e28f524e495955530c03cb82ebfd88f17c6ee9c26ec28efbc42159cc02dae78
|
|
BLAKE2b-256 checksum How to use checksums |
cf666ad5968e1c5c8ac256be2cf4f009fbe24535dc43033d478ab3d612ee4d74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | finlens-1.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 797.4 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
db3701e0dab64514334b1d04a3f0204d11ab714465dea71221334f19376e9898
|
|
BLAKE2b-256 checksum How to use checksums |
7460d73c84c4707d1189baaeda724f1dc7b1315b3f52adee58d27feaefe5246b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | finlens-1.0.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 731.9 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3c91a8038545ae353288e9b8a8ed86a52640960fa43839ad8e92863a255cb188
|
|
BLAKE2b-256 checksum How to use checksums |
51ccbd0b4fdaf22ac5bf6fe6d4fc2cc4c31a426df391db0793c6737f5b15e39e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / finlens-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | finlens-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 756.6 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
1897e54a393d62399d9a5475365789969ca1ef771542620a471f1d0b86b22381
|
|
BLAKE2b-256 checksum How to use checksums |
416492dbd650d2bb8e7f9164c200713fdb662e0b8daa40328fedd58229e9af38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency log