lvmpwi
Lvm Planewave PWI Clu Wrapper
Features
- CLU based wrapper for Planewave PWI.
- Uses a container for deployment and testing.
- Uses podman¹ for building the container.
¹ Setting an alias to use docker might work.
alias podman="sudo docker"
Todo
- Container not using the host network
Note
As of version 0.0.9 the container is renamed from ubuntu_lvmt_pwi to lvmpwi
Quickstart
Beginning with version 0.0.9 the container doesnt have to be build, a container is download automatically from github.
git clone https://github.com/sdss/lvmpwi.git
cd lvmtan
poetry run container_start --simulator --name=lvm.sci.pwi&
Prerequisites
Some linux distributions do not have python >= 3.7 as the standard python3 version.
Centos 8.X
# as root
yum install python38-devel
# as user
python3.8 -m pip install --user --upgrade pip
pip3.8 install poetry
export PATH=~/.local/bin/:$PATH
OpenSuSe 15.2/15.3
# as root
zypper ar https://download.opensuse.org/repositories/devel:/languages:/python:/Factory/openSUSE_Leap_15.2/ devel_python
zypper install python39-devel
# as user
python3.9 -m pip install --user --upgrade pip
pip3.9 install poetry
export PATH=~/.local/bin/:$PATH
Quick start
Download
git clone https://github.com/sdss/lvmpwi.git
cd lvmpwi
Build (optional)
# update local py env
poetry update
poetry install
# build sdist & wheel (optional)
poetry build
# build pwi container
poetry run container_build
# rebuild pwi container from scratch
poetry run container_build --no-cache
Run container
poetry run container_start
# with pwi4 port 8220 exposed
poetry run container_start --debug
poetry run container_stop
# run container with vnc - uses a free port between 5900 - 5909
poetry run container_start --without-ui
# run container with killing current instance
poetry run container_start --kill
# run container using the local lvmpwi instead of the git version included into the container
poetry run container_start --debug
# start multiple pwi container with simulation screen size for vnc sessions
poetry run container_start --simulator --name=lvm.sci.pwi&
poetry run container_start --simulator --geom=800x600 --without-ui --name=lvm.skye.pwi&
poetry run container_start --simulator --geom=800x600 --without-ui --name=lvm.skyw.pwi&
poetry run container_start --simulator --geom=800x600 --without-ui --name=lvm.spec.pwi&
# run autotuner from container
# Note: the standard autotuner needs opengl, which is not available with tigervnc/tightvnc, only with turbovnc and native display.
poetry run container_autotuner
Run tests
# run tests
poetry run pytest
# ... include slow tests with enabled log to stdout
poetry run pytest -p no:logging -s -v --runslow
Run native pwi client interface
# run python with path to native pwi interface¹
export PYTHONPATH=python/lvmpwi/pwi/:$PYTHONPATH
poetry run python
# see also lvmpwi/python/lvmpwi/pwi/pwi4_client_demo.py²
# the documentation of the api is inside the code.
import time
from pwi4_client import PWI4
pwi4 = PWI4()
s = pwi4.status()
if not s.mount.is_connected:
print ("Connecting to mount...")
s = pwi4.mount_connect()
print ("Mount connected:", s.mount.is_connected)
¹ pwi4_client.py ² pwi4_client_demo.py
Publish
# publish to pypi
poetry publish --username=USER --password=PASS
# build rpm package
poetry run python setup.py bdist_rpm
# build deb package - needs python3-stdeb
poetry run python setup.py --command-packages=stdeb.command bdist_deb
Metadata
Release files for sdss-lvmpwi 0.0.42
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sdss_lvmpwi-0.0.42.tar.gz | 49.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sdss_lvmpwi-0.0.42-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.3 kB
Release files / sdss_lvmpwi-0.0.42.tar.gz
| Download URL | sdss_lvmpwi-0.0.42.tar.gz |
|---|---|
| Size | 49.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09cf78c95525680bd57a85b5a6bfae6958a4dc8f9e04ed7dd1e3c6a2928050e2
|
|
BLAKE2b-256 checksum How to use checksums |
7f228c5d4356584ecd758fec0e5fd31e4ac4fec6024efa5d1b207732d6e82515
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 18, 2025.
Transparency logRelease files / sdss_lvmpwi-0.0.42-py3-none-any.whl
| Download URL | sdss_lvmpwi-0.0.42-py3-none-any.whl |
|---|---|
| Size | 26.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8da650d9e9c988e29bc849129966572598841792b247e0071e68c5da978dda1b
|
|
BLAKE2b-256 checksum How to use checksums |
98e74078f6dd8a0b7921611bd333319708bd0aa21d2a5a3a6a7533b3eb6f32b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 18, 2025.
Transparency log