Metadata-Version: 2.1
Name: dahu
Version: 2024.2.0
Summary: "Python lightweight, plugin based, data analysis engine"
Home-page: http://www.silx.org
Author-Email: Jérôme Kieffer <jerome.kieffer@esrf.fr>
License:  Permission is hereby granted, free of charge, to any person obtaining a copy
         of this software and associated documentation files (the "Software"), to deal
         in the Software without restriction, including without limitation the rights
         to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         copies of the Software, and to permit persons to whom the Software is
         furnished to do so, subject to the following conditions:
         .
         The above copyright notice and this permission notice shall be included in
         all copies or substantial portions of the Software.
         .
         THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
         THE SOFTWARE.
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Project-URL: Homepage, http://www.silx.org
Project-URL: Documentation, http://www.silx.org/doc/dahu/latest/
Project-URL: Source, https://github.com/kif/dahu
Project-URL: Download, https://github.com/kif/dahu/releases
Project-URL: Tracker, https://github.com/kif/dahu/issues
Requires-Python: >=3.7
Requires-Dist: numpy>=1.10
Description-Content-Type: text/x-rst

Dahu: Data Analysis RPC server over Tango
=========================================

Software chunks initially developped for **ID02 upgrade program** in 2012-2014.

Dahu is a lightweight plugin based framework...
   ... technically a JSON-RPC server over Tango:

* plugins can be class or can be generated from any state-less function written in Python
* a plugin is executed within a job, each job lives in its own thread.
* plugins have empty constructors plus 4 methods (or more)

 - `setup` allows to set the input parameters. Sanitization is performed here.
 - `process` does the work.
 - `teardown` sets the output, the logging and cleans up (if needed).
 - `abort` can be used to stop the processing if a plugin is a daemon.

* the job is responsible for serializing on disk of the plugin's input and output
* jobs can be launched using the tango interface (or other ...)
* plugins have a single input and output, they are simple JSON-serializable dictionaries.

