Metadata-Version: 2.4
Name: teaching-manager
Version: 0.1.2
Summary: teaching manager
Author-email: Kengo NAKADA <kengo.nakada@email.com>
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: xlogger-py
Requires-Dist: pyside6
Requires-Dist: setuptools
Requires-Dist: python-dotenv
Requires-Dist: fastapi
Requires-Dist: fastapi-utils
Requires-Dist: uvicorn
Requires-Dist: pydantic
Requires-Dist: starlette
Requires-Dist: requests
Requires-Dist: aiohttp
Requires-Dist: httpx
Requires-Dist: pywin32; sys_platform == "win32"
Requires-Dist: pygame; sys_platform == "win32"
Requires-Dist: coloredlogs
Requires-Dist: colorlog
Requires-Dist: pytest
Requires-Dist: pytest-asyncio
Requires-Dist: pyyaml
Requires-Dist: toml
Requires-Dist: tomli; python_version < "3.11"
Requires-Dist: importlib-metadata>=4.0; python_version < "3.8"
Requires-Dist: nest_asyncio
Requires-Dist: sphinx
Requires-Dist: myst-parser
Requires-Dist: sphinx-autobuild
Requires-Dist: sphinx-rtd-theme
Requires-Dist: sphinxcontrib-napoleon
Requires-Dist: linkify-it-py
Requires-Dist: grpcio
Requires-Dist: grpcio-tools
Requires-Dist: google
Requires-Dist: pygame
Dynamic: license-file

# Teaching Manager

[![en](https://img.shields.io/badge/lang-en-red.svg)](README.md)
[![ja](https://img.shields.io/badge/lang-ja-yellow.svg)](README.ja.md)

**Version 0.1.0** — A Python package and PySide6 GUI for robot position teaching and P-variable management.

## Features

Cobotta (`device_name == "CobottaCtrl"`) stores P variables on the robot; other devices use JSON files. The application
supports current-position retrieval, teaching to a specified P number, context-menu operations, multi-row clear/removal,
JSON open/save dialogs, and save confirmation on exit.

The GUI implementation resides in `src/teaching_manager/teaching_gui.py`; `example/teaching_gui.py` is the launcher.
Controller, Model, and RobotVarManager follow a simple MVC design.

## Launch

Provide `PySide6`, `cobotta2`, `x_logger`, and the appropriate connection configuration. Configure `device_name`,
`Config(...)`, and `JSON_FILE` in the launcher.

```bash
python example/teaching_gui.py
```

## Documentation

- [English tutorials and API](docs/en/index.md)
- [日本語チュートリアル・API](docs/jp/index.md)
- [Language selection](docs/index.md)

Sphinx generates the API reference from docstrings for `RobotVarManager`, `TeachingModel`, `TeachingController`, and the
GUI. Build with `bash docs/build.sh`.

**Important:** Clear writes `[0, 0, 0, 0, 0, 0, -1]`. Removing a Cobotta row does not delete the robot's internal
variable. Automatic teaching to an unused P number is not implemented. Discarding on exit does not undo robot writes
already performed.

[Changelog](CHANGELOG.en.md)
