semvec/pypi-packages huggingface dataset:
meenpy 0.1.5
meenpy is a library of utilities for mechanical engineering problem solving.
Requires Python: >=3.12

# meenpy

`meenpy` is a library of utilities for mechanical engineering problem solving.

`meenpy.numerics` enables the succinct articulation equations, efficient assembly of systems, and provides a transparent solving interface.

## Installation

Check out the package manager [uv](https://docs.astral.sh/uv/) and add `meenpy` to your project or workspace.

```bash
uv add meenpy
```

Alternatively, install `meenpy` directly with [pip](https://pip.pypa.io/en/stable/).

```bash
pip install meenpy
```

## Usage

```python
import numpy as np, sympy as sym, pandas as pd
from meenpy.numerics import ScalarEquation, MatrixEquation, TabularEquation, System
from meenpy.numerics.utils import *

## Variable Definitions
T, x, p, v = sym.symbols("T, x, p, v")
T_amb, h, Qd = sym.symbols("T_amb, h, Qd")
column_map = {T: "Temperature", x: "Quality", p: "Pressure", v: "Specific Volume"}

## Equation Definitions
water = TabularEquation(pd.read_csv("test/assets/water.csv"), ["Temperature", "Quality"], residual_type="all_column_differential")
convection = ScalarEquation(Qd, h * (T - T_amb))

## System Composition and Solution
water_system = System([water, convection], column_map)
water_system_solution = water_system.solve({T_amb: 25, h: 1, Qd: 100}, {T: 100})
```

## Contributing

Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License

[MIT](https://choosealicense.com/licenses/mit/)
matchbox2py 0.1.6
Official Python library for controlling Integrated Optics MatchBox2 laser modules via USB serial interface.
Requires Python: >=3.8

<p align="center">
  <a href="https://integratedoptics.com" target="_blank">
    <img src="https://integratedoptics.com/files/IO_logo.png" alt="Integrated Optics" width="200"/>
  </a>
</p>

<h1 align="center">Official MatchBox2 Python Library</h1>


---

## 🧩 Overview

**MatchBox2 Python Library** provides a simple and structured interface for controlling **Integrated Optics MatchBox2** laser modules over USB serial communication.

It offers:
- High-level API for laser operations
- Structured models for laser info, settings, and readings
- Built-in command parsing for MatchBox2 and Combiner lasers
- Support for automatic device discovery

---

## ⚙️ Installation

Install the library directly from GitHub:

```bash
python -m pip install git+https://github.com/Integrated-optics/matchbox2py.git
```

or from a local clone:

```bash
git clone https://github.com/Integrated-optics/matchbox2py.git
cd matchbox2py
python -m pip install .
```

---

## 🚀 Quickstart

### MatchBox2 Laser Example

```python
from matchbox2 import MatchBox2Laser

available_lasers = MatchBox2Laser().get_available_lasers()

if available_lasers:
    laser = MatchBox2Laser()
    laser.connect(available_lasers[0].portName)
    laser.set_laser_on()
    readings = laser.get_laser_readings()
    print(readings)
    laser.set_laser_off()
    laser.disconnect()
else:
    print("No lasers detected.")
```

### MatchBox2 Laser Combiner Example

```python
from matchbox2 import MatchBox2CombinerLaser

available_lasers = MatchBox2CombinerLaser().get_available_lasers()

if available_lasers:
    laser = MatchBox2CombinerLaser()
    laser.connect(available_lasers[0].portName)
    laser.set_enable_power()
    readings = laser.get_laser_readings()
    print(readings)

    # Enable / disable diodes
    for i in range(1, 5):
        laser.set_diode_enable(i)
    for i in range(1, 5):
        laser.set_diode_disable(i)

    laser.set_disable_power()
    laser.disconnect()
else:
    print("No lasers detected.")
```

---

## 🪪 License

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

---

## 🌐 Links

- **Homepage:** [https://integratedoptics.com](https://integratedoptics.com)  
- **Repository:** [https://github.com/Integrated-optics/matchbox2py](https://github.com/Integrated-optics/matchbox2py)  
- **Contact:** [info@integratedoptics.com](mailto:info@integratedoptics.com)

---

<p align="center">
  <i>© 2025 Integrated Optics</i>
</p>
opload 0.4.0
Opload: Open Loading Server
Requires Python: >=3.12

# `Opload`: Open Loading Server

## Local installation

You should be able to clone this repo and install the package:
```
$ pip install -e opload
```

For local testing, be sure to set the following env.variables: 
* `OPLOAD_BACKEND_SERVICE=STDLIB`

To facilitate endpoint calling while developing, you may also want to set `FRD_RESTAPI_DISABLE_AUTH=1`.

Start the server:
```
$ fred serve --classname RouterCatalog --classpath opload.router.catalog
```
* Or just `fred serve` if the env.variables are correctly set.
* Or use the direct `opload serve` command. 


A key that doesn't exist will return a `null` value (i.e., `"val":null`):

```
$ curl --request GET http://0.0.0.0:8000/get?key=demo/1.txt
```

You can define the holding value of a key via the `set` endpoint:

```
$ curl --request POST http://0.0.0.0:8000/set --data '
{
  "key": "demo/1.txt",
  "value": "Hello, world."
}
'
```