Skip to main content

Welcome to PythonDMCGUI

Custom Python + Kivy GUI to control a Galil machine using DMC.

Requirements

Setup

  • conda env create -f environment.yml (run in repo root)
  • conda activate dmc
  • Install GCLib (x64) and ensure PATH is set

Run

python -m dmccodegui.main

Installation to RasPi

# Install system dependencies
sudo apt update && sudo apt install -y python3-pip python3-dev libgl1-mesa-dev

# 1. Install the GUI package
pip3 install dmccodegui

# 2. Install Galil driver separately  
pip3 install https://www.galil.com/sw/pub/python/gclib-1.0.0-py3-none-any.whl

Run

# After pip installation
dmccodegui

# Or alternatively
python -m dmccodegui.main

## Architecture (Developer Guide)

Layered structure keeps UI responsive and testable:

- `src/dmccodegui/main.py`
  - Loads KV files, builds root, injects `GalilController` and `MachineState` into all screens
  - Hooks controller logging to popup alerts and the message ticker

- `src/dmccodegui/controller.py`
  - `GalilController` API with functions to interface w controller

- `src/dmccodegui/app_state.py`
  - `MachineState` dataclass with pub/sub and a rotating `messages` list for alerts

- `src/dmccodegui/utils/jobs.py`
  - Single worker thread + interval scheduler

- `src/dmccodegui/screens/`
  - This directory holds python logic for each screen

- `src/dmccodegui/ui/`
  - `base.kv`: root layout; custom toolbar; global message ticker row
  - `setup.kv`, `rest.kv`, `start.kv`, `arrays.kv`: per-screen layouts
  - `edges.kv`: KV-only subclasses `EdgePointBScreen`/`EdgePointCScreen` using different arrays
  - `theme.kv`: shared styles



## Tests
```bash
pytest -q

See tests/test_controller.py and tests/test_arrays.py for controller behavior and array round-trips using dummy drivers.

Build for PyPI

pip install build twine
python -m build
twine upload dist/*

Links

Metadata

Release files for dmccodegui 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dmccodegui 0.1.0
File Size Uploaded
dmccodegui-0.1.0.tar.gz 6.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dmccodegui 0.1.0
File Interpreter ABI Platform
dmccodegui-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.1 MB

Release files / dmccodegui-0.1.0.tar.gz

Download URL dmccodegui-0.1.0.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
288a45c2fcaf74a9e2c290c49ed1774317643f0287f68da68d7144413d114ab1
BLAKE2b-256 checksum
How to use checksums
229ae2e3e0dcfc1f3040cd03c79b662eaa611fc232af281ecc79cc768718c978
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / dmccodegui-0.1.0-py3-none-any.whl

Download URL dmccodegui-0.1.0-py3-none-any.whl
Size 6.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
15b21a425b0f5e366feb554be26186e0d43e40a95ae9cdb454b3a3314a4cb29e
BLAKE2b-256 checksum
How to use checksums
4257fd9eb17935f15c5f708232aa38784ddf3db5f3e4702d7005e65b547bc371
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page