Metadata-Version: 2.4
Name: NeXpy
Version: 2.0.0
Summary: Python GUI to analyze NeXus data
Author-email: Raymond Osborn <rayosborn@mac.com>
License: Licensing Terms for NeXpy
        -------------------------
        
        NeXpy is licensed under the terms of the Modified BSD License (also known as
        New or Revised BSD), as follows:
        
        Copyright (c) 2014-2021, NeXpy Development Team
        
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        Redistributions of source code must retain the above copyright notice, this
        list of conditions and the following disclaimer.
        
        Redistributions in binary form must reproduce the above copyright notice, this
        list of conditions and the following disclaimer in the documentation and/or
        other materials provided with the distribution.
        
        Neither the name of the NeXpy Development Team nor the names of its
        contributors may be used to endorse or promote products derived from this
        software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
        ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
        About the NeXpy Development Team
        ----------------------------------
        
        The NeXpy Development Team is the set of all contributors to the NeXpy
        project on the Github at https://github.com/nexpy/nexpy. The project is
        currently led by Ray Osborn.
        
        Copyright
        ---------
        
        The following banner should be used in any source code file to indicate the 
        copyright and license terms:
        
        #-----------------------------------------------------------------------------
        # Copyright (c) 2014-2021, NeXpy Development Team.
        #
        # Distributed under the terms of the Modified BSD License.
        #
        # The full license is in the file COPYING, distributed with this software.
        #-----------------------------------------------------------------------------
        
Project-URL: Homepage, https://nexpy.github.io/nexpy
Project-URL: Repository, https://github.com/nexpy/nexpy.git
Project-URL: Issues, https://github.com/nexpy/nexpy/issues
Project-URL: Documentation, https://nexpy.github.io/nexpy
Project-URL: Changelog, https://github.com/nexpy/nexpy/releases
Keywords: neutron scattering,x-ray scattering,data analysis,visualization
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: COPYING
Requires-Dist: ansi2html
Requires-Dist: fabio
Requires-Dist: h5py
Requires-Dist: ipython
Requires-Dist: lmfit
Requires-Dist: matplotlib
Requires-Dist: mplcursors
Requires-Dist: nexusformat>=2.0.0
Requires-Dist: numpy
Requires-Dist: packaging
Requires-Dist: pillow
Requires-Dist: pygments
Requires-Dist: pylatexenc
Requires-Dist: qtconsole
Requires-Dist: qtpy
Requires-Dist: scipy
Requires-Dist: importlib_metadata; python_version < "3.10"
Requires-Dist: importlib_resources; python_version < "3.10"
Provides-Extra: testing
Requires-Dist: pytest; extra == "testing"
Provides-Extra: spec
Requires-Dist: spec2nexus; extra == "spec"
Dynamic: license-file

Introduction
============
NeXpy provides a high-level python interface to HDF5 files, particularly those
stored as NeXus data, within a simple GUI. It is designed to provide an 
intuitive interactive toolbox allowing users both to access existing NeXus 
files and to create new NeXus-conforming data structures without expert 
knowledge of the file format.

See the [NeXpy documentation](http://nexpy.github.io/nexpy) for more details.

Installing and Running
======================
Released versions of NeXpy can be installed using either

```
    $ pip install nexpy
```

or::

```
    $ conda install -c conda-forge nexpy
```

The source code can be downloaded from the NeXpy Git repository:

```
    $ git clone https://github.com/nexpy/nexpy.git
```

Prerequisites
=============
Python Command-Line API
-----------------------
NeXpy provides a GUI interface to the 
[nexusformat API](https://github.com/nexpy/nexusformat), which uses 
[h5py](https://www.h5py.org) to read and write HDF5 files that implement the 
[NeXus data format standard](https://www.nexusformat.org). It does not use the 
NeXus C API, which means that the current version cannot read and write legacy
HDF4 or XML NeXus files. One of the 
[NeXus conversion utilities](https://manual.nexusformat.org/utilities.html)
should be used to convert such files to HDF5.

If you only intend to utilize the Python API from the command-line, the only 
other required libraries are [NumPy](http://numpy.org) and 
[SciPy](http://scipy.org). Autocompletion of group and field paths within an
open file is available if [IPython](https://ipython.org/) is installed.

* [nexusformat](https://github.com/nexpy/nexusformat)
* [h5py](https://www.h5py.org)
* [numpy](https://numpy.org/)
* [scipy](https://scipy.org/)
* [IPython](https://ipython.org/)

NeXpy GUI
---------
The GUI is built using PyQt. The 
[qtpy package](https://github.com/spyder-ide/qtpy) is used to import whatever 
PyQt library is installed, whether PyQt5, PyQt6, PySide2, or PySide6.

The GUI embeds an [IPython shell](http://ipython.org/) and
[Matplotlib plotting pane](http://matplotlib.sourceforge.net), within a Qt
GUI based on the Jupyter QtConsole with an in-process kernel. 

Least-squares fitting of 1D data uses the
[LMFIT package](https://lmfit.github.io/lmfit-py/).
          
* [qtpy](https://github.com/spyder-ide/qtpy)
* [qtconsole](https://qtconsole.readthedocs.io/)
* [IPython](https://ipython.org/)
* [matplotlib](https://matplotlib.sourceforge.net/)
* [lmfit](https://lmfit.github.io/lmfit-py/)
* [pylatexenc](https://pylatexenc.readthedocs.io/)
* [pillow](https://pillow.readthedocs.io/)
* [ansi2html](https://pypi.org/project/ansi2html/)

Additional Packages
-------------------
Importers may require additional libraries to read the imported files in their 
native format, e.g., [spec2nexus](http://spec2nexus.readthedocs.org/) for 
reading SPEC files or [FabIO](https://github.com/silx-kit/fabio) for reading
TIFF and CBF images.

A 2D smoothing option is available in the list of interpolations in the signal 
tab if [astropy](<http://www.astropy.org>) is installed. It is labelled 
'convolve' and provides, by default, a 2-pixel Gaussian smoothing of the data. 
The number of pixels can be changed in the shell by setting `plotview.smooth`.

The following packages are recommended.

* TIFF/CBF file imports: [fabio](https://github.com/silx-kit/fabio)
* SPEC file imports: [spec2nexus](http://spec2nexus.readthedocs.org/)
* Gaussian smoothing: [astropy](http://www.astropy.org)

To run with the GUI
===================
To run from the installed location, add the $prefix/bin directory to your path
if you installed outside the python installation, and then run:

```
    $ nexpy [-r]
```
The `-r` option restores all files loaded in the previous session.

User Support
============
Consult the [NeXpy documentation](http://nexpy.github.io/nexpy) for details 
of both the Python command-line API and how to use the NeXpy GUI. If you have 
any general questions concerning the use of NeXpy, please address 
them to the 
[NeXus Mailing List](http://download.nexusformat.org/doc/html/mailinglist.html). 
If you discover any bugs, please submit a 
[Github issue](https://github.com/nexpy/nexpy/issues), preferably with relevant 
tracebacks.
