Skip to main content

CAP (Cortex Agent Protocol) Python SDK

Project description

CAP Python SDK

Asyncio-first SDK with NATS helpers for CAP workers and clients.

Quick Start

  1. Generate protobuf stubs into this SDK (one-time per proto change):

    python -m grpc_tools.protoc \
      -I../../proto \
      --python_out=./cap/pb \
      --grpc_python_out=./cap/pb \
      ../../proto/cortex/agent/v1/*.proto
    

    (Or run ./tools/make_protos.sh from repo root with CAP_RUN_PY=1 and copy /python into sdk/python/cap/pb if you want vendored stubs.)

  2. Install:

    pip install -e .
    
  3. Run a worker:

    import asyncio
    from cap import worker
    from cap.pb.cortex.agent.v1 import job_pb2
    
    async def handle(req: job_pb2.JobRequest):
        return job_pb2.JobResult(
            job_id=req.job_id,
            status=job_pb2.JOB_STATUS_SUCCEEDED,
            result_ptr=f"redis://res/{req.job_id}",
            worker_id="worker-echo-1",
        )
    
    asyncio.run(worker.run_worker("nats://127.0.0.1:4222", "job.echo", handle))
    

Files

  • cap/bus.py — NATS connector.
  • cap/worker.py — worker skeleton with handler hook.
  • cap/client.py — publish JobRequest to sys.job.submit.
  • cap/pb/ — protobuf stubs (generated).

Defaults

  • Subjects: sys.job.submit, sys.job.result, sys.heartbeat.
  • Protocol version: 1.

Swap out cap.bus if you need a different transport.

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

cap_sdk_python-2.0.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

cap_sdk_python-2.0.1-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file cap_sdk_python-2.0.1.tar.gz.

File metadata

  • Download URL: cap_sdk_python-2.0.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cap_sdk_python-2.0.1.tar.gz
Algorithm Hash digest
SHA256 78496ece7bb9f598bcb2303a8b04b349f0b8e51ce30e7e61cfc61bf23bcb25df
MD5 ad6288a7c971d6f65692684e8b2a5b80
BLAKE2b-256 2b74fb68066ce827e614fe0665b87864e195263d96c127e34a8b222212cf2326

See more details on using hashes here.

File details

Details for the file cap_sdk_python-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: cap_sdk_python-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cap_sdk_python-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3100a98468ad433af47c9a6118a4258e75b513306369c424cf15c84d383d550
MD5 1e6d010ad0fe205d968723bf0553d04c
BLAKE2b-256 5b563a579a61ef6a6ea5e0c60b0018534375a3bfb5032e1f885ff0784b87847f

See more details on using hashes here.

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