Metadata-Version: 2.3
Name: mxcubecore
Version: 1.384.0
Summary: Core libraries for the MXCuBE application
License: LGPL-3.0-or-later
Keywords: mxcube,mxcube3,mxcubecore
Author: The MXCuBE collaboration
Author-email: mxcube@esrf.fr
Maintainer: Marcus Oscarsson
Maintainer-email: mxcube@esrf.fr
Requires-Python: >=3.10,<3.12
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: English
Classifier: Topic :: Scientific/Engineering
Requires-Dist: Pillow (>=10.4.0,<11.0.0)
Requires-Dist: PyDispatcher (>=2.0.6,<3.0.0)
Requires-Dist: PyTango (>=9.3.6,<10.0.0)
Requires-Dist: colorama (>=0.4.6,<0.5.0)
Requires-Dist: defusedxml (==0.7.1)
Requires-Dist: f90nml (==1.3.1)
Requires-Dist: gevent (>=23.9.1,<24.0.0)
Requires-Dist: greenlet (>=3.0.3,<4.0.0)
Requires-Dist: jsonpickle (>=2.2.0,<3.0.0)
Requires-Dist: jsonschema (>=4.17.1,<5.0.0)
Requires-Dist: lucid3 (>=3.0.0,<4.0.0)
Requires-Dist: lxml (>=4.9.1,<5.0.0)
Requires-Dist: matplotlib (>=3.6.2,<4.0.0)
Requires-Dist: mxcube-video-streamer (>=1.8.3)
Requires-Dist: numpy (>=1.23.5,<2.0.0)
Requires-Dist: psutil (>=5.9.4,<6.0.0)
Requires-Dist: py4j (==0.10.9.9)
Requires-Dist: pydantic (>=2.8.2,<2.9.0)
Requires-Dist: python-ldap (>=3.4.0,<4.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: ruamel.yaml (>=0.17.21,<0.18.0)
Requires-Dist: scipy (>=1.9.3,<2.0.0)
Requires-Dist: suds-py3 (==1.4.5.0)
Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_full_version <= "3.10.0"
Requires-Dist: typing-extensions (>=4.3.0,<5.0.0)
Project-URL: Documentation, https://mxcubecore.readthedocs.io/
Project-URL: Homepage, https://github.com/mxcube/mxcubecore
Project-URL: Repository, https://github.com/mxcube/mxcubecore
Description-Content-Type: text/markdown

[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0)
[![Test and build](https://github.com/mxcube/mxcubecore/actions/workflows/tests.yml/badge.svg)](https://github.com/mxcube/mxcubecore/actions/workflows/tests.yml)
![PyPI](https://img.shields.io/pypi/v/mxcubecore)

# Backend of MXCuBE

`mxcubecore` is the back-end library for
[MXCuBE Qt](https://github.com/mxcube/mxcubeqt/)
and [MXCuBE Web](https://github.com/mxcube/mxcubeweb/).
It allows access to the beamline control system and instrumentation.
It acts as a container of single Python objects (called "hardware objects").

Please read the
[contributing guidelines](https://mxcubecore.readthedocs.io/en/stable/dev/contributing.html)
before submitting your code to the repository.

## License

MXCuBE is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

MXCuBE is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with MXCuBE. If not, see <https://www.gnu.org/licenses/>.

## Installation

Installation of the `mxcubecore` module is commonly done as a dependency of either
[MXCuBE Web](https://github.com/mxcube/mxcubeweb/)
or [MXCuBE Qt](https://github.com/mxcube/mxcubeqt/).

Standalone installation of the `mxcubecore` for development purposes can be done
via Poetry with `poetry install`
or via pip with `python -m pip install --editable .` (don't forget the trailing dot `.`).

`mxcubecore` depends on `python-ldap` that in turn depends on the `openldap` system library.
It can be installed in a conda environment: `conda install openldap`
or on systems using the apt package manager (Debian and derivatives, including Ubuntu):
`sudo apt-get install -y libldap2-dev libsasl2-dev`.
See [python-ldap](https://www.python-ldap.org/en/python-ldap-3.4.3/installing.html#debian)
for more information.

See [Developer documentation](https://mxcubecore.readthedocs.io/)
for more information on working with mxcubecore.

