07. Deployment View

Topology

The Mars Rover Control System is a single-process CLI application. There is no network, no database, and no containerisation required.

┌─────────────────────────────────────┐
│  Developer / Operator Machine       │
│                                     │
│  Python 3.12 runtime                │
│  ┌─────────────────────────────┐    │
│  │  mars_rover (Python pkg)    │    │
│  │  python -m mars_rover       │    │
│  └─────────────────────────────┘    │
│                                     │
│  stdin ──▶  process  ──▶  stdout    │
└─────────────────────────────────────┘

Running the Application

# Pipe an input file
python -m mars_rover < input.txt

# Interactive (type input manually, Ctrl-D to finish)
python -m mars_rover

Input / Output Example

Input

5 5
1 2 N
LMLMLMLMM
3 3 E
MMRMMRMRRM

Output

1 3 N
5 1 E

Development Setup

# Install dependencies (dev extras)
pip install -e ".[dev]"

# Run tests
pytest

# Run linters
ruff check .
black --check .