81823768c0
* feature More parameter item types Pen: Pops up a dialouge that allows the user to customize a pen. Setting pen value is not working yet. Progress bar: For indication things. Slider: Easier way to set values that dont require precision. Fonts: Picking font types. Next thing could be a Font dialog. Calendar: For picking dates or intervals Open/save file/files/directory: Pops up an open/save file/directory dialog to select a file/directory. Filter string and caption can be defined too. A PenSelectorDialog widget was created for the pen parameter item too. Also added these parameter items to the example. * PyQt/Side6 compatibility fixup * Revisions from intial PR Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialog.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/parametertree/parameterTypes.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/parametertree/parameterTypes.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialog.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Update pyqtgraph/widgets/PenSelectorDialogbox.py Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> Apply suggestions from code review Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com> * Bugfix: module instead of class import on param tree example * Enrich the slider parameter * Address pijyoi comments on pen style parameter * Different file picker for easier porting * Better organization and formatting, minor refactoring * PyQt6/PySide6 fixup for file dialog * Minor adjustment to file picker * Bugfix: for 'None' sigChanged 'None' is explicitly allowed for a WidgetParameterItem's `sigChanged` value. However, this raises an error on a changed value unless the commit's fix is applied * Calendar works better as sub item * Fixes bugs in pen parameter's dialog + makes it resizable * more bugfixes and recommended changes, lets pen serialize its options * better pen save state * Fixes file parameter qualms * Fixes font parameter qualms * Fixes calendar parameter qualms * Fixes multiply-defined slider optsChanged * Fixes pen parameter qualms * ptree example minor bugfix * Pen dialog bugfixes * File dialog bugfixes / mild improvements * unto ptree save state regression * file fixup * Adds parameter descriptions to docstrings * Improved parameter documentation * adds 'relativeTo' option for file parameter * Less abuse of Qt enums during or-operations * More uniform handling of relative paths * More cleanup of enum setting * better name for window title (matches qt name) * Favor os.path over pathlib * Exposes 'directory', 'windowTitle' to file parameter * Fixup and add comparison to parameter tree state restoration * Exposes "cosmetic" in pen parameter * Indicate defaults in parameter documentation * QtEnumParameter works for enums outside QtCore.Qt * see if altering pytest report fixes ci bug * Cleanup unused import and redundant `self.widget` assignments Co-authored-by: Fekete Imre <feketeimre87@gmail.com> Co-authored-by: ChristophRose <42769515+ChristophRose@users.noreply.github.com>
129 lines
5.3 KiB
YAML
129 lines
5.3 KiB
YAML
name: main
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 30
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04 , windows-latest, macos-latest]
|
|
qt-lib: [pyqt, pyside]
|
|
python-version: [3.7, 3.8, 3.9]
|
|
include:
|
|
- python-version: "3.7"
|
|
qt-lib: "pyqt"
|
|
qt-version: "PyQt5~=5.12.0"
|
|
numpy-version: "~=1.17.0"
|
|
- python-version: "3.7"
|
|
qt-lib: "pyside"
|
|
qt-version: "PySide2~=5.12.0"
|
|
numpy-version: "~=1.17.0"
|
|
- python-version: "3.8"
|
|
qt-lib: "pyqt"
|
|
qt-version: "PyQt5~=5.15.0"
|
|
numpy-version: "~=1.20.0"
|
|
- python-version: "3.8"
|
|
qt-lib: "pyside"
|
|
qt-version: "PySide2~=5.15.0"
|
|
numpy-version: "~=1.20.0"
|
|
- python-version: "3.9"
|
|
qt-lib: "pyqt"
|
|
qt-version: "PyQt6"
|
|
numpy-version: "~=1.20.0"
|
|
- python-version: "3.9"
|
|
qt-lib: "pyside"
|
|
qt-version: "PySide6"
|
|
numpy-version: "~=1.20.0"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Setup Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
# Semantic version range syntax or exact version of a Python version
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: "Install Windows-Mesa OpenGL DLL"
|
|
if: runner.os == 'Windows'
|
|
run: |
|
|
curl -LJO https://github.com/pal1000/mesa-dist-win/releases/download/19.2.7/mesa3d-19.2.7-release-msvc.7z
|
|
7z x mesa3d-19.2.7-release-msvc.7z
|
|
cd x64
|
|
xcopy opengl32.dll C:\windows\system32\mesadrv.dll*
|
|
xcopy opengl32.dll C:\windows\syswow64\mesadrv.dll*
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DLL /t REG_SZ /d "mesadrv.dll" /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DriverVersion /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Flags /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Version /t REG_DWORD /d 2 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DLL /t REG_SZ /d "mesadrv.dll" /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v DriverVersion /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Flags /t REG_DWORD /d 1 /f
|
|
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL" /v Version /t REG_DWORD /d 2 /f
|
|
shell: cmd
|
|
- name: Install Dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
python -m pip install ${{ matrix.qt-version }} numpy${{ matrix.numpy-version }} scipy pyopengl h5py matplotlib numba
|
|
python -m pip install --use-feature=in-tree-build .
|
|
python -m pip install pytest
|
|
- name: "Install Linux VirtualDisplay"
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y libxkbcommon-x11-0 x11-utils
|
|
sudo apt-get install --no-install-recommends -y libyaml-dev libegl1-mesa libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0
|
|
sudo apt-get install -y libopengl0
|
|
python -m pip install pytest-xvfb
|
|
- name: 'Debug Info'
|
|
run: |
|
|
echo python location: `which python`
|
|
echo python version: `python --version`
|
|
echo pytest location: `which pytest`
|
|
echo installed packages
|
|
python -m pip list
|
|
echo pyqtgraph system info
|
|
python -c "import pyqtgraph as pg; pg.systemInfo()"
|
|
shell: bash
|
|
env:
|
|
QT_DEBUG_PLUGINS: 1
|
|
- name: 'XVFB Display Info'
|
|
run: |
|
|
xvfb-run --server-args="-screen 0, 1920x1200x24 -ac +extension GLX +render -noreset" python -c "from pyqtgraph.opengl.glInfo import GLTest"
|
|
xvfb-run --server-args="-screen 0, 1920x1200x24 -ac +extension GLX +render -noreset" python -m pyqtgraph.util.get_resolution
|
|
if: runner.os == 'Linux'
|
|
- name: 'Display Info'
|
|
run: |
|
|
python -c "from pyqtgraph.opengl.glInfo import GLTest"
|
|
python -m pyqtgraph.util.get_resolution
|
|
if: runner.os != 'Linux'
|
|
- name: Run Tests
|
|
run: |
|
|
mkdir $SCREENSHOT_DIR
|
|
pytest tests -v
|
|
pytest examples -v
|
|
shell: bash
|
|
- name: Upload Screenshots
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Screenshots (Python ${{ matrix.python-version }} - Qt-Bindings ${{ matrix.qt-lib }} - OS ${{ matrix.os }})
|
|
path: $SCREENSHOT_DIR
|
|
if-no-files-found: ignore
|
|
env:
|
|
SCREENSHOT_DIR: ./screenshots
|
|
|
|
build-wheel:
|
|
name: build wheel
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Setup Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.9'
|
|
- name: Build Wheel
|
|
run: |
|
|
python -m pip install setuptools wheel
|
|
python setup.py bdist_wheel
|