semvec/pypi-packages huggingface dataset:
tesser 0.9.1
Python SDK for Tesser Trading Engine
Requires Python: >=3.9

# 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`](https://github.com/astral-sh/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:

```bash
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:

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

## Quick Start

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

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

Then start a strategy:

```python
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.
anylogic-design-time-api 8.9.7
Create AnyLogic markup by code
Requires Python: >=3.9

# AnyLogic Design-Time Python API

The **AnyLogic Design-Time Python API** allows you to programmatically modify an AnyLogic model *while it is open in the graphical editor*.  
It provides the Python runtime with access to the model structure, allowing you to generate space markup automatically.

This package communicates with the AnyLogic editor using the built-in **Graphical Editor API Connector**, available in AnyLogic 8.9.7+.

---

## Features

- Connect to the AnyLogic editor using a secure one-time token  
- Create and configure model elements programmatically 
- Automatically generate data-driven layout structures  
- Access wrapper classes for AnyLogic objects (for example, `Conveyor`, `Path`, `PointNode`, `TurnStation`, `Robot`)

---

## Installation

```bash
pip install anylogic_design_time_api
```

---

## Requirements

- AnyLogic **8.9.7 or later**
- Python **3.9+** (tested on Python 3.13)
- Open port for API connector running inside AnyLogic (configurable)

When you start the connector from the AnyLogic toolbar, a dialog displays a **connection token**. Use this token in your Python script to attach to the editor.

---

## Basic usage

```python
from anylogic_design_time_api import *
from anylogic_design_time_api.generated import *

# Connect to the running AnyLogic editor
ws = Workspace("paste-your-token-here")

# Open the model
model = ws.getModel("My model")
agent = model.getAgent("Main")
level = agent.getLevels()[0]  # animation level where markup is created

# Create nodes
node1 = PointNode.create(level)
node2 = PointNode.create(level)
path = Path.create(level)

# Layout
node1.setX(100)
node1.setY(200)
node2.setX(300)
node2.setY(200)
path.setX(100)
path.setY(200)

# Define path geometry (relative to path position)
pathPoints = [0.0, 0.0, 0.0, 200.0, 0.0, 0.0]
pathPointList = Utils.createStraightPointsList(path, pathPoints)
path.setPointList(pathPointList)

# Connect network
path.setSource(node1)
path.setTarget(node2)
```

---

## Documentation

Full documentation, including wrapper classes, raw functions, and an extended example, is available in the AnyLogic documentation.

---

## License

© The AnyLogic Company.  
Distributed for use with the AnyLogic simulation environment.