Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks.git
rev: v4.6.0
rev: v5.0.0
hooks:
- id: no-commit-to-branch
- id: trailing-whitespace
Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ classifiers = [
requires-python = ">=3.10, <3.13"
dependencies = [
"coolname",
"qtpy",
"pyqt5",
"pyqtgraph",
"qdarkstyle>=3.0",
Expand All @@ -38,6 +39,7 @@ version_file = "src/badger/_version.py"

[project.optional-dependencies]
dev = [
"pyside6",
"pytest",
"pytest-cov",
"pytest-qt",
Expand Down
2 changes: 1 addition & 1 deletion src/badger/errors.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from PyQt5.QtWidgets import QMessageBox
from qtpy.QtWidgets import QMessageBox
import traceback
import sys

Expand Down
6 changes: 3 additions & 3 deletions src/badger/gui/acr/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
import signal
import sys
import time
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QFont, QIcon
from PyQt5 import QtCore
from qtpy.QtWidgets import QApplication
from qtpy.QtGui import QFont, QIcon
from qtpy import QtCore
from qdarkstyle import load_stylesheet, LightPalette, DarkPalette

from badger.settings import init_settings
Expand Down
30 changes: 15 additions & 15 deletions src/badger/gui/acr/components/action_bar.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from PyQt5.QtWidgets import QWidget, QHBoxLayout
from PyQt5.QtWidgets import QToolButton, QMenu, QAction
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import pyqtSignal
from qtpy.QtWidgets import QWidget, QHBoxLayout
from qtpy.QtWidgets import QToolButton, QMenu
from qtpy.QtGui import QAction, QFont, QIcon
from qtpy.QtCore import Signal
from importlib import resources
from badger.gui.default.utils import create_button

Expand Down Expand Up @@ -84,17 +84,17 @@


class BadgerActionBar(QWidget):
sig_start = pyqtSignal()
sig_start_until = pyqtSignal()
sig_stop = pyqtSignal()

sig_delete_run = pyqtSignal()
sig_logbook = pyqtSignal()
sig_reset_env = pyqtSignal()
sig_jump_to_optimal = pyqtSignal()
sig_dial_in = pyqtSignal()
sig_ctrl = pyqtSignal(bool)
sig_open_extensions_palette = pyqtSignal()
sig_start = Signal()
sig_start_until = Signal()
sig_stop = Signal()

sig_delete_run = Signal()
sig_logbook = Signal()
sig_reset_env = Signal()
sig_jump_to_optimal = Signal()
sig_dial_in = Signal()
sig_ctrl = Signal(bool)
sig_open_extensions_palette = Signal()

def __init__(self, parent=None):
super().__init__(parent)
Expand Down
21 changes: 10 additions & 11 deletions src/badger/gui/acr/components/archive_search.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import logging
from typing import List
from PyQt5.QtGui import QDrag, QKeyEvent
from PyQt5.QtCore import (
from typing import Any, List
from qtpy.QtGui import QDrag, QKeyEvent
from qtpy.QtCore import (
QAbstractTableModel,
QMimeData,
QModelIndex,
QObject,
Qt,
QVariant,
pyqtSignal,
Signal,
)
from PyQt5.QtWidgets import (
from qtpy.QtWidgets import (
QAbstractItemView,
QHBoxLayout,
QHeaderView,
Expand Down Expand Up @@ -54,17 +53,17 @@ def columnCount(self, parent: QObject) -> int:
return 0
return len(self.column_names)

def data(self, index: QModelIndex, role: int) -> QVariant:
def data(self, index: QModelIndex, role: int) -> str | None:
"""Return the data for the associated role. Currently only supporting DisplayRole."""
if not index.isValid():
return QVariant()
return None

if role != Qt.DisplayRole:
return QVariant()
return None

return self.results_list[index.row()]

def headerData(self, section, orientation, role=Qt.DisplayRole) -> QVariant:
def headerData(self, section, orientation, role=Qt.DisplayRole) -> Any:
"""Return data associated with the header"""
if role != Qt.DisplayRole:
return super().headerData(section, orientation, role)
Expand Down Expand Up @@ -117,7 +116,7 @@ class ArchiveSearchWidget(QWidget):
The parent item of this widget
"""

append_variables_requested = pyqtSignal(str)
append_variables_requested = Signal(str)

def __init__(self, environment, parent: QObject = None) -> None:
super().__init__(parent=parent)
Expand Down
14 changes: 7 additions & 7 deletions src/badger/gui/acr/components/env_cbox.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
from PyQt5.QtWidgets import (
from qtpy.QtWidgets import (
QVBoxLayout,
QHBoxLayout,
QPushButton,
QWidget,
QPlainTextEdit,
QLineEdit,
)
from PyQt5.QtWidgets import (
from qtpy.QtWidgets import (
QCheckBox,
QStyledItemDelegate,
QLabel,
QListWidget,
)
from PyQt5.QtCore import QRegExp, QPropertyAnimation
from qtpy.QtCore import QRegularExpression, QPropertyAnimation

from badger.gui.acr.components.archive_search import ArchiveSearchWidget
from badger.gui.default.components.collapsible_box import CollapsibleBox
Expand Down Expand Up @@ -463,12 +463,12 @@ def add_var(self, name, lb, ub):

def filter_var(self):
keyword = self.edit_var.text()
rx = QRegExp(keyword)
rx = QRegularExpression(keyword)

_variables = []
for var in self.var_table.all_variables:
vname = next(iter(var))
if rx.indexIn(vname, 0) != -1:
if rx.match(vname).hasMatch():
_variables.append(var)

self.var_table.update_variables(_variables, 1)
Expand All @@ -478,12 +478,12 @@ def toggle_obj_show_mode(self, _):

def filter_obj(self):
keyword = self.edit_obj.text()
rx = QRegExp(keyword)
rx = QRegularExpression(keyword)

_objectives = []
for obj in self.obj_table.all_objectives:
oname = next(iter(obj))
if rx.indexIn(oname, 0) != -1:
if rx.match(oname).hasMatch():
_objectives.append(obj)

self.obj_table.update_objectives(_objectives, 1)
Expand Down
4 changes: 2 additions & 2 deletions src/badger/gui/acr/components/generator_cbox.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from PyQt5.QtWidgets import (
from qtpy.QtWidgets import (
QVBoxLayout,
QHBoxLayout,
QPushButton,
QWidget,
QPlainTextEdit,
)
from PyQt5.QtWidgets import QComboBox, QCheckBox, QStyledItemDelegate, QLabel
from qtpy.QtWidgets import QComboBox, QCheckBox, QStyledItemDelegate, QLabel
from badger.gui.default.components.collapsible_box import CollapsibleBox
from badger.settings import init_settings
from badger.gui.default.utils import (
Expand Down
6 changes: 3 additions & 3 deletions src/badger/gui/acr/components/history_navigator.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QTreeWidget, QTreeWidgetItem
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt
from qtpy.QtWidgets import QWidget, QVBoxLayout, QTreeWidget, QTreeWidgetItem
from qtpy.QtGui import QFont
from qtpy.QtCore import Qt
from badger.archive import get_base_run_filename
from badger.utils import run_names_to_dict

Expand Down
18 changes: 9 additions & 9 deletions src/badger/gui/acr/components/routine_editor.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QWidget, QPushButton
from PyQt5.QtWidgets import QTextEdit, QStackedWidget
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtGui import QFont
from qtpy.QtWidgets import QVBoxLayout, QHBoxLayout, QWidget, QPushButton
from qtpy.QtWidgets import QTextEdit, QStackedWidget
from qtpy.QtCore import Signal
from qtpy.QtGui import QFont
from badger.gui.acr.components.routine_page import BadgerRoutinePage

from badger.routine import Routine


class BadgerRoutineEditor(QWidget):
sig_saved = pyqtSignal()
sig_canceled = pyqtSignal()
sig_deleted = pyqtSignal()
sig_load_template = pyqtSignal(str)
sig_save_template = pyqtSignal(str)
sig_saved = Signal()
sig_canceled = Signal()
sig_deleted = Signal()
sig_load_template = Signal(str)
sig_save_template = Signal(str)

def __init__(self):
super().__init__()
Expand Down
16 changes: 8 additions & 8 deletions src/badger/gui/acr/components/routine_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@

import numpy as np
import pandas as pd
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QLineEdit, QLabel, QPushButton, QFileDialog
from PyQt5.QtWidgets import QListWidgetItem, QMessageBox, QWidget, QTabWidget
from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QScrollArea
from PyQt5.QtWidgets import QTableWidgetItem, QPlainTextEdit
from qtpy.QtCore import Qt, Signal
from qtpy.QtWidgets import QLineEdit, QLabel, QPushButton, QFileDialog
from qtpy.QtWidgets import QListWidgetItem, QMessageBox, QWidget, QTabWidget
from qtpy.QtWidgets import QVBoxLayout, QHBoxLayout, QScrollArea
from qtpy.QtWidgets import QTableWidgetItem, QPlainTextEdit
from coolname import generate_slug
from xopt import VOCS
from xopt.generators import get_generator_defaults, all_generator_names
Expand Down Expand Up @@ -59,9 +59,9 @@


class BadgerRoutinePage(QWidget):
sig_updated = pyqtSignal(str, str) # routine name, routine description
sig_load_template = pyqtSignal(str) # template path
sig_save_template = pyqtSignal(str) # template path
sig_updated = Signal(str, str) # routine name, routine description
sig_load_template = Signal(str) # template path
sig_save_template = Signal(str) # template path

def __init__(self):
super().__init__()
Expand Down
6 changes: 3 additions & 3 deletions src/badger/gui/acr/components/status_bar.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from importlib import resources
from PyQt5.QtWidgets import QHBoxLayout, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import Qt, QSize
from qtpy.QtWidgets import QHBoxLayout, QWidget, QPushButton
from qtpy.QtGui import QIcon
from qtpy.QtCore import Qt, QSize
from badger.gui.acr.windows.settings_dialog import BadgerSettingsDialog
from badger.gui.default.components.eliding_label import SimpleElidedLabel

Expand Down
13 changes: 6 additions & 7 deletions src/badger/gui/acr/pages/home_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
from importlib import resources

from pandas import DataFrame
from PyQt5.QtCore import pyqtSignal, Qt
from PyQt5.QtGui import QIcon, QKeySequence
from PyQt5.QtWidgets import (
from qtpy.QtCore import Qt, Signal
from qtpy.QtGui import QIcon, QKeySequence, QShortcut
from qtpy.QtWidgets import (
QMessageBox,
QShortcut,
QSplitter,
QVBoxLayout,
QWidget,
Expand Down Expand Up @@ -35,7 +34,7 @@
from badger.utils import get_header
from badger.settings import init_settings

# from PyQt5.QtGui import QBrush, QColor
# from qtpy.QtGui import QBrush, QColor
from badger.gui.default.windows.message_dialog import BadgerScrollableMessageBox
from badger.gui.default.utils import ModalOverlay

Expand All @@ -60,8 +59,8 @@


class BadgerHomePage(QWidget):
sig_routine_activated = pyqtSignal(bool)
sig_routine_invalid = pyqtSignal()
sig_routine_activated = Signal(bool)
sig_routine_invalid = Signal()

def __init__(self, process_manager=None):
super().__init__()
Expand Down
7 changes: 4 additions & 3 deletions src/badger/gui/acr/windows/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
from importlib import metadata
from typing import Dict

from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QDesktopWidget, QMainWindow, QMessageBox, QStackedWidget
from qtpy.QtCore import QThread
from qtpy.QtGui import QGuiApplication
from qtpy.QtWidgets import QMainWindow, QMessageBox, QStackedWidget

from badger.gui.default.components.create_process import CreateProcess
from badger.gui.default.components.process_manager import ProcessManager
Expand Down Expand Up @@ -86,7 +87,7 @@ def init_ui(self) -> None:

def center(self) -> None:
qr = self.frameGeometry()
cp = QDesktopWidget().availableGeometry().center()
cp = QGuiApplication.primaryScreen().availableGeometry().center()

qr.moveCenter(cp)
self.move(qr.topLeft())
Expand Down
9 changes: 4 additions & 5 deletions src/badger/gui/acr/windows/settings_dialog.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# from PyQt5.QtCore import QRegExp
# from PyQt5.QtGui import QRegExpValidator
from PyQt5.QtWidgets import (
# from qtpy.QtGui import QRegularExpressionValidator
from qtpy.QtWidgets import (
# QComboBox,
QGridLayout,
QVBoxLayout,
QWidget,
QLabel,
QLineEdit,
)
from PyQt5.QtWidgets import (
from qtpy.QtWidgets import (
QDialog,
QDialogButtonBox,
QApplication,
Expand Down Expand Up @@ -42,7 +41,7 @@ def init_ui(self):

vbox = QVBoxLayout(self)

# validator = QRegExpValidator(QRegExp(r"^[0-9]\d*(\.\d+)?$"))
# validator = QRegularExpressionValidator(r"^[0-9]\d*(\.\d+)?$")

widget_settings = QWidget(self)
grid = QGridLayout(widget_settings)
Expand Down
6 changes: 3 additions & 3 deletions src/badger/gui/default/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
import signal
import sys
import time
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QFont, QIcon
from PyQt5 import QtCore
from qtpy.QtWidgets import QApplication
from qtpy.QtGui import QFont, QIcon
from qtpy import QtCore
from qdarkstyle import load_stylesheet, LightPalette, DarkPalette

from badger.settings import init_settings
Expand Down
Loading
Loading