Skip to main content

pain001-loader-xlsx logo

pain001-loader-xlsx

Load Excel payment records through the pain001 plugin contract.

Build Registry Docs OpenSSF Scorecard License: Apache-2.0 OR MIT Python 3.10 or newer


Contents

Getting started

The pain001-loader-xlsx ecosystem

Library reference

Operational


Install

As a Python library

python -m pip install pain001-loader-xlsx

Published packages and development checkouts are distinct. Test unreleased changes on this companion's development branches against the matching core branch. Versions track core 0.0.x releases.


Requirements

Python 3.10 or newer. CI tests 3.10–3.14 on Linux. See toolchain policy; no distro-system-Python claim is made.


Quick Start

pain001 plugins list --kind loader --json
pain001 -t pain.001.001.03 -d payments.xlsx -o output

Supply payments.xlsx with core template column names; examples/ creates synthetic workbooks. -o specifies an output directory, not a filename.


The pain001-loader-xlsx ecosystem

This independently installed companion delegates payment behavior to core. Coordinated versioning does not imply branch changes have been released.

Component Purpose Use case
pain001 Generation and validation Shared contracts and XML engine

Capabilities at a glance

Area Capability Status
Integration Excel loading and streaming Test-gated companion package

Ecosystem comparison

This matrix describes the repository's scope, not an independently benchmarked comparison with competitors.

Project Generate payment XML Real settlement Synthetic bank replies
pain001-loader-xlsx Delegates to core No Not a bank service

See docs/COMPARISON.md for the evidence and complete matrix.


Benchmarks

CI smoke-runs benchmarks. No hardware-independent throughput or latency promise is made; use the generated run report for measurements.

Scenario Result Environment
Adapter operations Run-specific Python, hardware and dependency versions recorded per run

See docs/BENCHMARKS.md for methodology and full results.


Features

XlsxLoader implements AbstractLoader via the pain001.loaders entry point. It reads .xlsx/.xlsm, first sheet only, row 1 as headers. Read-only, data-only openpyxl access returns cached formula values, which can be stale or absent; no formulas or macros are evaluated.

Numeric IBAN cells are rejected with column-specific Text-format guidance. Text-valued IBAN cells are accepted even with General formatting. Excel date, time and datetime objects are rejected; use ISO-8601 text. Formatting a damaged identifier as Text cannot restore lost digits: recover the source value. Streaming yields bounded chunks and workbooks close on errors.


Configuration

Install alongside core for extension dispatch. XlsxLoader.load(path) returns LoaderResult; load_streaming(path, chunk_size) yields chunks. Refer to core's generated CLI help for generation flags.


Examples

Run the self-checking scripts under examples/. Tests cover valid and malformed inputs and integration with the core contract.


When not to use pain001-loader-xlsx

No legacy .xls, multi-sheet merging, formula evaluation or identifier repair. Convert legacy files explicitly and preserve account values as text at source. This is a payment-record adapter, not a general spreadsheet engine.


Development

python -m pip install -e '.[dev]'
make check
python scripts/render_readme.py --check
python benches/bench_load_xlsx.py --quick

Coverage is gated at 100% line and branch. See CONTRIBUTING.md and DEVELOPMENT.md. README is generated from the canonical layout and docs/readme-values.json; CI rejects drift.


Security

Read-only workbook loading does not run macros or evaluate formulas. Numeric IBAN and temporal-cell guards reject known spreadsheet coercions. Loading a workbook does not prove its accounts, amounts or bank rules are correct.

Report vulnerabilities according to SECURITY.md.


Documentation

What is pain.001? · User manual · API reference · Developer guide · Family map


Stability guarantees

Versions advance in coordinated 0.0.1 steps with core. The maintainer opens releases. Contract and output changes need compatibility review. No stronger platform or stability guarantee is implied.


License

Dual-licensed under Apache-2.0 OR MIT, at your option. See LICENSE. Dependencies retain their own licences.

Metadata

Release files for pain001-loader-xlsx 0.0.72

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

Source distribution (sdist)

Source distribution for pain001-loader-xlsx 0.0.72
File Size Uploaded
pain001_loader_xlsx-0.0.72.tar.gz 73.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pain001-loader-xlsx 0.0.72
File Interpreter ABI Platform
pain001_loader_xlsx-0.0.72-py3-none-any.whl Python 3 none any Details

Total release size: 90.1 kB

Release files / pain001_loader_xlsx-0.0.72.tar.gz

Download URL pain001_loader_xlsx-0.0.72.tar.gz
Size 73.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fbe3e16a610fa978bf72107b7c8a851e43576219cda1ff5af32cc87ef55586e6
BLAKE2b-256 checksum
How to use checksums
d11aaf399b0300f52c9282ff3db1a70adc6e6b8f8e22f7921f5d2c29e5252e6f
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 Sep 28, 2026.

Transparency log

Release files / pain001_loader_xlsx-0.0.72-py3-none-any.whl

Download URL pain001_loader_xlsx-0.0.72-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
785bfda21f1ecf39de909b3a16178c920256d96decd3f485339a96cf3139b776
BLAKE2b-256 checksum
How to use checksums
6972b2b291a4fbabee8814758d3eac98b0203c77cb35a29633ee7ce4347a7486
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 Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.72 This release

2 release files

0.0.71

2 release files

0.0.70

2 release files

0.0.69

2 release files

0.0.68

2 release files

0.0.67

2 release files

0.0.66

2 release files

0.0.65

2 release files

0.0.63

2 release files

0.0.62

2 release files

0.0.61

2 release files

0.0.54

2 release files

0.0.53

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