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

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.

Release files for pain001-loader-xlsx 0.0.71

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.71
File Size Uploaded
pain001_loader_xlsx-0.0.71.tar.gz 72.3 kB Details

Built distribution (wheel)

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

Total release size: 88.8 kB

Release files / pain001_loader_xlsx-0.0.71.tar.gz

Download URL pain001_loader_xlsx-0.0.71.tar.gz
Size 72.3 kB
Tags Source
SHA-256 checksum
How to use checksums
dbb25c395eb47c9701d078e11b5da31e9392d87cdc3006d6c14580262c8f81c7
BLAKE2b-256 checksum
How to use checksums
b1efe591064970b8916f4fa05e726437e4a6e18be0f219b58c5005f67229506a
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 26, 2026.

Transparency log

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

Download URL pain001_loader_xlsx-0.0.71-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3266e91df8e7c191a0a0cc1ec4e818a1b017d887bf03a76dee1e6450b30cd159
BLAKE2b-256 checksum
How to use checksums
fe40849a04536d57c7601efd11150afb4a496af287add17503b39feb81d911ee
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 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.71 This release

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