herosdevices


Nameherosdevices JSON
Version 0.5.6 PyPI version JSON
download
home_pageNone
SummaryPython representations (think drivers) of frequently used lab equipment.
upload_time2025-10-14 11:28:43
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseLGPL-3.0-or-later
keywords pub/sub remote object rpc zenoh
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">
<img src="https://gitlab.com/atomiq-project/herosdevices/-/raw/main/docs/_static/logo.svg" width="150">
</h1>

# HEROS Devices
This repository contains python representations (think drivers) of frequently used lab equipment. While these drivers
can be perfectly used also locally on the system attached to the lab equipment, the real advantage arises, when the
created python object is made available in the network via [HEROS](https://gitlab.com/atomiq-project/heros).

The drivers in this repository sit in the hardware submodule and are arranged in submodules corresponding the vendor
name of the device.

## Howto Use

### Standalone
The hardware control code in this repository is developed as stand-alone code. That means it also runs locally, without any
HEROS magic. Thus, the classes in this module do not inherit from LocalHERO. It is up to the user to make it a HERO or
to use BOSS as described in the following.

### Using as a HERO with BOSS
Using the [BOSS Object Starter Service (BOSS)](https://gitlab.com/atomiq-project/boss) it is easy to instantiate
objects of the classes provided in this repository and make them a [HERO](https://gitlab.com/atomiq-project/heros)
that is available through the network. To this end you can either install BOSS in your system and follow it's
instructions to create an object from the heros-devices module.

## Interfaces
To signal that a HERO provides a certain interface, herosdevices provides the submodule `interfaces`. Inheriting
from the classes therein enforces that particular methods and attributes are implemented by the HERO (otherwise it
errors upon initialization of the HERO) and signals it's compatibility through the hero metadata. This allows the
remote site to safely assume that a certain interface is present with the HERO. This allows to, for example, to
transparently use HEROs in an atomiq script as RFSource, VoltageSource, CurrentSource, DACChannel, Switch, etc. This is
explicitly possible without herosdevices depending on atomiq itself. The mechanism can easily be extended to have interface
classes for other systems as well.

.. note::
    The interfaces mechanism is completely optional. If a HERO does not inherit from an interface, nothing breaks but
    also none of the magic described above will happen on the remote side.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "herosdevices",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Thomas Niederpr\u00fcm <t.niederpruem@rptu.de>, Suthep Pomjaksilp <suthep.pomjaksilp@uni-hamburg.de>",
    "keywords": "pub/sub, remote object, rpc, zenoh",
    "author": null,
    "author_email": "Thomas Niederpr\u00fcm <t.niederpruem@rptu.de>, Suthep Pomjaksilp <suthep.pomjaksilp@uni-hamburg.de>, Christian H\u00f6lzl <choelzl@pi5.physik.uni-stuttgart.de>, Tobias Ebert <tobias.ebert@uni-hamburg.de>",
    "download_url": "https://files.pythonhosted.org/packages/df/f7/3cf4d9e4c260c8e23946d94a680867b0f432bbc2094b68f77627fa525fe6/herosdevices-0.5.6.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\n<img src=\"https://gitlab.com/atomiq-project/herosdevices/-/raw/main/docs/_static/logo.svg\" width=\"150\">\n</h1>\n\n# HEROS Devices\nThis repository contains python representations (think drivers) of frequently used lab equipment. While these drivers\ncan be perfectly used also locally on the system attached to the lab equipment, the real advantage arises, when the\ncreated python object is made available in the network via [HEROS](https://gitlab.com/atomiq-project/heros).\n\nThe drivers in this repository sit in the hardware submodule and are arranged in submodules corresponding the vendor\nname of the device.\n\n## Howto Use\n\n### Standalone\nThe hardware control code in this repository is developed as stand-alone code. That means it also runs locally, without any\nHEROS magic. Thus, the classes in this module do not inherit from LocalHERO. It is up to the user to make it a HERO or\nto use BOSS as described in the following.\n\n### Using as a HERO with BOSS\nUsing the [BOSS Object Starter Service (BOSS)](https://gitlab.com/atomiq-project/boss) it is easy to instantiate\nobjects of the classes provided in this repository and make them a [HERO](https://gitlab.com/atomiq-project/heros)\nthat is available through the network. To this end you can either install BOSS in your system and follow it's\ninstructions to create an object from the heros-devices module.\n\n## Interfaces\nTo signal that a HERO provides a certain interface, herosdevices provides the submodule `interfaces`. Inheriting\nfrom the classes therein enforces that particular methods and attributes are implemented by the HERO (otherwise it\nerrors upon initialization of the HERO) and signals it's compatibility through the hero metadata. This allows the\nremote site to safely assume that a certain interface is present with the HERO. This allows to, for example, to\ntransparently use HEROs in an atomiq script as RFSource, VoltageSource, CurrentSource, DACChannel, Switch, etc. This is\nexplicitly possible without herosdevices depending on atomiq itself. The mechanism can easily be extended to have interface\nclasses for other systems as well.\n\n.. note::\n    The interfaces mechanism is completely optional. If a HERO does not inherit from an interface, nothing breaks but\n    also none of the magic described above will happen on the remote side.",
    "bugtrack_url": null,
    "license": "LGPL-3.0-or-later",
    "summary": "Python representations (think drivers) of frequently used lab equipment.",
    "version": "0.5.6",
    "project_urls": {
        "Bug Tracker": "https://gitlab.com/atomiq-project/herosdevices/issues",
        "Homepage": "https://gitlab.com/atomiq-project/herosdevices",
        "Repository": "https://gitlab.com/atomiq-project/herosdevices"
    },
    "split_keywords": [
        "pub/sub",
        " remote object",
        " rpc",
        " zenoh"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3a172f0f972974df2cf9692ee9afb65ac7d909074e269a2d69ddd8529fd8caf4",
                "md5": "5e83ca0b2e3da31d63a01b94dbae6ea4",
                "sha256": "76c9a3bcefffa7cce81c182b4928f712d496d6d8c2f107815c3c418ffbf51041"
            },
            "downloads": -1,
            "filename": "herosdevices-0.5.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5e83ca0b2e3da31d63a01b94dbae6ea4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 101128,
            "upload_time": "2025-10-14T11:28:41",
            "upload_time_iso_8601": "2025-10-14T11:28:41.865577Z",
            "url": "https://files.pythonhosted.org/packages/3a/17/2f0f972974df2cf9692ee9afb65ac7d909074e269a2d69ddd8529fd8caf4/herosdevices-0.5.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dff73cf4d9e4c260c8e23946d94a680867b0f432bbc2094b68f77627fa525fe6",
                "md5": "55b0f228cb0d7bfb61ae3a886dae7c71",
                "sha256": "bcba68ce4fdb3e8c514e36fe127223a1ac71d52eed5b35e91730fdf7238d962e"
            },
            "downloads": -1,
            "filename": "herosdevices-0.5.6.tar.gz",
            "has_sig": false,
            "md5_digest": "55b0f228cb0d7bfb61ae3a886dae7c71",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 981646,
            "upload_time": "2025-10-14T11:28:43",
            "upload_time_iso_8601": "2025-10-14T11:28:43.828598Z",
            "url": "https://files.pythonhosted.org/packages/df/f7/3cf4d9e4c260c8e23946d94a680867b0f432bbc2094b68f77627fa525fe6/herosdevices-0.5.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-14 11:28:43",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "atomiq-project",
    "gitlab_project": "herosdevices",
    "lcname": "herosdevices"
}
        
Elapsed time: 2.55811s