Metadata-Version: 2.4
Name: run-iocsh
Version: 3.1.0.post1
Summary: Wrapper to test IOCs
Author: Benjamin Bertrand
Author-email: Anders Lindh Olsson <anders.lindh.olsson@ess.eu>
Maintainer-email: Anders Lindh Olsson <anders.lindh.olsson@ess.eu>, Simon Rose <simon.rose@ess.eu>, Lucas Magalhães <lucas.magalhaes@ess.eu>, Douglas Araujo <douglas.araujo@ess.eu>, Grzegorz Kowalski <grzegorz.kowalski@ess.eu>, Luciano Carneiro Guedes <luciano.carneiroguedes@ess.eu>, Andreas Persson <andreas.persson@ess.eu>
License-Expression: BSD-2-Clause
Project-URL: Documentation, https://epics-extensions.github.io/run-iocsh
Project-URL: Homepage, https://github.com/epics-extensions/run-iocsh
Project-URL: Issues, https://github.com/epics-extensions/run-iocsh/issues
Keywords: e3,epics,ess,iocsh
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: coverage; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Provides-Extra: docs
Requires-Dist: furo; extra == "docs"
Requires-Dist: myst-parser; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-autoapi; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: sphinx-design; extra == "docs"
Dynamic: license-file

run-iocsh
=========

Python wrapper to run ``iocsh`` (or another IOC executable) for automated
testing of EPICS applications. It starts an IOC, waits for ``iocInit`` to
complete, and raises typed exceptions if errors are detected in the output.

Requires Python >= 3.11 and an activated e3 environment (or any environment
providing the IOC executable).

**Documentation:** https://epics-extensions.github.io/run-iocsh

Installation
------------

.. code-block:: console

    $ pip install run-iocsh

Quick Start
-----------

**Command Line:**

.. code-block:: console

    $ run-iocsh st.cmd

**Python Library:**

.. code-block:: python

    from run_iocsh import IOC

    with IOC("st.cmd") as ioc:
        ioc.wait_for_output()
        # IOC is running; interact with PVs here

    # ioc.output, ioc.stdout and ioc.stderr available for inspection

License
-------

BSD-2
