TL;DR: Парсер банковских выписок — это библиотека Python с открытым исходным кодом, которая анализирует шесть форматов банковских выписок (CAMT.053, PAIN.001, CSV, OFX, QFX, MT940) в кадры данных pandas. 100 % локальная обработка, редактирование PII по умолчанию, пропускная способность 27 000+ транзакций/с.
Парсер банковских выписок — это библиотека Python с открытым исходным кодом, которая анализирует банковские выписки из шести форматов в структурированные DataFrames pandas. Вся обработка происходит локально — отсутствие сетевых вызовов, детерминированный вывод и автоматическое редактирование личных данных.
Для кого это?
- Команды казначейства, переходящие с MT940 на CAMT.053, которым нужен синтаксический анализатор, который обрабатывает как старые, так и новые форматы во время перехода.
- Разработчики финансовых технологий создают конвейеры выверки, отчетности или учета, которым нужна единая зависимость вместо объединения mt940 + ofxparse + пользовательской логики CSV.
- Группы обеспечения соответствия, которым требуется редактирование личных данных по умолчанию и готовые к аудиту детерминированные выходные данные, которые никогда не отправляют данные во внешние службы. – Любой, кто отказывается отправлять конфиденциальные финансовые данные стороннему SaaS-сервису, хотя с этой задачей может справиться местный инструмент с открытым исходным кодом.
Поддерживаемые форматы
| Формат | Стандартный | Типы файлов | Класс парсера |
|---|---|---|---|
| CAMT.053 | Заявление банка к клиенту ISO 20022 | .xml |
CamtParser |
| БОЛЬ.001 | Инициирование кредитного перевода ISO 20022 | .xml |
Pain001Parser |
| CSV-файл | Общий банковский экспорт | .csv |
CsvStatementParser |
| ОФКС | Открытая финансовая биржа | .ofx |
OfxParser |
| QFX | Ускорить финансовый обмен | .qfx |
QfxParser |
| МТ940 | Стандарт СВИФТ | .mt940, .sta |
Mt940Parser |
Все форматы создают нормализованные кадры данных pandas с согласованными именами столбцов, что делает последующую обработку независимой от формата.
Ключевые возможности
- Автоопределение формата:
detect_statement_format()идентифицирует формат;create_parser()создает экземпляр правильного парсера. - Потоковый анализ: обработка больших файлов (более 50 МБ, более 50 тысяч транзакций) с ограниченной памятью с использованием
parse_streaming(). - Параллельная обработка: анализ нескольких файлов одновременно
parse_files_parallel()с помощью ProcessPoolExecutor. - Дедупликация: обнаружение точных дубликатов и предполагаемых совпадений с объяснимыми показателями достоверности.
- Разбор в памяти:
from_string()иfrom_bytes()для рабочих процессов SFTP и API без дискового ввода-вывода. - Безопасная обработка ZIP:
iter_secure_xml_entries()с ограничениями степени сжатия, ограничениями размера записи и отклонением зашифрованной записи. - Экспорт: CSV, JSON, Excel (
.xlsx) и дополнительные фреймы данных Polars.
Безопасность и конфиденциальность
- Редактирование идентификационных данных: имена, номера IBAN и адреса по умолчанию маскируются в выходных данных CLI. Примите участие с помощью
--show-pii. - Защита XXE: при синтаксическом анализе XML используются
resolve_entities=False,no_network=True,load_dtd=False. - Защита от ZIP-бомбы: ограничения степени сжатия (по умолчанию 100:1), ограничение размера записи (10 МБ), отклонение зашифрованной записи.
- Предотвращение обхода пути: черный список опасных шаблонов и разрешение символических ссылок.
- Безопасность цепочки поставок: зависимости с хеш-блокировкой SHA-256, CycloneDX SBOM, аттестация происхождения сборки.
Производительность
| Метрика | Ценить |
|---|---|
| CAMT.053 пропускная способность | 27 000+ транзакций/с |
| Пропускная способность PAIN.001 | 52 000+ транзакций/с |
| Задержка каждой транзакции (CAMT) | 37 микросекунд |
| Задержка каждой транзакции (PAIN.001) | 19 микросекунд |
| Время первого результата | < 2 мс |
| Масштабирование памяти (1K-50K tx) | Постоянный (потоковый) |
| Тестовое покрытие | 100% покрытие филиалов |
| Тесты | 467 в 29 тестовых файлах |
Начать строительство
[Начало работы с установкой и примерами ❯][01]
[01]: /getting-started/index.html «Начало работы» «Репозиторий GitHub»