semvec/pypi-packages huggingface dataset:
runrest 0.0.3
A wrapper for running REST, a reinforcement learning framework for constructing rectilinear Steiner Minimum tree (RSMT)

# runrest

A wrapper for running [REST](https://github.com/cuhk-eda/REST), a reinforcement learning framework for constructing rectilinear Steiner Minimum tree (RSMT)

## How to use

```bash
runrest ./examples/input01.txt
```

### Example input file

x, y coordinates of the terminals are listed in the input file.
New line is used to seperate the nets.

`input01.txt:`

```text
5 0 0 2 4 3 1 4 6 5
```

### Result

The result will be printed to the console.  
Or you can use the '--output' option to save the result to a file.  

```text
3 1 3 2 0 2 0 4
```

It means the RSMT is constructed by the following edges:  
`(3, 1), (3, 2), (0, 2), (0, 4)`

Plot of the output RSMT:

![Result](./doc/example01_result.png)

## License

READ THIS LICENSE AGREEMENT CAREFULLY BEFORE USING THIS PRODUCT. BY USING THIS 
PRODUCT YOU INDICATE YOUR ACCEPTANCE OF THE TERMS OF THE FOLLOWING AGREEMENT. 
THESE TERMS APPLY TO YOU AND ANY SUBSEQUENT LICENSEE OF THIS PRODUCT.

License Agreement for REST

Copyright (c) 2022, The Chinese University of Hong Kong
All rights reserved.

CU-SD LICENSE (adapted from the original BSD license) Redistribution of the any 
code, with or without modification, are permitted provided that the conditions 
below are met. 

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name nor trademark of the copyright holder or the author may be 
   used to endorse or promote products derived from this software without 
   specific prior written permission.

4. Users are entirely responsible, to the exclusion of the author, for 
   compliance with (a) regulations set by owners or administrators of employed 
   equipment, (b) licensing terms of any other software, and (c) local, 
   national, and international regulations regarding use, including those 
   regarding import, export, and use of encryption software.

THIS FREE SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED 
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
SHALL THE AUTHOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, 
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
LIMITED TO, EFFECTS OF UNAUTHORIZED OR MALICIOUS NETWORK ACCESS; PROCUREMENT OF 
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
POSSIBILITY OF SUCH DAMAGE.
scMapping 0.0.1
scMapping is a tool for non-linear dimension reduction method suitable for large-scale high-dimensional sparse single-cell datasets such as scRNA, scATAC, scHi-C, etc, with very few runtime and memory cost.

# scMapping

### *scMapping* is a tool for non-linear dimension reduction method suitable for large-scale high-dimensional sparse single-cell datasets such as scRNA, scATAC, scHi-C, etc, with very few runtime and memory cost.
i2c-adapter 0.2.21
A simple USB to I2C adapter that works.
Requires Python: >=3.7

# A Simple USB to I2C Adapter that works.

The I2C Adapter allows python programs to connect to I2C/QUIIC/STEMMA-QT devices using off the shelf low cost boards such the Raspberry Pico or SparkFun Pro Micro - RP2040. The I2C adapter appears on the computer as a serial port (no device installation required) and acts as a USB to I2C bridge, and this Python package  provides an easy to use API to interact with it using high level commands. 


For example, the schematic below shows the wiring for the [oled_demo.py](https://github.com/zapta/i2c_adapter/blob/main/examples/oled_demo.py) example which drive an I2C OLED display using an I2C Adapter and the luma.oled python package.

<br>
<img  src="https://raw.githubusercontent.com/zapta/i2c_adapter/main/www/wiring_diagram.png"
      style="display: block;margin-left: auto;margin-right: auto;width: 80%;" />
<br>



## Highlights

* Provides USB to I2C-master bridge.
* Supports Windows/Mac/Linux.
* Uses low cost low cost off-the-shelf boards as adapters.
* Does not require driver installation (it appears on the computer as standard a serial port).
* Comes with an easy to use Python API.
* Easy to modify/extend and to adapt to new hardware.
* Permissive open source license. Comercial use OK, sharing and attribution not required. 

<br>

## Python API Example

Package installation

```bash
pip install i2c-adapter --upgrade
```

In the example below, we use an I2C Adapter that appears as serial port "COM7" to access an I2C device at address 0x08. First we write a single byte 0x00 and then read 20 bytes. Upon completion, the 'data' variable contains a bytearray with 20 bytes.

```python
from i2c_adapter import I2cAdapter

i2c = I2cAdapter(port="COM7")
i2c_addr = 0x08
assert i2c.write(i2c_addr, bytearray([0]))
data = i2c.read(i2c_addr,  20)
print(data)
```

In the example below we scan the I2C bus address range 0x00 to 0x7f and look for devices that response to an empty write.
```python
from i2c_adapter import I2cAdapter

i2c = I2cAdapter(port="COM18")
print(f"Scanning I2C bus 0x00 to 0x7f:")
for adr in range(0, 127):
    if i2c.write(adr, bytearray([0]), silent=True):
      print(f"  - Device at 0x{adr:02x}")
```

<br>

## Documentation

Full documentation is available at <https://i2c-adapter.readthedocs.io/>