diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5da3c2d78a9017e2f1862a6c8f6cce2630684e9c..e03b5496319c4365e79686f727af7cbe2dce92ea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,10 @@ before_script: - apt-get install --yes build-essential cmake libfmt-dev pybind11-dev graphviz python3-pyqt5 xvfb xdg-utils lcov - python -m pip install --upgrade pip - python --version - - pip install pytest pytest-cov sphinx furo numpydoc pytest-xvfb pytest-qt setuptools_scm sphinx-qt-documentation pytest-xdist pytest-mpl + - pip install pytest pytest-cov sphinx furo numpydoc pytest-xvfb pytest-qt setuptools_scm sphinx-qt-documentation pytest-xdist pytest-mpl pytest-timeout + - pip install $QT_API + - export PYTEST_QT_API=$QT_API + - export QT_API=$QT_API # - export CXXFLAGS='--coverage' - pip install -ve . # Move file, but should be handled by installation @@ -17,7 +20,7 @@ before_script: .run-test: stage: test script: - - pytest --cov=b_asic --cov-report=xml:cov.xml --cov-report=term --color=yes test --mpl + - pytest --cov=b_asic --cov-report=xml:cov.xml --cov-report=term --color=yes test --mpl --timeout=20 --durations=10 # - lcov --capture --directory . --output-file coverage.info # - lcov --output-file coverage.info --extract coverage.info $PWD/src/'*' $PWD/b_asic/'*' # - lcov --list coverage.info @@ -30,19 +33,59 @@ before_script: coverage: /(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/ -run-test-3.8: +run-test-3.8-pyside2: + variables: + QT_API: pyside2 image: python:3.8 extends: ".run-test" -run-test-3.9: +run-test-3.8-pyqt5: + variables: + QT_API: pyqt5 + image: python:3.8 + extends: ".run-test" + +run-test-3.9-pyside2: + variables: + QT_API: pyside2 + image: python:3.9 + extends: ".run-test" + +run-test-3.9-pyqt5: + variables: + QT_API: pyqt5 image: python:3.9 extends: ".run-test" -run-test-3.10: +run-test-3.10-pyside2: + variables: + QT_API: pyside2 + image: python:3.10 + extends: ".run-test" + +run-test-3.10-pyqt5: + variables: + QT_API: pyqt5 + image: python:3.10 + extends: ".run-test" + +run-test-3.10-pyside6: + variables: + QT_API: pyside6 + image: python:3.10 + extends: ".run-test" + allow_failure: true + +run-test-3.10-pyqt6: + variables: + QT_API: pyqt6 image: python:3.10 extends: ".run-test" + allow_failure: true run-doc-test: + variables: + QT_API: pyside2 image: python:3.10 stage: test script: @@ -53,6 +96,8 @@ run-doc-test: # extends: ".run-test" pages: + variables: + QT_API: pyqt5 stage: deploy image: python:3.10 script: diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py index 0a9cc98258b9d6304ea0a4e3d5837921c32782d5..942bcd5b2eab169464158a91c828ebcd2da4fdec 100644 --- a/b_asic/GUI/main_window.py +++ b/b_asic/GUI/main_window.py @@ -16,6 +16,7 @@ from qtpy.QtWidgets import ( QAction, QApplication, QFileDialog, + QGraphicsItem, QGraphicsScene, QGraphicsTextItem, QGraphicsView, @@ -527,7 +528,7 @@ class MainWindow(QMainWindow): attr_button_scene.moveBy( int(self.scene.width() / 4), int(self.scene.height() / 4) ) - attr_button_scene.setFlag(attr_button_scene.ItemIsSelectable, True) + attr_button_scene.setFlag(QGraphicsItem.ItemIsSelectable, True) operation_label = QGraphicsTextItem(op.name, attr_button_scene) if not self.is_show_names: operation_label.setOpacity(0) diff --git a/b_asic/scheduler_gui/axes_item.py b/b_asic/scheduler_gui/axes_item.py index 39bb40a034e42a2f0bfcd36f2648d4f3768c705b..adea4568f3cecae757f6ca2d20eb173198653b20 100644 --- a/b_asic/scheduler_gui/axes_item.py +++ b/b_asic/scheduler_gui/axes_item.py @@ -9,7 +9,7 @@ from math import pi, sin from typing import List, Optional, Union # QGraphics and QPainter imports -from qtpy.QtCore import QPoint, QPointF, Qt +from qtpy.QtCore import QPointF, Qt from qtpy.QtGui import QBrush, QPen, QPolygonF from qtpy.QtWidgets import ( QGraphicsItem, @@ -318,7 +318,7 @@ class AxesItem(QGraphicsItemGroup): self._append_x_tick() pos = self._x_ledger[-1].pos() self._x_ledger[-1].setPos( - pos + QPoint(self._width, 0) + pos + QPointF(self._width, 0) ) # move timeline # y-axis diff --git a/b_asic/scheduler_gui/main_window.ui b/b_asic/scheduler_gui/main_window.ui index ca6fcd2c851ef5d8f8777156c6e38ecd5b2fbc7e..abec5863f56e4b19e672f38a3e309c61ce55524e 100644 --- a/b_asic/scheduler_gui/main_window.ui +++ b/b_asic/scheduler_gui/main_window.ui @@ -57,7 +57,7 @@ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> <property name="renderHints"> - <set>QPainter::HighQualityAntialiasing|QPainter::TextAntialiasing</set> + <set>QPainter::Antialiasing|QPainter::TextAntialiasing</set> </property> <property name="viewportUpdateMode"> <enum>QGraphicsView::FullViewportUpdate</enum> diff --git a/b_asic/scheduler_gui/ui_main_window.py b/b_asic/scheduler_gui/ui_main_window.py index f197afcdaf82b2c4cd17bfbe4d09fbfdc68da4f8..17ff17f7d85a341001d7141fb8cab737499fa3f4 100644 --- a/b_asic/scheduler_gui/ui_main_window.py +++ b/b_asic/scheduler_gui/ui_main_window.py @@ -55,8 +55,7 @@ class Ui_MainWindow(object): QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop ) self.view.setRenderHints( - QtGui.QPainter.HighQualityAntialiasing - | QtGui.QPainter.TextAntialiasing + QtGui.QPainter.Antialiasing | QtGui.QPainter.TextAntialiasing ) self.view.setViewportUpdateMode( QtWidgets.QGraphicsView.FullViewportUpdate diff --git a/pyproject.toml b/pyproject.toml index 32b7026b95ee88bf1b6bc6c47a2fe68b2b4e2773..180be81b1c97329fdf0c89ea90477a0083a361b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ requires-python = ">=3.8" dependencies = [ "numpy", "pybind11>=2.3.0", - "pyside2", + # "pyside2", "qtpy", "graphviz>=0.19", "matplotlib", diff --git a/requirements_test.txt b/requirements_test.txt index 64543e503881b8b3e3d227bc2af1c259e8403256..bd51fe8943cd07d3c7e8f7b1cc98a0597d55fec0 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -2,5 +2,6 @@ pytest pytest-cov pytest-qt pytest-mpl +pytest-timeout pytest-xvfb pytest-xdist