robot-jungol
robot-jungol is a small Python package for Jungol-style robot programming problems. It provides a grid-world robot API, Pillow-based rendering, action logs, and helpers that judge runners can use to capture and replay submitted robot actions.
The distribution name is robot-jungol. The primary import package is jungol_robot, and the package also keeps Jungol-compatible top-level modules such as robot and robot_judge.
Installation
Install from GitHub:
python -m pip install git+https://github.com/hancomac/robot-jungol.git
For local development:
python -m pip install -e ".[dev]"
Quick Start
The top-level robot module is the compatibility entry point used by existing judge environments:
from robot import Beeper, Robot, Wall, World
world = World(width=5, height=5, walls=[Wall((1, 0), (2, 0))])
world.add_piece(Beeper(position=(2, 2)))
robot = Robot(position=(0, 0), direction="R", beepers=1)
world.add_piece(robot)
robot.set_trace("red")
robot.move()
robot.turn_left()
robot.drop_beeper()
You can also import the package API directly:
from jungol_robot import Robot, World
Judge Helpers
robot_judge runs a submitted Python file, captures logged robot actions, and emits a machine-readable line prefixed with __ROBOTLOG__.
from robot_judge import extract_actions_from_output, run_robot_judge, simulate_robot
run_robot_judge(path="User.py")
actions = extract_actions_from_output(output_text)
final_x, final_y, final_direction = simulate_robot(actions)
If a saved world should be loaded when World() is created, pass world_file or world_path to run_robot_judge. This sets the ROBOT_WORLD_SAVE environment variable for the duration of the run.
Image Output
Interactive robot actions can emit image payloads for judge UIs. Set IMG_OUT_DIR to a writable directory to produce images.jsonl and per-frame JSON files.
Supported environment variables:
IMG_OUT_DIR: output directory for image JSON payloadsIMG_MAX_WIDTH: maximum emitted image width, default1280IMG_MAX_HEIGHT: maximum emitted image height, default720IMG_WEBP_QUALITY: WebP output quality, default85
Development
Run the test suite with the standard library test runner:
python -m unittest discover -s tests
Build source and wheel distributions:
python -m build
License
MIT. Portions are derived from the urobot project.
Metadata
Release files for robot-jungol 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| robot_jungol-0.1.0.tar.gz | 61.2 kB | With provenance | Details for robot_jungol-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| robot_jungol-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for robot_jungol-0.1.0-py3-none-any.whl |
Total release size: 85.3 kB
Release files / robot_jungol-0.1.0.tar.gz
| Download URL | robot_jungol-0.1.0.tar.gz |
|---|---|
| Size | 61.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4954ee7322fe3fedea57f65cc605d9f8e6b86d2d03e395c2eb1398b39ba94e4d
|
|
BLAKE2b-256 checksum How to use checksums |
003499754d5cf41293841fc651e89fd9bedfac1dc7d5b6cd82fefd6fcc128006
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.
Transparency logRelease files / robot_jungol-0.1.0-py3-none-any.whl
| Download URL | robot_jungol-0.1.0-py3-none-any.whl |
|---|---|
| Size | 24.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b97ffec043a1bdcd7925995675ac4e849bb77ae7a5bb018a20f6a6c000259025
|
|
BLAKE2b-256 checksum How to use checksums |
e940e1923ea60810a4d8c973d385ec52b7e3c1ebf9c9474fc5035d8ba73c06b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.
Transparency logSecurity for robot-jungol 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for robot_jungol-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.