semvec/pypi-packages huggingface dataset:
I2C-GUI2 0.1.14
A new and improved I2C library with a GUI
Requires Python: >=3.7
Keywords: Awesome, ETROC, GUI, I2C, Library

# I2C-GUI++
A new and improved I2C communication library with a GUI

This is currently a placeholder for the I2C-GUI++ project.

You can install the I2C-GUI++ libraries and GUI with: `python -m pip install I2C-GUI2`

After installation, you can run the individual chip GUIs with dedicated commands such as: `etroc2_gui`
cwt-units-converter 0.1.9
Water units
Requires Python: >=3.6

# Units Converter

Библиотека для конвертации различных единиц измерения, включая специализированные классы для работы с TDS (Total Dissolved Solids) в воде.

## Особенности

- Поддержка различных единиц измерения:
  - Температура (°C, °F, K)
  - Длина (м, см, мм, км, дюймы, футы, ярды, мили)
  - Масса (кг, г, мг, фунты, унции)
  - Объем (м³, л, мл, галлоны, кубические футы)
  - Плотность (кг/м³, г/см³, г/мл, г/л, кг/л, фунт/фут³, фунт/галлон)
  - TDS (мкСм/см ↔ мг/л)

### Класс TDSUnit

Специализированный класс для работы с общим содержанием растворенных твердых веществ (TDS) в воде. 
Реализует конвертацию между электропроводностью (мкСм/см) и концентрацией (мг/л) на основе рекомендаций DuPont.

#### Особенности реализации

- Динамический расчет коэффициента пересчета в зависимости от диапазона электропроводности:
  - Чистая вода (<100 мкСм/см): коэффициент 0.5
  - Солоноватая вода (100-5000 мкСм/см): коэффициент 0.5-0.7
  - Морская вода (>5000 мкСм/см): коэффициент 0.7-0.75

- Поддержка арифметических операций:
  - Сложение и вычитание значений TDS
  - Умножение и деление на числа
  - Автоматическое сохранение единиц измерения при операциях

## Использование

```python
# Создание объекта TDS
tds = TDSUnit()

# Установка значения в мкСм/см
tds.usm = 1000  # солоноватая вода

# Получение значения в мг/л
print(tds.ppm)  # ≈ 537 мг/л

# Установка значения в мг/л
tds.ppm = 7110
print(tds.usm)  # ≈ 10000 мкСм/см

# Арифметические операции
tds1 = TDSUnit()
tds1.usm = 1000

tds2 = TDSUnit()
tds2.usm = 500

sum_tds = tds1 + tds2  # 1500 мкСм/см
half_tds = tds1 / 2    # 500 мкСм/см
```

## Тестирование

Проект включает полный набор unit-тестов для всех классов. Для запуска тестов используйте:

```bash
python -m unittest discover tests
```

## Зависимости

- Python 3.6+
- Стандартная библиотека Python (дополнительные зависимости не требуются)

## Лицензия

MIT License
keyst-monero-toolkit 0.1.1
BIP39 mnemonic/seed to Monero mnemonic tool for Keystone3 pro hardware wallet
Requires Python: >=3.12

# Keystone3 Monero Key Toolkit

## Introduction

The Keystone3 Monero Key Toolkit is a tool designed for Keystone3 hardware wallet users to convert standard BIP39 mnemonics into the 25-word Monero mnemonic.

This tool is designed to provide a way to recover and transfer Monero assets in the event that the hardware wallet is damaged, lost or stolen.

## Usage example

```bash
pip install keyst-monero-toolkit
```

```bash
# bip39 mnemonic
keyst-monero-toolkit -m key stone key stone key stone key stone key stone key stone key stone success

# bip39 seed
keyst-monero-toolkit -s 45a5056acbe881d7a5f2996558b303e08b4ad1daffacf6ffb757ff2a9705e6b9f806cffe3bd90ff8e3f8e8b629d9af78bcd2ed23e8c711f238308e65b62aa5f0
```

output exmaple:

