boilpayment
Single-install facade for boilpayment. Depends on all 13 boilpayment-*
distributions pinned to the exact version published alongside it (==0.1.0, not a range — a
mismatched internal version can never happen) and re-exports every one of them as a submodule, so
a project only installs and imports one distribution instead of thirteen.
Install
pip install boilpayment
Usage
Pick your module by submodule:
from boilpayment.core import resolve_policy, InMemoryLedger, InMemoryRepo, SystemClock, UuidIdGen
from boilpayment.lifecycle import upgrade, downgrade, cancel, reactivate
from boilpayment.credits import consume, topup
from boilpayment.refund import evaluate, execute
from boilpayment.usage import record, check
from boilpayment.webhook import receive, process, default_handlers
from boilpayment.notify import resend, smtp, slack
from boilpayment.cs import open_case, escalate
from boilpayment.postgres import PostgresRepo, PostgresLedgerStore, migrate
from boilpayment.stripe import StripeProvider
from boilpayment.toss import TossProvider
from boilpayment.portone import PortoneProvider
from boilpayment.polar import PolarProvider
Every submodule above (.core, .credits, .lifecycle, .refund, .usage, .webhook,
.notify, .cs, .postgres, .stripe, .toss, .portone, .polar) is a full, unfiltered
re-export of the corresponding boilpayment-* distribution — nothing is renamed or
dropped, and each has its own explicit __all__ mirroring the source distribution's public
surface.
The package root (from boilpayment import ..., no submodule) is narrower — see below.
Root export & name collisions
boilpayment (the bare root import) re-exports the full surface of
boilpayment_core (types, Policy, Clock/IdGen, period/money helpers, idempotency
helpers, in-memory reference implementations, logging) plus a curated set of the most-used entry
points from the five core operation modules:
| from | names |
|---|---|
| lifecycle | upgrade, downgrade, cancel, reactivate |
| credits | consume, topup |
| refund | evaluate, execute, on_external_refund |
| usage | record, check |
| webhook | receive, process, default_handlers |
Not re-exported at the root — every one of these is a deliberate exclusion, not an oversight:
-
The four provider adapters (
.stripe,.toss,.portone,.polar) — they export several same-named symbols with genuinely different shapes:normalize_failure,normalize_subscription,normalize_refund,map_event_type,to_normalized_event— defined by bothboilpayment_stripeandboilpayment_polar, with different signatures.CashReceiptType,CashReceiptStatus,CashReceipt— defined by bothboilpayment_tossandboilpayment_portone, with different shapes.
Re-exporting any two providers at the same root would silently shadow one implementation with the other depending on import order. Import providers from their own submodule.
-
.refund's ownproration_ratio(anddays_between/apply_rounding/weighted_avg_unit_price) —proration_ratiois a real collision withboilpayment_core's ownproration_ratio(already re-exported at the root via the core surface). The root always resolves to core's version; refund's copy is only reachable viaboilpayment.refund. -
.notify,.cs,.postgres— add-on/infra modules most projects don't touch. -
The rest of
.lifecycle(convert_trial,retry_on_version_conflict, thedunning,scheduler,periodsubmodules),.credits(grant_for_period,rollover_on_renewal,clawback,expire_due,notify_expiring),.usage(close_period,flush_outbox),.webhook(process_pending, http helpers, correlation-id helpers) — no collision, just kept off the root to keep it short. Pull these from their submodule.
Full contract: docs/ARCHITECTURE.md · docs/EDGE_CASES.md.
Metadata
Release files for boilpayment 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| boilpayment-0.2.0.tar.gz | 227.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| boilpayment-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 537.2 kB
Release files / boilpayment-0.2.0.tar.gz
| Download URL | boilpayment-0.2.0.tar.gz |
|---|---|
| Size | 227.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e99d9cb14f5247a55e2799a2af371161eafce3556817a5f7c5ae0c55203011ee
|
|
BLAKE2b-256 checksum How to use checksums |
6736a2a092602bb02e1d9f3aae41d6b4d6aaa245dcf8a93f3ba8943f9dd76ede
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / boilpayment-0.2.0-py3-none-any.whl
| Download URL | boilpayment-0.2.0-py3-none-any.whl |
|---|---|
| Size | 310.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8882c36e263da287b16c9e594171d272fd37b701e5a6830553f24baf63b474f
|
|
BLAKE2b-256 checksum How to use checksums |
296ba5fd0aea182890d81ef32366aee68726f6cd37fcb1e7697c51714cd8e909
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Security for boilpayment 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.