semvec/pypi-packages huggingface dataset:
pyicon-diagnostics 0.4.0
Diagnostic python software package for ICON

# User guide for pyicon

Pyicon is a python post-processing and visualization toolbox for ICON with a focus on ocean data. The three main features of pyicon are:

* a number of functions to facilitate the every-day script-based plotting of ICON data
* an interactive (ncview-like) plotting GUI for Jupyter notebook
* a monitoring suite for ICON ocean simulations which combines dedicated diagnostic plots of an ICON simulation on a website

Pyicon is developed within the DFG-project TRR181 - Energy Transfers in Atmosphere and Ocean.

The pyicon documentation can be found here: [documentation](https://m300602.gitlab-pages.dkrz.de/pyicon/)

Pyicon is hosted at: (https://gitlab.dkrz.de/m300602/pyicon/)

## Quick start for pyicon 

You can install pyicon via pip:

```bash
pip install pyicon-diagnostics
```

However, if you want to use the most recent development version, it is advisable to
download pyicon with git:

```bash
git clone git@gitlab.dkrz.de:m300602/pyicon.git
```

Install pyicon by:

```bash
cd pyicon
pip install -e ./
```

If you notice that some requirements were not met by the installation, you can 
also use conda to install the requirements:

```bash
conda env create -f ci/requirements_latest.yml
```

or on DKRZ's super computer Levante use

``` bash
module load python3/2023.01-gcc-11.2.0
pip install healpy
```

To update pyicon, you only need to enter the pyicon directory update the git repository via

```bash
git pull
```

## Quick start for pyicon @DWD (Confluence, only intern)
https://ninjoservices.dwd.de/wiki/display/KUQ/pyICON+for+ICON+with+NWP+physics

## Installing locally

You can also install `pyicon` locally via `pip`. However, due to dependencies of `cartopy` it is advised to install `cartopy` first via `conda`.

```bash
conda install xarray cartopy dask -c conda-forge
```

Once, `cartopy` is installed in your environment:

```bash
pip install git+https://gitlab.dkrz.de/m300602/pyicon.git
```

## Developing
When adding new functions, make sure to document them with a docstring. This should detail what the function does, the arguments and what type of objects it returns. Examples are encouraged. We use so-called "numpy" style docstrings which are then automatically rendered into the sphinx documentation. A guide to numpy style docstrings is available [here](https://numpydoc.readthedocs.io/en/latest/format.html) and they even produce some nice [examples](https://numpydoc.readthedocs.io/en/latest/example.html#example).
pyquaca 0.0.4
An interface to query APIs or make HTTP requests, parse the response with custom parsers, and cache the result for future use.
Requires Python: >=3.11
Keywords: cache, query, requests

# PyQuaca
![bandit](https://github.com/taylorhmorris/pyquaca/actions/workflows/bandit.yml/badge.svg?event=push)
![style](https://github.com/taylorhmorris/pyquaca/actions/workflows/lint.yml/badge.svg?event=push)
![tests](https://github.com/taylorhmorris/pyquaca/actions/workflows/tests.yml/badge.svg?event=push)
[![docs](https://github.com/taylorhmorris/pyquaca/actions/workflows/docs.yml/badge.svg?event=push)](https://taylorhmorris.github.io/pyquaca/)
![GitHub Release](https://img.shields.io/github/v/release/taylorhmorris/pyquaca?sort=semver)



**Py**thon **Qu**ery **a**nd **Ca**che provides an interface to query APIs or make HTTP requests, parse the response with custom parsers, and cache the result for future use.

## Installation

You can install this package using pip:

```bash
pip install git+ssh://git@github.com/taylorhmorris/pyquaca.git
```

## Documentation

- [Documentation](https://taylorhmorris.github.io/pyquaca/)

## License

This project is licensed under the MIT License.
PyBLNET 0.10.0
Automate wireless communication to UVR1611 via BL-NET
Requires Python: >=3
Keywords: python, uvr1611, blnet, technische alternative, home automation, iot

# PyBLNET - a very basic python BL-NET bridge
[![Build status](https://github.com/nielstron/pyblnet/actions/workflows/build.yml/badge.svg)](https://github.com/nielstron/pyblnet/actions/workflows/build.yml)
[![Coverage Status](https://coveralls.io/repos/github/nielstron/pyblnet/badge.svg?branch=master)](https://coveralls.io/github/nielstron/pyblnet?branch=master)

A package that connects to the BL-NET that is connected itself to a UVR1611 device by Technische Alternative. 
It is able to read digital and analog values as well as to set switches to ON/OFF/AUTO.

Documentation on the modules and their methods can be found with the methods and modules themselves.

Two interfaces to BLNet exist and both are supported:
- Webinterface  - Class BLnetWeb
- BLNet-Direct protocol [1] - Class BLNETDirect

However, as of now, there is no testing on the BLNet-Direct protocol *of any kind*, so enabling it is discouraged until the interface is fixed.
Parsing the data via the web interface is the preferred way of accessing the BLNet for now.

The class BLNET is a wrapper around the two classes. When initializing the class, the two interfaces can be activated/deactivated. 
BLNetDirect provides 'analog', 'digital',  'speed', 'energy', 'power', whereas BLnetWeb supports 'analog' and 'digital' only.
If both are active, BLNetDirect has priority.
Setting switches and reading their manual/auto state is only possible via the BLNetWeb interface.

### Usage

```python
from pyblnet import blnet_test, BLNET, BLNETWeb, BLNETDirect

ip = '192.168.178.10'

# Check if there is a blnet at given address
blnet_test(ip)  # -> True/False

# Convenient high level interface
blnet = BLNET(ip, password='pass', timeout=5)

# Control a switch by its ID
blnet.turn_on(10)
blnet.turn_auto(10)
blnet.turn_off(10)

# Fetch data (contains all available data using enabled interfaces)
print(blnet.fetch())

# The low level modules are also available
# note that the direct use of these modules is discouraged though

# Fetch the latest data via web interface
# Note that manual log in and log out are required
# when not using the with statement
with BLNETWeb(ip, password='pass', timeout=5) as blnet_session:
    print(blnet_session.read_analog_values())
    print(blnet_session.read_digital_values())

    # For publishing values
    blnet_session.set_digital_value('10', 'AUS')
    # Note that without explicit log out,
    # the BLNET will block any further web access for the next 150s
    # this is handled automatically when using the with statement

# Fetch data via the Protocol developed by TA
blnet = BLNETDirect(ip)
# Fetching the latest data
print(blnet.get_latest())
# Still inofficial because unexplicably failing often
print(blnet._get_data(1))
```


[1] https://www.haus-terra.at/heizung/download/Schnittstelle/Schnittstelle_PC_Bootloader.pdf