Skip to main content

MirrorNeuron Python SDK

Project description

MirrorNeuron Python SDK

Python client and workflow-bundle helpers for MirrorNeuron.

The SDK provides the gRPC client used by the CLI and API, plus decorators and bundle generation utilities for Python-defined workflows.

Features

  • gRPC Client wrapper for job and runtime operations.
  • Decorators for defining workflow and agent functions in Python.
  • Bundle generation from decorated workflow classes.
  • Runner, retry, and backpressure configuration helpers.
  • Environment-based client configuration for local tools and services.

Tech Stack

Area Tooling
Runtime Python 3.11+
Transport gRPC
Protocol Protobuf
Packaging setuptools with setuptools-scm

Prerequisites

  • Python 3.11 or newer.
  • A running MirrorNeuron core for client calls.
  • Generated protocol modules included with the package.

Installation

The released-package installer installs this package automatically.

Standalone install:

pip install mirrorneuron-python-sdk

Developer install:

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Configuration

Constructor arguments take precedence over environment variables.

Variable Default Description
MN_GRPC_TARGET localhost:50051 Core gRPC target when Client(target=...) is omitted.
MN_CORE_GRPC_TARGET unset Fallback core gRPC target.
MN_GRPC_TIMEOUT_SECONDS 10 Per-RPC timeout. Use 0 or none to disable.
MN_GRPC_AUTH_TOKEN unset Optional bearer metadata.
MN_SDK_LOG_PATH ~/.mn/logs/sdk.log SDK log file path.
MN_LOG_LEVEL package default Log level used by shared logging setup.
MN_LOG_MAX_BYTES package default Rotating log size limit.
MN_LOG_BACKUP_COUNT package default Rotating log backup count.

Client Usage

from mn_sdk import Client

client = Client(target="localhost:50051")
job_id = client.submit_job(manifest_json="...", payloads={})

print(client.get_job(job_id))

Common client methods:

Method Description
submit_job(manifest_json, payloads) Submit a job from a manifest string and payload map.
get_job(job_id) Fetch one job.
list_jobs(limit=0, include_terminal=True) List jobs.
cancel_job(job_id) Cancel a job.
pause_job(job_id) Pause a job.
resume_job(job_id) Resume a job.
clear_jobs() Clear job history.
get_system_summary() Fetch runtime summary.
remove_node(node_name) Remove a node from the runtime view.
stream_events(job_id) Stream job events.

Python Workflow Example

from pathlib import Path

from mn_sdk import RunnerConfig, agent, build_bundle, workflow


@agent.defn(type="map", runner=RunnerConfig.host_local())
def normalize_text(value: str) -> str:
    return value.strip().lower()


@workflow.defn(name="TextWorkflow")
class TextWorkflow:
    @workflow.run
    def run(self):
        normalize_text("  Example  ")


bundle_dir = build_bundle(TextWorkflow, Path("/tmp/text-workflow"))
print(bundle_dir)

The generated bundle can be submitted with the CLI:

mn run /tmp/text-workflow

Public API

The package exports:

  • Client
  • agent
  • workflow
  • build_bundle
  • BundleCompileError
  • RunnerConfig
  • RetryPolicy
  • BackpressurePolicy

Testing

python3 -m pytest -q

Deployment

Applications can depend on mirrorneuron-python-sdk directly when they need to submit jobs or generate bundles programmatically. Runtime deployment still requires the MirrorNeuron core and its backing services.

Troubleshooting

Symptom Check
gRPC connection fails Confirm the core is running and MN_GRPC_TARGET points to it.
Calls hang longer than expected Set MN_GRPC_TIMEOUT_SECONDS.
Authenticated gateway rejects calls Set MN_GRPC_AUTH_TOKEN.
Bundle generation fails Check that the workflow class is decorated and that referenced agent calls are statically discoverable.

Contributing

Keep SDK changes backward-compatible with the CLI and API. Add focused tests for client calls, bundle generation, and configuration behavior.

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mirrorneuron_python_sdk-1.1.3.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mirrorneuron_python_sdk-1.1.3-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file mirrorneuron_python_sdk-1.1.3.tar.gz.

File metadata

  • Download URL: mirrorneuron_python_sdk-1.1.3.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mirrorneuron_python_sdk-1.1.3.tar.gz
Algorithm Hash digest
SHA256 54c0b2756c503b4a561c494b0e0cf115a9092a65ccdb48dcbec7554db325e575
MD5 34fa89f7e9a338fabd66af63560bc217
BLAKE2b-256 cafb3de78c5cb0fbd48a00d119b508e18e83931321cd108c2325dd904cb52c8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mirrorneuron_python_sdk-1.1.3.tar.gz:

Publisher: release.yml on MirrorNeuronLab/mn-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mirrorneuron_python_sdk-1.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for mirrorneuron_python_sdk-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d429e302aae62cc7bb162d4c79910cc8d8195fd3f9be07f0d81313ad87af4919
MD5 0c386db10dd44346a74bc6d31c7d5d20
BLAKE2b-256 522c0cad4ef491a9c28cfe421892e9ae54609e86f87bd758a8e392acbe791968

See more details on using hashes here.

Provenance

The following attestation bundles were made for mirrorneuron_python_sdk-1.1.3-py3-none-any.whl:

Publisher: release.yml on MirrorNeuronLab/mn-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page