Metadata-Version: 2.1
Name: mxcubecore
Version: 1.28.0
Summary: Core libraries for the MXCuBE application
Home-page: http://github.com/mxcube/mxcubecore
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.7,<3.11
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering
Provides-Extra: tango
Requires-Dist: Pillow (>=9.3.0,<10.0.0)
Requires-Dist: PyDispatcher (>=2.0.6,<3.0.0)
Requires-Dist: PyTango (>=9.3.6,<10.0.0) ; extra == "tango"
Requires-Dist: colorama (>=0.4.6,<0.5.0)
Requires-Dist: f90nml (==1.4.3)
Requires-Dist: gevent (>=21.12.0,<22.0.0)
Requires-Dist: gipc (>=1.4.0,<2.0.0)
Requires-Dist: greenlet (>=1.1.3,<2.0.0)
Requires-Dist: importlib_metadata (>=4.12.0) ; python_version == "3.7"
Requires-Dist: ispyb-client (>=1.0.0,<2.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.5.3) ; python_version == "3.7"
Requires-Dist: matplotlib (>=3.6.2,<4.0.0) ; python_version >= "3.8"
Requires-Dist: numpy (==1.21.6) ; python_version == "3.7"
Requires-Dist: numpy (>=1.23.5,<2.0.0) ; python_version >= "3.8"
Requires-Dist: psutil (>=5.9.4,<6.0.0)
Requires-Dist: py4j (==0.10.9.7)
Requires-Dist: pydantic (>=1.10.2,<2.0.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.7.3) ; python_version == "3.7"
Requires-Dist: scipy (>=1.9.3,<2.0.0) ; python_version >= "3.8"
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: Repository, http://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 level of [MXCuBE Qt](https://github.com/mxcube/mxcube/) and [MXCuBE Web](https://github.com/mxcube/mxcube3/)  allowing to access the beamline control system and instrumentation. It acts as a container of single python objects (called hardware objects).

Please read the [contributing guidlines](https://github.com/mxcube/mxcubecore/blob/master/CONTRIBUTING.md/) before submiting your code to the repository.


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 mxubecore module is commonly done as a depdency of either [MXCuBE Web](https://github.com/mxcube/mxcube3/) or [MXCuBE Qt](https://github.com/mxcube/mxcube/).

Standalone installation of the moudle can be done via poetry `poetry install` or for development purpouses (creating a symlink to the current folder) by using pip: `pip install -e .`. Don't forget the trailing "." (period).

mxcubecore depends on python-ldap that in turn depends on the openldap system library. It can be installed through conda by installing the openldap depdency: `conda install openldap` or on systems using apt-get: `sudo apt-get install -y libldap2-dev libsasl2-dev slapd ldap-utils tox lcov valgrind`. See [python-ldap](https://www.python-ldap.org/en/python-ldap-3.4.3/installing.html#debian) for more information.

