Skip to main content

Xfina Logo

Xfina (Python Bindings)

Crates.io PyPI npm

Xfina is a blazingly fast library for parsing Indian financial statements (Bank Accounts, Credit Cards, Mutual Funds) and international brokers (IBKR), written in Rust and exposed to Python via PyO3.

It converts raw PDFs, Excel files, and CSVs into structured, ReBIT-compliant JSON dictionaries in milliseconds.

Installation

pip install xfina

Quick Start

The Python bindings expose the same entry point as the Rust core. To keep the core parsing logic as pure functions without side-effects (like file I/O), the library requires raw bytes to be passed in rather than file paths.

Parsing a Credit Card Statement

import xfina

with open("statement.xls", "rb") as fh:
    data = fh.read()

# Hand over the bytes; the format is worked out from the content.
statement = xfina.parse(data, filename="statement.xls")

statement["format"]       # "ba-hdfc"
statement["category"]     # "bank_account"
statement["institution"]  # "HDFC Bank"
statement["detection"]    # how it was identified, plus the file's metadata
statement["validation"]   # the two-level validation report
statement["data"]         # the account, in the requested schema

# ReBIT output, or a pinned format that skips detection:
xfina.parse(data, schema="rebit")
xfina.parse(data, **{"as": "ba-hdfc"})

Failures raise xfina.XfinaParseError, which is where this differs from the JS binding: exceptions are the idiom here, so the same information arrives as attributes rather than in an error envelope.

try:
    xfina.parse(data, filename=name)
except xfina.XfinaParseError as e:
    if e.kind == "password_required":
        prompt_for_password(e.format)   # the format the filename suggested

The four functions

Function Purpose
parse(bytes, password=None, filename=None, modified_timestamp=None, **{"as": None}, schema=None) Identify and parse a statement.
detect(bytes, password=None, filename=None, modified_timestamp=None) Identify a statement without parsing it.
formats() Every format this build knows, with id, category, institution, containers and enabled.
version() The version of the parsers actually running.

Download files

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

Source Distribution

xfina-0.6.0.tar.gz (221.6 kB view details)

Uploaded Source

Built Distributions

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

xfina-0.6.0-cp38-abi3-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.8+Windows x86-64

xfina-0.6.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

xfina-0.6.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

xfina-0.6.0-cp38-abi3-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

xfina-0.6.0-cp38-abi3-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file xfina-0.6.0.tar.gz.

File metadata

  • Download URL: xfina-0.6.0.tar.gz
  • Upload date:
  • Size: 221.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xfina-0.6.0.tar.gz
Algorithm Hash digest
SHA256 fbd35512c8fe2cec00d04213a3de471ed2e5789092368669d234876f9786d354
MD5 60e0d8d33cd4a4efeebcc76e369f6854
BLAKE2b-256 e0d32e6dcbb2726c3585126f9f1063d35ded16fcc9454a3d296d28b6888a8611

See more details on using hashes here.

Provenance

The following attestation bundles were made for xfina-0.6.0.tar.gz:

Publisher: publish.yml on sakthipriyan/xfina

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

File details

Details for the file xfina-0.6.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: xfina-0.6.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xfina-0.6.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 11436569201d5697e1c7ff0b16ece2d7d3e06a95bc57b1b201221c9ea89237d4
MD5 5c03ed1ea2bfd65abaafa94bf0151ad0
BLAKE2b-256 b3994a3f0d285a1fe0da2e016c9ba2553bab2224e1480d4b233679085d14327e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xfina-0.6.0-cp38-abi3-win_amd64.whl:

Publisher: publish.yml on sakthipriyan/xfina

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

File details

Details for the file xfina-0.6.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xfina-0.6.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6557044137d1f376f8a754361b8398087dacb75867af89a49406b13fb1e90bf0
MD5 c044b87edd4ceee169167d3ea7beb093
BLAKE2b-256 0e45e0f4f9e08376d70f9afacf9f44408000ba1e78da53426a85dfa538b5899a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xfina-0.6.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on sakthipriyan/xfina

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

File details

Details for the file xfina-0.6.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xfina-0.6.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7a4db0c632aa0491484cf4daaf3dac286377d033b1dd8b07dba9beab3e69bf3b
MD5 3a583b52f4332db1a79ca2555954e54a
BLAKE2b-256 30968588143d565b6975b1b36b23ef405c0e608303c3d24787f69aa398365509

See more details on using hashes here.

Provenance

The following attestation bundles were made for xfina-0.6.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on sakthipriyan/xfina

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

File details

Details for the file xfina-0.6.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: xfina-0.6.0-cp38-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.8+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xfina-0.6.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e911b1e581c3c98a5d23af5027ce12f41d24193ecd1dbe2b56676ce6a9ca456
MD5 7049d66e15d8bbcf6340f0a6bc4990ef
BLAKE2b-256 78d4b88cd68bbadc672637d77aa4fb2de866ab139d21a507eecab390e1530dcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for xfina-0.6.0-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on sakthipriyan/xfina

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

File details

Details for the file xfina-0.6.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for xfina-0.6.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 11f56b92551a7c646faec1481b339bc828822837e62e129dad6d3f5d2cb76be3
MD5 672e18fa29b0cfabbf065cc55d084299
BLAKE2b-256 c6c1ce62c33d36a30aeba99550dc33e2d0b8e12aa2ba371c21f449041c551439

See more details on using hashes here.

Provenance

The following attestation bundles were made for xfina-0.6.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: publish.yml on sakthipriyan/xfina

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

Release history Release notifications | RSS feed

This release

0.6.0 This release

6 files

0.5.0

6 files

0.4.1

6 files

0.4.0

5 files

0.3.0

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

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