```json
{
    "bip39_mnemonic": "key stone key stone key stone key stone key stone key stone key stone success",
    "bip39_seed": "45a5056acbe881d7a5f2996558b303e08b4ad1daffacf6ffb757ff2a9705e6b9f806cffe3bd90ff8e3f8e8b629d9af78bcd2ed23e8c711f238308e65b62aa5f0",
    "monero_derivation_path": "m/44'/128'/0'/0/0",
    "derivation_seed": "66ec3ba491849c927c9be0bd8387b0a7215c61c69854d53f6585630d4557e752",
    "monero_mnemonic": "unsafe gables auburn amidst syllabus sayings oval sowed utopia tiger certain iceberg meeting ridges neon irony ticket eluded hedgehog acoustic ginger across organs poverty acoustic",
    "spend_keys": "6c3895c1dfd7c3ed22be481ed5ec7f40e3d8ded84f0a3d65a542915475ca6f0e",
    "view_keys": "17921dbd51b4a1af0b4049bc13dc7048ace1dcd8be9b8669de95b8430924ea09",
    "major": 0
}
```

### Example of Python code usage

```python
from keyst_monero_toolkit import KeyPair

bip39_mnemonic = "key stone key stone key stone key stone key stone key stone key stone success"
key_pair = KeyPair.from_bip39_mnemonic(bip39_mnemonic)

monero_mnemonic = key_pair.monero_mnemonic
print(f"Monero mnemonic: {monero_mnemonic}")
# Monero mnemonic: unsafe gables auburn amidst syllabus sayings oval sowed utopia tiger certain iceberg meeting ridges neon irony ticket eluded hedgehog acoustic ginger across organs poverty acoustic

spend_key = key_pair.spend.Raw().ToHex()
print(f"Monero spend_key: {spend_key}")
# Monero spend_key: 6c3895c1dfd7c3ed22be481ed5ec7f40e3d8ded84f0a3d65a542915475ca6f0e

view_key = key_pair.view.Raw().ToHex()
print(f"Monero view_key: {view_key}")
# Monero view_key: 17921dbd51b4a1af0b4049bc13dc7048ace1dcd8be9b8669de95b8430924ea09
```

## Disclaimer

This tool is only for educational or emergency recovery purposes. 

**User should use it at his/her own risk and the developer is not responsible for any loss of assets**.
applepylog 0.1.5
A simple logger for basic projects

