Skip to main content

exobrain-actions-client

License: Private Python 3.12+

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-server writes them directly into the kpi_mapping JSONB 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 rc or beta in the version (0.1rc1, 0.2b1 etc.).
  • For release: push a tag type v0.1 (main release) on main branch.
  • 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)

Source distribution for exobrain-actions-client 0.5.0
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)

Table of built distributions (wheels) for exobrain-actions-client 0.5.0
File Interpreter ABI Platform Actions
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.

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