# PLICO: Python Laboratory Instrumentation COntrol
![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico/pythonpackage.yml)
[![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico/branch/master/graph/badge.svg?token=04PRSBMW11)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico)
[![Documentation Status](https://readthedocs.org/projects/plico/badge/?version=latest)](https://plico.readthedocs.io/en/latest/?badge=latest)
[![PyPI version][pypiversion]][pypiversionlink]
plico is a framework to develop applications controlling instrumentation typically available in a scientific laboratory.
It is entirely written in Python and support server-client applications, using [zeromq][zmq] as message dispatcher.
## Documentation
https://plico.readthedocs.io
## Status of related packages
| | | | | |
--- | --- | --- | --- | ---
[plico_motor](https://github.com/ArcetriAdaptiveOptics/plico_motor) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_motor/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor) | [![Documentation Status](https://readthedocs.org/projects/plico_motor/badge/?version=latest)](https://plico_motor.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-motor.svg)](https://badge.fury.io/py/plico-motor)
[plico_motor_server](https://github.com/ArcetriAdaptiveOptics/plico_motor_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_motor_server/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor_server/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor_server) | [![Documentation Status](https://readthedocs.org/projects/plico_motor_server/badge/?version=latest)](https://plico_motor_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-motor-server.svg)](https://badge.fury.io/py/plico-motor-server) |
[pysilico](https://github.com/ArcetriAdaptiveOptics/pysilico) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/pysilico/pythontest.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico/branch/master/graph/badge.svg?token=GTDOW6IWDE)](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico) | [![Documentation Status](https://readthedocs.org/projects/pysilico/badge/?version=latest)](https://pysilico.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/pysilico.svg)](https://badge.fury.io/py/pysilico)
[pysilico_server](https://github.com/ArcetriAdaptiveOptics/pysilico_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/pysilico_server/pythontest.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico_server/branch/master/graph/badge.svg?token=04PRSBMW11)](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico_server) | [![Documentation Status](https://readthedocs.org/projects/pysilico_server/badge/?version=latest)](https://pysilico_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/pysilico-server.svg)](https://badge.fury.io/py/pysilico-server)
[plico_dm](https://github.com/ArcetriAdaptiveOptics/plico_dm) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_dm/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm/branch/master/graph/badge.svg?token=OTSP5O5WCW)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm) | [![Documentation Status](https://readthedocs.org/projects/plico_dm/badge/?version=latest)](https://plico_dm.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-dm.svg)](https://badge.fury.io/py/plico-dm)
[plico_dm_server](https://github.com/ArcetriAdaptiveOptics/plico_dm_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_dm_server/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_server/branch/master/graph/badge.svg?token=L6E5WVO4O5)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_server) | [![Documentation Status](https://readthedocs.org/projects/plico_dm_server/badge/?version=latest)](https://plico_dm_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-dm-server.svg)](https://badge.fury.io/py/plico-dm-server)
[plico_dm_characterization](https://github.com/ArcetriAdaptiveOptics/plico_dm_characterization) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_dm_characterization/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_characterization/branch/master/graph/badge.svg?token=TO8MHXVC5W)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_characterization) | [![Documentation Status](https://readthedocs.org/projects/plico_dm_characterization/badge/?version=latest)](https://plico_dm_characterization.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-dm-characterization.svg)](https://badge.fury.io/py/plico-dm-characterization)
[plico_interferometer](https://github.com/ArcetriAdaptiveOptics/plico_interferometer) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_interferometer/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer) | [![Documentation Status](https://readthedocs.org/projects/plico_interferometer/badge/?version=latest)](https://plico_interferometer.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-interferometer.svg)](https://badge.fury.io/py/plico-interferometer)
[plico_interferometer_server](https://github.com/ArcetriAdaptiveOptics/plico_interferometer_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_interferometer_server/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer_server/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer_server) | [![Documentation Status](https://readthedocs.org/projects/plico_interferometer_server/badge/?version=latest)](https://plico_interferometer_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-interferometer-server.svg)](https://badge.fury.io/py/plico-interferometer-server)
<!---
[tipico](https://github.com/ArcetriAdaptiveOptics/tipico) | ![Python package](https://github.com/ArcetriAdaptiveOptics/tipico/workflows/Python%20package/badge.svg) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico) | [![Documentation Status](https://readthedocs.org/projects/tipico/badge/?version=latest)](https://tipico.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/tipico.svg)](https://badge.fury.io/py/tipico)
[tipico_server](https://github.com/ArcetriAdaptiveOptics/tipico_server) | ![Python package](https://github.com/ArcetriAdaptiveOptics/tipico_server/workflows/Python%20package/badge.svg) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico_server/branch/master/graph/badge.svg?token=SLRM2OEX3B)](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico_server) | [![Documentation Status](https://readthedocs.org/projects/tipico_server/badge/?version=latest)](https://tipico_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/tipico-server.svg)](https://badge.fury.io/py/tipico_server)
--->
[zmq]: http://zeromq.org
[plico]: https://github.com/ArcetriAdaptiveOptics/plico
[tipico]: https://github.com/ArcetriAdaptiveOptics/tipico
[tipico-server]: https://github.com/ArcetriAdaptiveOptics/tipico_server
[pysilico]: https://github.com/ArcetriAdaptiveOptics/pysilico
[pysilico-server]: https://github.com/ArcetriAdaptiveOptics/pysilico_server
[travis]: https://travis-ci.com/ArcetriAdaptiveOptics/palpao.svg?branch=master "go to travis"
[travislink]: https://travis-ci.com/ArcetriAdaptiveOptics/plico
[coveralls]: https://coveralls.io/repos/github/ArcetriAdaptiveOptics/plico/badge.svg?branch=master "go to coveralls"
[coverallslink]: https://coveralls.io/github/ArcetriAdaptiveOptics/plico
[pypiversion]: https://badge.fury.io/py/plico.svg
[pypiversionlink]: https://badge.fury.io/py/plico
Raw data
{
"_id": null,
"home_page": "https://github.com/lbusoni/plico",
"name": "plico",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "laboratory, instrumentation controllaboratory, instrumentation control",
"author": "Lorenzo Busoni",
"author_email": "lorenzo.busoni@inaf.it",
"download_url": "https://files.pythonhosted.org/packages/f3/73/12eea421932aed98272c05d906bdcf07f99a2b16cbdbffd7d3274c71f405/plico-0.30.0.tar.gz",
"platform": null,
"description": "# PLICO: Python Laboratory Instrumentation COntrol\n\n ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico/pythonpackage.yml)\n [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico/branch/master/graph/badge.svg?token=04PRSBMW11)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico)\n [![Documentation Status](https://readthedocs.org/projects/plico/badge/?version=latest)](https://plico.readthedocs.io/en/latest/?badge=latest)\n [![PyPI version][pypiversion]][pypiversionlink]\n\n\n\nplico is a framework to develop applications controlling instrumentation typically available in a scientific laboratory.\nIt is entirely written in Python and support server-client applications, using [zeromq][zmq] as message dispatcher.\n\n\n## Documentation\n\nhttps://plico.readthedocs.io\n\n## Status of related packages\n| | | | | | \n --- | --- | --- | --- | --- \n[plico_motor](https://github.com/ArcetriAdaptiveOptics/plico_motor) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_motor/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor) | [![Documentation Status](https://readthedocs.org/projects/plico_motor/badge/?version=latest)](https://plico_motor.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-motor.svg)](https://badge.fury.io/py/plico-motor) \n[plico_motor_server](https://github.com/ArcetriAdaptiveOptics/plico_motor_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_motor_server/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor_server/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_motor_server) | [![Documentation Status](https://readthedocs.org/projects/plico_motor_server/badge/?version=latest)](https://plico_motor_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-motor-server.svg)](https://badge.fury.io/py/plico-motor-server) |\n[pysilico](https://github.com/ArcetriAdaptiveOptics/pysilico) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/pysilico/pythontest.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico/branch/master/graph/badge.svg?token=GTDOW6IWDE)](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico) | [![Documentation Status](https://readthedocs.org/projects/pysilico/badge/?version=latest)](https://pysilico.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/pysilico.svg)](https://badge.fury.io/py/pysilico)\n[pysilico_server](https://github.com/ArcetriAdaptiveOptics/pysilico_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/pysilico_server/pythontest.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico_server/branch/master/graph/badge.svg?token=04PRSBMW11)](https://codecov.io/gh/ArcetriAdaptiveOptics/pysilico_server) | [![Documentation Status](https://readthedocs.org/projects/pysilico_server/badge/?version=latest)](https://pysilico_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/pysilico-server.svg)](https://badge.fury.io/py/pysilico-server)\n[plico_dm](https://github.com/ArcetriAdaptiveOptics/plico_dm) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_dm/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm/branch/master/graph/badge.svg?token=OTSP5O5WCW)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm) | [![Documentation Status](https://readthedocs.org/projects/plico_dm/badge/?version=latest)](https://plico_dm.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-dm.svg)](https://badge.fury.io/py/plico-dm)\n[plico_dm_server](https://github.com/ArcetriAdaptiveOptics/plico_dm_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_dm_server/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_server/branch/master/graph/badge.svg?token=L6E5WVO4O5)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_server) | [![Documentation Status](https://readthedocs.org/projects/plico_dm_server/badge/?version=latest)](https://plico_dm_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-dm-server.svg)](https://badge.fury.io/py/plico-dm-server)\n[plico_dm_characterization](https://github.com/ArcetriAdaptiveOptics/plico_dm_characterization) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_dm_characterization/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_characterization/branch/master/graph/badge.svg?token=TO8MHXVC5W)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_dm_characterization) | [![Documentation Status](https://readthedocs.org/projects/plico_dm_characterization/badge/?version=latest)](https://plico_dm_characterization.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-dm-characterization.svg)](https://badge.fury.io/py/plico-dm-characterization)\n[plico_interferometer](https://github.com/ArcetriAdaptiveOptics/plico_interferometer) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_interferometer/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer) | [![Documentation Status](https://readthedocs.org/projects/plico_interferometer/badge/?version=latest)](https://plico_interferometer.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-interferometer.svg)](https://badge.fury.io/py/plico-interferometer)\n[plico_interferometer_server](https://github.com/ArcetriAdaptiveOptics/plico_interferometer_server) | ![Python package](https://img.shields.io/github/actions/workflow/status/ArcetriAdaptiveOptics/plico_interferometer_server/python-package.yml) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer_server/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/plico_interferometer_server) | [![Documentation Status](https://readthedocs.org/projects/plico_interferometer_server/badge/?version=latest)](https://plico_interferometer_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/plico-interferometer-server.svg)](https://badge.fury.io/py/plico-interferometer-server)\n\n\n<!---\n[tipico](https://github.com/ArcetriAdaptiveOptics/tipico) | ![Python package](https://github.com/ArcetriAdaptiveOptics/tipico/workflows/Python%20package/badge.svg) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico/branch/main/graph/badge.svg?token=ApWOrs49uw)](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico) | [![Documentation Status](https://readthedocs.org/projects/tipico/badge/?version=latest)](https://tipico.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/tipico.svg)](https://badge.fury.io/py/tipico)\n[tipico_server](https://github.com/ArcetriAdaptiveOptics/tipico_server) | ![Python package](https://github.com/ArcetriAdaptiveOptics/tipico_server/workflows/Python%20package/badge.svg) | [![codecov](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico_server/branch/master/graph/badge.svg?token=SLRM2OEX3B)](https://codecov.io/gh/ArcetriAdaptiveOptics/tipico_server) | [![Documentation Status](https://readthedocs.org/projects/tipico_server/badge/?version=latest)](https://tipico_server.readthedocs.io/en/latest/?badge=latest) | [![PyPI version](https://badge.fury.io/py/tipico-server.svg)](https://badge.fury.io/py/tipico_server)\n--->\n\n\n\n[zmq]: http://zeromq.org\n[plico]: https://github.com/ArcetriAdaptiveOptics/plico\n[tipico]: https://github.com/ArcetriAdaptiveOptics/tipico\n[tipico-server]: https://github.com/ArcetriAdaptiveOptics/tipico_server\n[pysilico]: https://github.com/ArcetriAdaptiveOptics/pysilico\n[pysilico-server]: https://github.com/ArcetriAdaptiveOptics/pysilico_server\n[travis]: https://travis-ci.com/ArcetriAdaptiveOptics/palpao.svg?branch=master \"go to travis\"\n[travislink]: https://travis-ci.com/ArcetriAdaptiveOptics/plico\n[coveralls]: https://coveralls.io/repos/github/ArcetriAdaptiveOptics/plico/badge.svg?branch=master \"go to coveralls\"\n[coverallslink]: https://coveralls.io/github/ArcetriAdaptiveOptics/plico\n[pypiversion]: https://badge.fury.io/py/plico.svg\n[pypiversionlink]: https://badge.fury.io/py/plico\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python Laboratory Instrumentation COntrol",
"version": "0.30.0",
"project_urls": {
"Homepage": "https://github.com/lbusoni/plico"
},
"split_keywords": [
"laboratory",
" instrumentation controllaboratory",
" instrumentation control"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2e0496092b9fa31bb6a36452a4a158a5cc40188c79db0ac2dfb1984183f24700",
"md5": "96210c1259ac87a2bb9197524ae86759",
"sha256": "20e5cd5a265e299ccfb667231d0f9c4587a8a88a28b7f15a3a14413675b4d311"
},
"downloads": -1,
"filename": "plico-0.30.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "96210c1259ac87a2bb9197524ae86759",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 42160,
"upload_time": "2024-07-23T13:30:27",
"upload_time_iso_8601": "2024-07-23T13:30:27.179153Z",
"url": "https://files.pythonhosted.org/packages/2e/04/96092b9fa31bb6a36452a4a158a5cc40188c79db0ac2dfb1984183f24700/plico-0.30.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f37312eea421932aed98272c05d906bdcf07f99a2b16cbdbffd7d3274c71f405",
"md5": "4d5d80c8b9c3ba97955509c3d25818f5",
"sha256": "2499eb09b41cf916e325d46c35ff74ccd808619355529260205eb111b06b1aed"
},
"downloads": -1,
"filename": "plico-0.30.0.tar.gz",
"has_sig": false,
"md5_digest": "4d5d80c8b9c3ba97955509c3d25818f5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 50285,
"upload_time": "2024-07-23T13:30:28",
"upload_time_iso_8601": "2024-07-23T13:30:28.637958Z",
"url": "https://files.pythonhosted.org/packages/f3/73/12eea421932aed98272c05d906bdcf07f99a2b16cbdbffd7d3274c71f405/plico-0.30.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-23 13:30:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lbusoni",
"github_project": "plico",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "plico"
}