Metadata-Version: 2.4
Name: nqrduck
Version: 0.0.12
Summary: Simple Python script to interact with various python modules used for magnetic resonance spectroscopy.
Project-URL: Homepage, https://nqrduck.cool
Project-URL: Bug Tracker, https://git.private.coffee/nqrduck/nqrduck/issues
Project-URL: Source Code, https://git.private.coffee/nqrduck/nqrduck
Author-email: jupfi <support@nqrduck.cool>
License: MIT License
        
        Copyright (c) 2023-2024 jupfi
        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.
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: matplotlib
Requires-Dist: pyqt6
Requires-Dist: pyyaml
Requires-Dist: qdarkstyle
Provides-Extra: all
Requires-Dist: nqrduck-autotm; extra == 'all'
Requires-Dist: nqrduck-broadband; extra == 'all'
Requires-Dist: nqrduck-measurement; extra == 'all'
Requires-Dist: nqrduck-pulseprogrammer; extra == 'all'
Requires-Dist: nqrduck-spectrometer; extra == 'all'
Requires-Dist: nqrduck-spectrometer-limenqr; (sys_platform == 'linux') and extra == 'all'
Requires-Dist: nqrduck-spectrometer-scout; (sys_platform == 'win32') and extra == 'all'
Requires-Dist: nqrduck-spectrometer-simulator; extra == 'all'
Provides-Extra: base
Requires-Dist: nqrduck-measurement; extra == 'base'
Requires-Dist: nqrduck-pulseprogrammer; extra == 'base'
Requires-Dist: nqrduck-spectrometer; extra == 'base'
Requires-Dist: nqrduck-spectrometer-simulator; extra == 'base'
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: pydocstyle; extra == 'dev'
Requires-Dist: pyupgrade; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: lime
Requires-Dist: nqrduck-measurement; extra == 'lime'
Requires-Dist: nqrduck-pulseprogrammer; extra == 'lime'
Requires-Dist: nqrduck-spectrometer; extra == 'lime'
Requires-Dist: nqrduck-spectrometer-limenqr; extra == 'lime'
Description-Content-Type: text/markdown

# NQRduck

## Installation

### Requirements

- Python 3.10+
- pip
- virtualenv

### Setup

1. Clone the repository
2. Create a virtual environment and activate it:

    ```bash
    python -m venv venv
    source venv/bin/activate
    ```

You can install the  nqrduck core via PyPi or from the cloned repository.
3. Install the package with `pip install .[all]` to install all available NQRduck modules inside the cloned repository or just `pip install "nqrduck[all]"` to install the core package from PyPi.
Careful here you might need additional dependencies specified in the respective module repositories.
If  you only want to  install some base  modules use `pip install .[base]` inside the cloned repository or with `pip install -U "nqrduck[base]"` .
You can find the different modules [here](https://git.private.coffee/nqrduck).
4. Run the program with `nqrduck`.

## Usage

Individual features of the software can be installed as separate Python packages, like spectrometer control, pulse sequence programming or simulation of magnetic resonance experiments. The available functionality of the NQRduck program therefore depends on the installed packages.

The UI is structured as follows:

<img src="https://git.private.coffee/nqrduck/nqrduck/raw/branch/main/docs/img/ui_structure_v2.png" alt="drawing" width="800">

The UI is separated into different areas. Section 'a', highlighted in red, represents the menu bar used for general settings of the program and spectrometer selection. Section 'b', outlined in green, allows switching among various modules within the main view of the core, with the active module displayed in bold. Section 'c', depicted in blue, is the active module's view. The currently active module in the figure is the [nqrduck-measurement](https://git.private.coffee/nqrduck/nqrduck-measurement) module used for single frequency mangetic resonance experiments. The overall application is part of the NQRduck core and opens when the NQRduck core is started.

## Uninstall

To uninstall the nqrduck program you can run the following command in the terminal while the virtual environment is activated:

```bash
nqrduck --uninstall
```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details

## Contributing: Developing NQRduck modules

A template module is provided [here](https://git.private.coffee/nqrduck/nqrduck-module). It is a good starting point for developing new modules.

If you want to contribute to the core, please add an issue or a pull request :).
