Skip to main content

Welcome to the statement-reader

About

Welcome to the official documentation for statement-reader — a Python library designed to help you extract and structure data from bank PDF statements.

Banking operations are often provided in PDF format, which is great for human readability but not ideal for further processing by computers. This library solves that problem by parsing unstructured PDF text into structured Python objects that can be easily analyzed, stored, or visualized.


Basic usage

import psycopg2
from statement_reader.parsers import SberParser
from statement_reader.models import Operation
from pypdf import PdfReader

data: list[Operation] = []

reader = PdfReader("example.pdf")
for page in reader.pages:
    raw_str = page.extract_text()
    data.extend(SberParser.parse_lines(str_=raw_str))

conn = psycopg2.connect(dsn="postgres://postgres:secretpassword@localhost:15432/postgres")
with conn.cursor() as c:
    c.execute("DELETE FROM public.stats")
    for operation in data:
        c.execute(
            f"""
                INSERT INTO public.stats (date_, time, category, income, remains, sum, weekday)
                VALUES (%(date)s, %(time)s, %(category)s, %(is_income)s, %(remains)s, %(sum)s, %(weekday)s);
            """, operation.model_dump()
        )
conn.commit()

Why Use statement-reader?

  • ✅ Extracts key operation fields: date, time, category, amount, balance, and more.
  • ✅ Supports income/expense classification based on the transaction pattern.
  • ✅ Automatically cleans up non-breaking spaces and commas for correct numeric parsing.
  • ✅ Returns structured Python objects for easy integration with other tools and libraries.
  • ✅ Designed for Sberbank statement lines, but extensible to other formats.

Getting Started

To get started, install the package:

pip install statement-reader

Usage

Use it to parse a line from a Sberbank statement:

from statement_reader.parsers import SberParser
line = "12.03.2024 14:22 456789 КАФЕ +100.00 12345.67" 
operation = SberParser.parse_main_line(line)
print(operation.model_dump())
#> {
#>  'date': '2024-03-12',
#>  'time': '14:22',
#>  'category': 'КАФЕ',
#>  'sum': 100.0,
#>  'remains': 12345.67,
#>  'is_income': True,
#>  'weekday': 2
#> }

API Reference

For full details about classes, methods, and parameters, check out the API reference.

Metadata

Release files for statement_reader 0.2.4

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

Source distribution (sdist)

Source distribution for statement_reader 0.2.4
File Size Uploaded
statement_reader-0.2.4.tar.gz 8.1 kB Details

Built distribution (wheel)

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

Total release size: 14.0 kB

Release files / statement_reader-0.2.4.tar.gz

Download URL statement_reader-0.2.4.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
db32db5592a6bdc63e0e2e8606ef38732d18409b19e62f6c20b7f26930bc994f
BLAKE2b-256 checksum
How to use checksums
1d475798d3e5005084dfcde9056f5591494b7ca3bf4782bf9cd4e97a7c52e093
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.25.4 CPython/3.13.5 Linux/6.14.0-24-generic

Release files / statement_reader-0.2.4-py3-none-any.whl

Download URL statement_reader-0.2.4-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
392950b70742af56d0cd185697e51640861cff92b7048e263b2c4554e81aff10
BLAKE2b-256 checksum
How to use checksums
e3f750f333e25a98ba601371e4ff98c46e1331c443cfe3a4dae66da55355a5bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.25.4 CPython/3.13.5 Linux/6.14.0-24-generic

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.1

2 release files

0.1.0

2 release files

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