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.10+
Transport gRPC
Protocol Protobuf
Packaging setuptools with setuptools-scm

Prerequisites

  • Python 3.10 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.1.tar.gz (25.1 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.1-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mirrorneuron_python_sdk-1.1.1.tar.gz
  • Upload date:
  • Size: 25.1 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.1.tar.gz
Algorithm Hash digest
SHA256 e9ed55c928a5d84bdaa351abcbb988b92cb089abee85277209d56dd7e50f8015
MD5 01d4760c72d5039d17e1815886208e71
BLAKE2b-256 6779b48d3d43335cd9616d05bc4050a5bfe3241bafeed2aa7842a30385f928f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mirrorneuron_python_sdk-1.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mirrorneuron_python_sdk-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 acdf8d8a670bf3050057e37f37fee195768976519b19d1837272251868626782
MD5 d48ec70fcdf145cf1a0183b7cd0a08fa
BLAKE2b-256 9c4cc66080b5ccf8327d67f530fe8b3c0012b630a6c35fd55dd2f877ebd81a9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mirrorneuron_python_sdk-1.1.1-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