exobrain-actions-client
This package provides a REST API client for interacting with the Exobrain Actions API.
Key features:
- Access to various API resources such as version status and health checks (ping).
- Retrieval, triggering, or updating of action data specific to a service or organization.
- Standardized HTTP calls to different API endpoints (version, health, action data, calculation triggers, scores, AI summaries).
User Guide
Installation
To install the Exobrain Actions Client, use the following command:
pip install exobrain-actions-client
Usage
To retrieve the AI-generated summary of a given action, create a client, instantiate the accessor, and call
get_summary with the service name, organization ID, action ID, and the target language.
from uuid import UUID
from exobrain.actions.client.accessor import ActionsAccessor
from exobrain.actions.client.http_client import ClientType, create_client
from exobrain.actions.client.http_client.interfaces import HTTPStatusError
org_id = UUID("12345678-1234-5678-1234-567812345678")
action_id = UUID("87654321-4321-8765-4321-876543218765")
base_url = "https://actions-service.com/"
service = "stock-rebalancing"
client = create_client(
ClientType.REQUESTS,
base_url=base_url,
verify=True, # Set to False if you want to disable SSL verification
timeout=10,
)
accessor = ActionsAccessor(client)
try:
summary = accessor.get_summary(service, org_id, action_id, lang="en")
except HTTPStatusError as e:
print(f"Failed to retrieve the summary: {e.response.status_code} - {e}")
else:
print(f"Summary: {summary}")
Note — updating the "ACTUAL" KPI values is no longer done through this client.
exobrain-serverwrites them directly into thekpi_mappingJSONB column of the running action context (EXO-1510).
Development workflow
Prerequisites
Before starting development, make sure you have the following tools installed:
-
Hatch: a modern Python project, environment, and packaging manager.
-
uv: a fast Python package installer and resolver.
Project Structure
- Code: Place your models in
exobrain/actions/client/. - Tests: Add your tests in
tests/.
Development Commands
All tasks (testing, linting, type checking, packaging, etc.) are managed via hatch environments and scripts:
1. Installing Dependencies
Install all dependencies (including development tools):
hatch env create
2. Running Tests
Launch all tests using pytest:
hatch test
3. Linting and Formatting
Format your code:
hatch fmt -f
Check code style:
hatch fmt
4. Type Checking
Run type checks with mypy:
hatch run types:check
5. Coverage
Check test coverage with:
hatch test --cover
6. Building the Package
Build the package for distribution:
hatch build
7. Releasing
The release process uses uv and Github Actions.
- For pre-release on TestPyPI: push a tag with
rcorbetain the version (0.1rc1,0.2b1etc.). - For release: push a tag type
v0.1(main release) onmainbranch. - Configure secrets for PyPI tokens in repository settings (
PYPI_TOKEN,TEST_PYPI_TOKEN).
Continuous Integration
All pushes and pull requests on main or development branches trigger the Continuous Integration pipeline
(see .github/workflows/ directory for details).
License
This project is private and confidential.
Metadata
Release files for exobrain-actions-client 0.5.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 | Actions |
|---|---|---|---|---|
| exobrain_actions_client-0.5.0.tar.gz | 63.1 kB | Without provenance | Details for exobrain_actions_client-0.5.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| exobrain_actions_client-0.5.0-py3-none-any.whl | Python 3 | none | any | Details for exobrain_actions_client-0.5.0-py3-none-any.whl |
Total release size: 75.7 kB
Release files / exobrain_actions_client-0.5.0.tar.gz
| Download URL | exobrain_actions_client-0.5.0.tar.gz |
|---|---|
| Size | 63.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
143b447d0c9a2f7bd8a75cb1a96589a8f81f2cacd06fb0bb862b665225a1a28a
|
|
BLAKE2b-256 checksum How to use checksums |
dff110fb5ce9f7000b86750d460a5c7ed0c1a13f1ea2e6d25182dd51d646a6d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / exobrain_actions_client-0.5.0-py3-none-any.whl
| Download URL | exobrain_actions_client-0.5.0-py3-none-any.whl |
|---|---|
| Size | 12.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5e806f8c42e8368de0525adc2e4fc60c3beb95e7f71f935d7a3cfec990e2b52
|
|
BLAKE2b-256 checksum How to use checksums |
fe5fd42c347b34e32667a465f2db711b7ab2637aa45bc6ec850cad4d29e66fbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for exobrain-actions-client 0.5.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.