Skip to main content

Python SDK for Tesser Trading Engine

Project description

tesser-py

tesser-py is the Python SDK for building remote strategies that plug into the Tesser trading engine via gRPC.

Requirements

  • Python 3.9+
  • uv for dependency management (pip/venv also works, but all docs/tests assume uv)
  • protoc (v27+) available on PATH when regenerating protobuf stubs

Installation

Install the published package directly from PyPI (tesser) when writing strategies outside of this monorepo:

pip install tesser
# or with uv
uv pip install tesser

For local development against the repo sources (needed when touching protobufs or contributing to the SDK), stay inside sdk/tesser-py and sync dependencies via uv:

cd sdk/tesser-py
uv sync --all-extras

Quick Start

Generate protobuf stubs, run tests, and then start iterating on strategies:

cd sdk/tesser-py
uv sync --all-extras
uv run scripts/codegen.py
uv run pytest

Then start a strategy:

import asyncio
from tesser import Runner, Strategy, Signal, SignalKind

class PyCross(Strategy):
    def __init__(self):
        super().__init__(name="py-cross", symbol="BTC-USD")

    async def on_tick(self, context, tick):
        if tick.price > 50_000:
            return [Signal(symbol=tick.symbol, kind=SignalKind.ENTER_LONG)]
        return []

if __name__ == "__main__":
    asyncio.run(Runner(PyCross()).serve())

Layout

sdk/tesser-py/
├── pyproject.toml
├── src/tesser/        # Library sources
├── scripts/codegen.py # Protobuf generator
├── tests/             # Unit/integration tests
└── examples/

Code Generation

uv run scripts/codegen.py compiles the protobuf definition located under tesser-rpc/proto and drops the generated files in src/tesser/protos. This step runs automatically in CI and should be executed whenever the proto changes.

Version Sync

The Python package version is derived from the workspace Cargo.toml. Run uv run scripts/sync_version.py whenever the Rust version changes to keep the SDK aligned with the rest of the monorepo.

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

tesser-0.4.1.tar.gz (70.0 kB view details)

Uploaded Source

Built Distribution

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

tesser-0.4.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file tesser-0.4.1.tar.gz.

File metadata

  • Download URL: tesser-0.4.1.tar.gz
  • Upload date:
  • Size: 70.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tesser-0.4.1.tar.gz
Algorithm Hash digest
SHA256 a2fabb2116147ab30d0dc20e5ba6b17e5b25a1b47fb2c105d0f33a38f988d599
MD5 2e51ae56b431c12fb96186ac16bb442d
BLAKE2b-256 753034500f0eb63e1fd7f2e0eaa144518c3223e8575a265238f91fdaafa3c42f

See more details on using hashes here.

File details

Details for the file tesser-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: tesser-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tesser-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eaad3fd71b8a88c074cf09568ae38184c3a0c12be2572d44efd01de8d3d8439a
MD5 f63cdb42a41f768accfefaa360a0539d
BLAKE2b-256 377d03a3fc6eb706ddf6d74defe983fceeb38727b87bfc8529617e3bb847bfd7

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