## ApplePyLog
[![pypi](https://img.shields.io/pypi/v/applepylog)](https://pypi.org/project/applepylog/)
[![](https://img.shields.io/pypi/pyversions/applepylog)](https://pypi.org/project/applepylog/)

Install with ```pip install applepylog```

A simple logging library for small projects.

There are 4 Logging levels:
* Error
* Info
* Warn
* Debug

You can write to any of these levels and change the current log level of what gets printed from the logger
The log levels work as the order above so a log level of Error will only print Error logs
A log level of Warn will print Warn, Info and Error logs but not Debug
The default log level is Warn

You can pass in any writer with type TextIO, the default is sys.stdout but you can also pass in file writers

You can also specify an alternate writer, which defaults to None, which will write the same as the main writer, this can be useful to write your logs to stdout and also save them to a file. 
This alternate writer also has its own log level that can be specified, also with default of WARN.

Basic Usage:
```python3
from applepylog import Logger

# Creates a logger to stdout
_logger = Logger("Test Logger")
_logger.info("test message") # logs "<timestamp> INFO Test Logger, test message"
_logger.debug("test message") # doesnt log anything because default log level is warn
```

Changing Log Level:
```python3
from applepylog import Logger, LogLevel

#Prints nothing because logger is in error level
_logger = Logger("Test Logger", log_level=LogLevel.ERROR)
_logger.info("test message")
```

Changing writer:
```python3
from applepylog import Logger
import sys

# Creates a logger to stderr
_logger = Logger("Test Logger", writer=sys.stderr)
_logger.info("test message")

# Creates a logger to a file
file = open("log_file.txt", "w+")
_other_logger = Logger("Test Logger", writer=file)
_other_logger.info("file test message")
```

Using the alternate writer:
```python3
from applepylog import Logger
import sys

file = open("./log_file.txt", "w+")
_logger = Logger("Test Logger", writer=sys.stdout, alt_writer=file)
# Writes same log message to both stdout and the log file
_logger.info("test message")
```

Using the alternate writer with a different log level:
```python3
from applepylog import Logger, LogLevel
import sys

file = open("./log_file.txt", "w+")
_logger = Logger("Test Logger", writer=sys.stdout, log_level=LogLevel.ERROR, alt_writer=file, alt_log_level=LogLevel.INFO)
# Writes to the log file but not stdout because of the Log levels of the writers
_logger.info("test message")
```
adif2callhistory 25.3.17
Converts and ADIF file to a call history file usable by Not1MM and N1MM
Requires Python: >=3.9

# adif2callhistory

[![PyPI](https://img.shields.io/pypi/v/adif2callhistory)](https://pypi.org/project/adif2callhistory/)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Python: 3.10+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![Made With:PyQt6](https://img.shields.io/badge/Made%20with-PyQt6-blue)](https://pypi.org/project/PyQt6/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/adif2callhistory)](https://pypi.org/project/adif2callhistory/)

This package allows you to load an arbitrary ADIF file and map the ADIF tags to N1MM or Not1MM call history file fields.
After selecting the fields you wished to export, simply save the file under the name you give it.

![main screen](https://github.com/mbridak/adif2callhistory/blob/main/pic/adif2callhistory_initial.png?raw=true)

## Installation

This Python package is hosted on PyPi. It can be installed with pipx, `pipx install adif2callhistory` or you can use uv.

## Selecting/loading an ADIF file

Click `File -> Load ADIF` I file picker will appear allowing you to select the file. If the file is parsed correctly the drop downs next to the call history field names will populate with the unique ADIF tags found.

One thing that will prevent an ADIF file from parsing is if the ADIF header does not start with a comment line.

So if your ADIF file looks like:

```text
<ADIF_VER:5>2.2.0
<EOH>
<QSO_DATE:8:d>20220625
<TIME_ON:4>1806
```

Just add a line to the top like:

```text
Some Text Here
<ADIF_VER:5>2.2.0
<EOH>
<QSO_DATE:8:d>20220625
<TIME_ON:4>1806
```

and retry it.

## Mapping the fields to tags and saving the file

After the ADIF file is loaded and the drop downs are populated with tags, go down the list of fields, place a checkmark to the left of the desired field and select which tag to map to it.

Here's an example of fields selected and mapped to a Field Day ADIF file:

![mapped fields](https://github.com/mbridak/adif2callhistory/blob/main/pic/adif2callhistory_select_fields.png?raw=true)

After selecting and mapping the fields select `File -> Save Call History` and choose a filename and location to save your file.

You will end up with something like:

```text
!!Order!!,Call,Name,Loc1,Sect,State,Exch1
K6PV,,,LAX,CA,1D
K7SS,DANIEL A ESKENAZI,CN87tn,WWA,WA,1D
K6AA,UNITED RADIO AMATEUR CLUB INC,DM03ur,LAX,CA,3A
K0EU,RANDALL K MARTIN,DM79lp,CO,CO,1B
W3AO,NATIONAL PRESS RADIO CLUB,FM18pv,MDC,MD,1E
W6ZE,ORANGE COUNTY AMATEUR RADIO CLUB INC,DM13cs,ORG,CA,6A
...
```

## Recent Changes

- [25-3-17] Define newline in file open command incase windows user happens to run it.
- [25-3-15] Bumped pyadif-file requirement to 1.3.1
- [25-3-10] Initial push.

## Copyright

PyADIF-File © 2023-2024 by Andreas Schawo is licensed under [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)

PyADIF-File uses

xmlschema Copyright (c), 2016-2022, SISSA (Scuola Internazionale Superiore di Studi Avanzati)

xmltodict Copyright (c), 2012 Martin Blech and individual contributors
jam_sdk 0.10.0
Bebop Jam SDK
Requires Python: <3.12,>=3.11

# Bebop JAM SDK

![Alt text](../bebop.gif?raw=true "Title")

Official SDK for Bebop JAM.

## Functionality

Supplies an interface to implement providing solutions for Jam:

- Managed websocket connection to JAM
- Simple base class to implement for providing solutions
- Cache management and validation
- Fully typed request and responses
- Jam contract deployments and ABIs

## Getting Started

In order to connect to the JAM server, you will need some authentication details: `host, post, name, authentication`. Please contact a team member to obtain these.

Bebop orders go through 2 stages. Quote & Order.

1. Quote: Given the requested tokens, provide a quote.
2. Execute: Execute on chain the quote previously given.
3. Self-Execution Quote: Given the requested tokens, provide a quote and the interactions. Bebop will build the calldata and return it to the user .

To implement these functions, simply implement the `BaseSolver` class with `get_quote`, `execute`, and `get_taker_quote` functions.

[See example here.](./src/jam_sdk/example.py)


## Publishing the package 

```
cd jam_sdk
poetry version <major/minor/patch>
poetry config pypi-token.pypi <api token here>
poetry build
poetry publish
```
ch.sachi.weatherstation 3.3.0
Collects data from tinkerforge outdoor weather station and saves it to sqlite database.
Requires Python: <4.0,>=3.9

# HomeMeasurement
source env/bin/activate deactivate

#Build
python3 -m pip install --user --upgrade setuptools wheel

rm -Rf dist

python3 setup.py sdist bdist_wheel

python3 -m pip install --user --upgrade twine

python3 -m twine upload dist/*
easys7comm-allanmarum 0.2.2
A abstraction of python-snap7
Requires Python: >=3.13

# EasyS7Comm

![In Development](https://img.shields.io/badge/status-In%20Development-yellow)

---

## ⚠️ Important Notice

**EasyS7Comm** is currently in the early stages of development and **is not ready for use in production**.

## Description

EasyS7Comm is a simplified abstraction of the powerful [Python-Snap7](https://github.com/gijzelaerr/python-snap7) tool. This project was created to make Snap7 **accessible to automation professionals with limited programming knowledge**. With EasyS7Comm, you can perform read and write operations on variables quickly and efficiently using minimal code.

While EasyS7Comm abstracts some of [Python-Snap7](https://github.com/gijzelaerr/python-snap7)'s advanced features, this trade-off is ideal for those who need straightforward and easy-to-use automation solutions.

## Features

- **Read Variables:** ![Read](https://img.shields.io/badge/read-partial-yellow)
- **Write Variables:** ![Write](https://img.shields.io/badge/write-not%20developed-red)
- **Simplified Connection:** ![Connection](https://img.shields.io/badge/read-partial-yellow)
- **Error Management:** ![Error Handling](https://img.shields.io/badge/error%20handling-not%20developed-red)

---
## Prerequisites

### Python
Ensure you have Python installed on your system.

### Snap7 DLL
- **Download**: You must download the `snap7.dll` from [SourceForge](https://sourceforge.net/projects/snap7/).
- **Configuration**: After downloading, place the `snap7.dll` in a directory that is accessible in your system's `PATH`. This ensures that EasyS7Comm can locate it during execution.

---
## Installation

Clone the repository and install the dependencies.

```Python
# Clone the repository
git clone https://github.com/your-username/easys7comm.git
cd easys7comm
```

> **Note:** If EasyS7Comm becomes available on PyPI in the future, installation might be as simple as using `pip install easys7comm`.

---
## How to Use

Below is an example demonstrating how to use EasyS7Comm for reading and writing operations with a PLC.

```Python
# examples/basic_usage.py
from easys7comm import PLC, DataType

def main():
    try:
        # Create a PLC instance with the specified IP address
        plc = PLC("192.168.0.2")
        
        # Write the string "Allan" to the PLC variable
        plc.write("DB20.DBX12.0", "Allan", DataType.STRING)
        
        # Read and print the value from the variable
        print(plc.read("DB20.DBX12.0", DataType.STRING))
        
        # Check and print if the connection is active
        print(plc.get_connected())
        
    except Exception as e:
        print("An error occurred:", e)
        
    finally:
        # Close the connection with the PLC
        plc.close()
```

> **Tip:** Ensure your PLC is properly configured and your network connection is stable to avoid connection issues.
nomad-camels-driver-agilent-34970 0.1.3
Driver for communicating with a Voltcraft PPS power supply.
Requires Python: >=3.9.6

# NOMAD-CAMELS Driver for Voltcraft PPS

Driver for communicating with a Agilent 34970 series switch matrix written for the measurement software [NOMAD-CAMELS](https://fau-lap.github.io/NOMAD-CAMELS/).

## Features
(De-)Activate (i.e. electrically open/close) connections of the switch matrix modules. Read the integrated DMM. Configure the DMM reading, most integrated. If your use case is not integrated yet, contact us at [nomad-camels@fau.de](mailto:nomad-camels@fau.de).

## Documentation

For more information and documentation visit [this page](https://fau-lap.github.io/NOMAD-CAMELS/doc/instruments/instruments.html).
gisdo 2.48.0
Gisdo
Requires Python: >=3.9

# Плагин взаимодействия с ГИС Дошкольное образование

## Настройки подключения плагина:
Для подключения плагина к системе нужно: 

- добавить пакет в список INSTALLED_APPS;
- Запустить миграции.

Расчет плагин ведет через `task celery`. Поэтому перед его включением проверьте, что у вас настроена очередь и брокер 
задач.
Для периодического автоподсчета задач требуется процесс `celery beat`.

1. Добавить в файл `kinder.conf` следующие настройки:
::

  [gisdo]
  PUSH_DATA_URL = http://31.13.128.102/pe/pushdataservice.easasmx?WSDL
  FEDERAL_DISTRICT = VOLGA_REGION
  [region]
  REGION_CODE = 16

`PUSH_DATA_URL`
  параметр отвечает за адрес wsdl сервиса приема показателей.

`FEDERAL_DISTRICT`
  параметр настраивается в соответствии с федеральным округом, в котором установлена система. Значения:

- `VOLGA_REGION` -            **Поволжский Федеральный округ**
- `SIBERIAN_REGION` -         **Сибирский Федеральный округ**
- `CENTRAL_REGION` -          **Центральный Федеральный округ**
- `NORTHWEST_REGION` -        **Северо-Западный федеральный округ**
- `FAR_EASTERN_REGION` -      **Дальневосточный федеральный округ**
- `URALIAN_REGION` -          **Уральский федеральный округ**
- `NORTH_CAUCASUS_REGION` -   **Северо-Кавказский федеральный округ**
- `SOUTH_REGION` -            **Южный Федеральный округ**

`REGION_CODE`
  код региона

2. Запустить 1 процесс Celery для работы с периодическими задачами и отдельную очередь задач для гисдо(c версии 2.1.0):

    ```
    celery -A kinder beat -l INFO
    celery -A kinder worker -l INFO --app=kinder.celery_app:app -Q gisdo -c 4
    ```
shiny-validate 0.1.3
Input Validation for Shiny apps
Requires Python: <4.0,>=3.8

# shiny_validate

## Overview

This is a python implementation of [shinyvalidate](https://rstudio.github.io/shinyvalidate/), which provides input validation for [Shiny for Python](https://shiny.posit.co/py/) applications.

## Installation

Install from Pypi with:

```
pip install shiny_validate
```

Or, you can install the latest development version from GitHub:

```
pip install git+https://github.com/posit-dev/py-shiny-validate.git
```

## Basic usage

To add validation to your Shiny app, you need to:

1.  Create an InputValidator object: `iv = InputValidator()`

2.  Add one or more validation rules to the InputValidator: `iv.add_rule("title", check.required())`

3.  Turn the validator on: `iv.enable()`

That's all you need to do to get validation messages to show up.

```python
from shiny import App, ui, render, req
from shiny_validate import InputValidator, check

app_ui = ui.page_fluid(
    ui.input_text("name", "Name"),
    ui.input_text("email", "Email"),
    ui.output_text("greeting"),
)


def server(input, output, session):
    iv = InputValidator()

    iv.add_rule("name", check.required())
    iv.add_rule("email", check.required())
    iv.add_rule("email", check.email())
    iv.enable()

    @render.text
    def greeting():
        req(iv.is_valid())
        return f"Nice to meet you, {input.name()} <{input.email()}>!"


app = App(app_ui, server)
```

You can also use the `.is_valid()` method to ensure that the inputs are valid before rendering an output:

```python
@render.plot
def plot():
    req(iv.is_valid())
    # Build and return a plot if the inputs are valid
```