semvec/pypi-packages huggingface dataset:
uFire-SHT30 0.9.0
Measure temperature and humidity with the Sensiron SHT30 sensor.
Requires Python: >=3.6

Mod-ORP
=======

> [Datasheet](https://ufire.dev/files/mod-orp_datasheet.pdf) 📜

Add the ability to measure ORP to your hardware application with a fully digital interface.

#### Summary ℹ️

*   mV range of -2.23 to 2.23
*   Accuracy ±0.001 mV
*   Resolution 0.001 mV units
*   I²C, UART, and USB interfaces
*   1-Wire interface for DS18B20 temperature sensor
*   25x15 mm for castellated or DIP mounting
*   Single point calibration

* * *

### Use

*   [I²C Arduino Library Documentation](https://ufire.dev/files/mod-orp_arduino_library.pdf)
*   [I²C Raspberry Pi Python Documentation](https://ufire.dev/files/mod-orp_raspberrypi_library.pdf)

* * *

### Design ✒️

Adding a module to your own design is straightforward. You'll need:

1.  bus connection to your controlling device (I2C, UART, USB)
2.  clean, preferably isolated, power supply
3.  probe connection (U.FL, BNC, terminal block)

Some resources to get started:

*   [Schematic of the Isolated Qwiic Dev Board](https://ufire.dev/files/isolated_qwiic_dev_board_schematic.pdf)
*   Design Incorporation section of the [Datasheet](https://ufire.dev/files/mod-orp_datasheet.pdf)

> [Request a custom board](https://docs.google.com/forms/d/e/1FAIpQLSfiCyjnq35GVyaRjVw6HphhNFNmoyi723qlqVLjUhc-TrmvfQ/viewform)

* * *

#### Ask a question 🤙

*   [Support Request](https://docs.google.com/forms/d/e/1FAIpQLSekGsS88VkVGCOdW58-MLXKEMpZ8m3PTjGt28sdiWZpEqDXPg/viewform)
*   [Discord](https://discord.gg/rAnZPdW)

* * *
### Buy One
[Mod-ORP](https://ufire.co) - just the sensor

[Isolated Qwiic Dev Board](https://ufire.co) - all the components needed to use the module
userdefaults3 1.1.8
Python 3 rewrite of userdefaults, a pure-Python interface to NSUserDefaults.
Requires Python: >=3.6

# userdefaults3

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/userdefaults3)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/userdefaults3)

Python 3 rewrite of userdefaults, a pure-Python interface to NSUserDefaults.

The singular 'UserDefaults' class provides the main interface, which should be used
as a regular dictionary.
Python types are converted to their Obj-C equivlents on writing to UserDefaults.

## Usage

```python
>>> with UserDefaults() as ud:
>>>     ud["key"] = value
>>>
```

Or, for more flexible access to the UserDefaults class:

```python
>>> ud = UserDefaults()
>>> ud["key"] = value
>>> ...  # other operations here
>>> ud.sync()  # write back to plist file, does nothing on Obj-C backend
```

On supported platforms that have a Obj-C backend, the UserDefaults class acts as a
shim for NSUserDefaults. Otherwise, a naive file handle is used to modify
UserDefaults using plistlib.

Supported backends:
- pyobjc (MacOS)
- rubicon-objc (Darwin/Pyto)
- objc_util (Pythonista)

If your platform does not have a Obj-C backend (unless you are on Libterm/a-Shell),
you problably should **not** use this as directly writing to the plist file itself is
discouraged (as quoted from Apple's docstring):

> Don’t try to access the preferences subsystem directly. Modifying preference
> property list files may result in loss of changes, delay of reflecting changes,
> and app crashes.

The naive file method is kept to support platforms which do not have/cannot install
a Obj-C backend (i.e Libterm, a-Shell).

Known bugs:
- On Pyto, writing to the inputHistory key using the Obj-C backend results in a `SIGKILL` (crashes).

## Building

Use flit to build/install:

```bash
$ flit build
```