Skip to main content

Synchronous Python client for the gomc-rest API

Project description

gomc-rest-client

日本語版 README

Python 3.10+ client library for the latest gomc-rest HTTP API.

This package wraps the synchronous REST endpoints exposed by gomc-rest for Mitsubishi PLC read, write, and remote-control operations using only the Python standard library, and converts API error responses into typed Python exceptions.

About gomc-rest-client

This package is a dedicated client library for gomc-rest. It is intended for users who already use gomc-rest, or who want to expose Mitsubishi PLC operations through the gomc-rest HTTP API.

This library does not communicate with PLCs directly. If you need the server, API surface, or gomc-rest itself, see the upstream project:

Install

uv add gomc-rest-client

With pip:

pip install gomc-rest-client

For offline environments, install from a prebuilt wheel distributed inside your network:

pip install dist/gomc_rest_client-*.whl

This package has no runtime dependencies outside the Python standard library, so wheel-based offline installation is straightforward.

For local development:

uv sync --group dev

To build distributable artifacts before taking them into an offline environment:

uv build

Usage

from gomc_rest_client import (
    MINIMUM_SUPPORTED_GOMC_REST_VERSION,
    BusyError,
    PLCClient,
    PLCProtocolError,
)

with PLCClient("http://192.168.0.1:8080") as plc:
    health = plc.health()
    metrics = plc.metrics()
    version = plc.version()
    is_supported = plc.is_supported_version()
    is_compatible = plc.is_version_compatible(MINIMUM_SUPPORTED_GOMC_REST_VERSION)
    values = plc.read("D100", 3)
    bits = plc.read("M0", 4)
    dwords = plc.read("D100", 2, dword=True)
    signed = plc.read("D100", 3, sint=True)

    plc.write("D100", [10, 20, 30])
    plc.write("M0", [True, False])
    plc.write("D100", [-1, -32768, 32767], sint=True)

    try:
        plc.remote_run(clear=0, force=False)
    except BusyError:
        pass
    except PLCProtocolError as exc:
        print(exc.end_code, exc.message)

is_supported_version() and is_version_compatible() treat dev builds as compatible by default so local gomc-rest main builds can pass version checks during development.

Supported gomc-rest versions

This client supports gomc-rest v0.6.0 and later.

Servers older than v0.6.0 are not supported. In particular, servers without the /version endpoint are out of scope for this client.

This client expects the server to expose both /version and /metrics.

If you need to verify the support policy at runtime, call plc.is_supported_version() or compare against MINIMUM_SUPPORTED_GOMC_REST_VERSION.

API coverage

  • GET /version
  • GET /metrics
  • GET /health
  • GET /read
  • POST /write
  • POST /remote/run
  • POST /remote/stop
  • POST /remote/pause
  • POST /remote/latch-clear
  • POST /remote/reset

Remote-control endpoints require the gomc-rest server to start with -enable-remote.

Development

Run checks with uv:

uv run pytest
uv run ruff check .
uv run ty check
uv build

To publish to PyPI after configuring credentials:

uv publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gomc_rest_client-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gomc_rest_client-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file gomc_rest_client-0.1.0.tar.gz.

File metadata

  • Download URL: gomc_rest_client-0.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gomc_rest_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 40a3123ec33cc204de50c1d881a40a61701d05e8cb53ce81ce9889cf50e1ed56
MD5 308afcd14124d3a095dbf80cb6fb6630
BLAKE2b-256 ff380680e04f7b122d68c53eaac4eb7e3c899c54df903f6714266fbef63cafaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for gomc_rest_client-0.1.0.tar.gz:

Publisher: workflow.yml on Moge800/gomc_rest_client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gomc_rest_client-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gomc_rest_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8894ca2c69b0d4a69797405d9ed40bd7e924c8942dd6c356bd1e4f32a6fdd8a3
MD5 7daeec5cd0419cd889b129013fe7bbf1
BLAKE2b-256 f830012289224f9d28c0b51ed131503c149416c723024f05bfcab36e19e8aba6

See more details on using hashes here.

Provenance

The following attestation bundles were made for gomc_rest_client-0.1.0-py3-none-any.whl:

Publisher: workflow.yml on Moge800/gomc_rest_client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page