Skip to main content

OBP Accounting SDK

Build status License Code coverage CodeQL PyPI

Description

Python SDK for the OBP Accounting Service.

Usage

The API provides the following main classes to be used asynchronously:

  • obp_accounting_sdk.AsyncAccountingSessionFactory
  • obp_accounting_sdk.AsyncOneshotSession

and the corresponding synchronous versions:

  • obp_accounting_sdk.AccountingSessionFactory
  • obp_accounting_sdk.OneshotSession

The factory class must be instantiated only once, and a new session can be obtained by calling the oneshot_session method used as a context manager:

subtype: ServiceSubtype = ...
proj_id: UUID = ...
user_id: UUID = ...
name: str | None = ...
estimated_count: int = ...
async with accounting_session_factory.oneshot_session(
    subtype=subtype,
    proj_id=proj_id,
    user_id=user_id,
    name=name,
    count=estimated_count,
) as acc_session:
    # actual logic
    acc_session.count = actual_count
    acc_session.name = actual_name

In the example above:

  • The reservation with the accounting service happens when entering the context manager.
  • The usage is sent to the accounting service when exiting the context manager, unless an exception is raised, because in this case we suppose that the actual business logic to be charged didn't get executed.
  • The value of estimated_count is used for reservation, and it's used also for usage unless a new value is assigned to acc_session.count.

Accounting session can be also used without the context manager:

subtype: ServiceSubtype = ...
proj_id: UUID = ...
user_id: UUID = ...
name: str | None = ...
estimated_instances: int = ...
instance_type: str = ...
instances: int = ...
duration: int = ...
acc_session = accounting_session_factory.longrun_session(
    subtype=subtype,
    proj_id=proj_id,
    user_id=user_id,
    name=name,
    instance_type="FARGATE",
    instances=1,
    duration=5,
)

await acc_session.make_reservation()
await acc_session.start()  # start method is required only for longrun sessions.

# Actual logic

await acc_session.finish()

Example

See the Demo app for a working example integrated in a simple FastAPI app.

If you installed tox, and if you have a running instance of the Accounting service, you can set the required env variables and run the demo with:

export ACCOUNTING_BASE_URL=http://127.0.0.1:8100
export UVICORN_PORT=8000
tox -e demo

and call the endpoint after setting a valid project-id and user-id with:

export PROJECT_ID=8eb248a8-672c-4158-9365-b95286cba796
export USER_ID=7ee00c6c-3f92-4ac0-b49e-9f690f76826e
curl -vs "http://127.0.0.1:$UVICORN_PORT/query" \
-H "content-type: application/json" \
-H "project-id: $PROJECT_ID" \
-H "user-id: $USER_ID" \
--data-binary @- <<EOF
{"input_text": "my query"}
EOF

Contribution Guidelines

See CONTRIBUTING.

Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

For license and authors, see LICENSE and AUTHORS respectively.

Copyright © 2024 Blue Brain Project/EPFL

Copyright © 2025 Open Brain Institute

Metadata

Release files for obp-accounting-sdk 0.6.5

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

Source distribution (sdist)

Source distribution for obp-accounting-sdk 0.6.5
File Size Uploaded
obp_accounting_sdk-0.6.5.tar.gz 36.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for obp-accounting-sdk 0.6.5
File Interpreter ABI Platform
obp_accounting_sdk-0.6.5-py3-none-any.whl Python 3 none any Details

Total release size: 64.6 kB

Release files / obp_accounting_sdk-0.6.5.tar.gz

Download URL obp_accounting_sdk-0.6.5.tar.gz
Size 36.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b9e8c293b8178efbe8b9f6e8b25f0ade24399809a49d73d650892221de1d6f31
BLAKE2b-256 checksum
How to use checksums
e57879f281418d475a87944672e56a5f5cb1bd542864fd8fc56a2a3199164cc4
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 3, 2026.

Transparency log

Release files / obp_accounting_sdk-0.6.5-py3-none-any.whl

Download URL obp_accounting_sdk-0.6.5-py3-none-any.whl
Size 27.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5617ed9a4e8d56d00d96bb99c2a124297f46bec5076baad86e8568cff923587
BLAKE2b-256 checksum
How to use checksums
3860224e7e07cc49a143804bc19f59e5e05d5cb199d7cc497f3eb9f097bb43ed
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 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

This release

0.6.5 This release

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

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