semvec/pypi-packages huggingface dataset:
iot49kernel 0.0.12.dev0
Jupyter Kernel for IoT Python
License: MIT
Requires Python: >=3.6
Keywords: micropython,circuitpython,iotpython

# Micro/Circuit-Python REPL over IP

Server advertises and replicates USB traffic over IP. Client remotely connects to IoTPython repl.
Also includes a Jupyter Kernel.

## Start as Docker Container

```shell
docker-compose up --force-recreate --build

# not sure this is needed
docker image prune -f
```

## Class Architecture

* *Repl*: (`AbstractRepl`) connection, abstracts type (wired, wireless) and provides `read()` and `write()`
* * *SerialRepl*
*  * *IPRepl*: repl over IP, e.g. Reflector
* *ReplicateRepl*: advertise & replicate Repl over IP
* *ReplAddr*: encapsulate characteristics of repl connection: `id`, `hostname` and connection parameters (e.g. `ip` address). Subclasses `dict`
*  * *Advertise*, *Discover*: IP broadcast advertising `Repl`
* *ReplOps*: run remote code, e.g. `eval()`, `ls()`, `upload()`
* *ReplKernel*: Jupyter kernel wrapper around `Repl`

## TODO:

* Timezone: https://serverfault.com/questions/683605/docker-container-time-timezone-will-not-reflect-changes
* PyPi: https://medium.com/@joel.barmettler/how-to-upload-your-python-package-to-pypi-65edc5fe9c56

## Upload to PyPI

Note: uses USB - won't run in Docker!

```shell
# install locally:
python setup.py install

# push to PyPi
python3 setup.py sdist bdist_wheel
python3 -m twine upload dist/*

# configure PyPi
python3 -m pip install --upgrade setuptools wheel
python3 -m pip install --upgrade twine

python3 -m twine upload --repository testpypi dist/*

# from PyPi
pip3 install iot49kernel

# after installation, start with
iot49server
jupyter lab
```

```shell
python3 -m iot49kernel.install

jupyter kernelspec list
jupyter kernelspec uninstall iot_python

docker-compose restart # or up, if not running
```