[med-svn] [Git][med-team/microbegps][master] First attempt to port to PyQt5 (not finished yet)

Andreas Tille gitlab at salsa.debian.org
Fri Sep 6 10:37:33 BST 2019



Andreas Tille pushed to branch master at Debian Med / microbegps


Commits:
e778a669 by Andreas Tille at 2019-09-06T09:37:03Z
First attempt to port to PyQt5 (not finished yet)

- - - - -


4 changed files:

- debian/changelog
- debian/control
- + debian/patches/PyQt5.patch
- debian/patches/series


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+microbegps (1.0.0-5) UNRELEASED; urgency=medium
+
+  * Port to PyQt5
+    Closes: #935345
+
+ -- Andreas Tille <tille at debian.org>  Fri, 06 Sep 2019 10:26:15 +0200
+
 microbegps (1.0.0-4) unstable; urgency=medium
 
   * Use 2to3 to port to Python3


=====================================
debian/control
=====================================
@@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (= 12),
                dh-python,
                python3,
                python3-setuptools,
-               python3-pyqt4
+               python3-pyqt5
 Standards-Version: 4.4.0
 Vcs-Browser: https://salsa.debian.org/med-team/microbegps
 Vcs-Git: https://salsa.debian.org/med-team/microbegps.git
@@ -18,7 +18,7 @@ Architecture: all
 Depends: ${misc:Depends},
          ${python3:Depends},
          python3-matplotlib-venn,
-         python3-pyqt4
+         python3-pyqt5
 Description: explorative taxonomic profiling tool for metagenomic data
  MicrobeGPS is a bioinformatics tool for the analysis of metagenomic
  sequencing data. The goal is to profile the composition of metagenomic


=====================================
debian/patches/PyQt5.patch
=====================================
@@ -0,0 +1,242 @@
+Description: Port to PyQt5
+Bug-Debian: https://bugs.debian.org/935345
+Author: Andreas Tille <tille at debian.org>
+Last-Update: Fri, 06 Sep 2019 10:26:15 +0200
+
+--- a/setup.py
++++ b/setup.py
+@@ -1,9 +1,9 @@
+ """ MicrobeGPS setup.py script. Allows direct installation of the tool or creating Python eggs. """
+ 
+ try:
+-	import PyQt4
++	import PyQt5
+ except ImportError:
+-	print('PyQt4 is not installed on your system! Please install PyQt4 first. You can download PyQt4 from http://www.riverbankcomputing.co.uk/software/pyqt/download or use your package manager to install the library.')
++	print('PyQt5 is not installed on your system!')
+ 	import sys
+ 	sys.exit()
+ 
+--- a/microbegps/gui.py
++++ b/microbegps/gui.py
+@@ -9,7 +9,7 @@ import pkg_resources
+ import threading
+ import pickle
+ 
+-from PyQt4 import QtGui, QtCore
++from PyQt5 import QtGui, QtCore, QtWidgets
+ 
+ import matplotlib.pyplot as plt
+ from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
+@@ -79,7 +79,7 @@ First, a subset of reads is selected tha
+ ]
+ 
+ 
+-class Pipeline(QtGui.QWidget):
++class Pipeline(QtWidgets.QWidget):
+ 	def __init__(self,mainWindow):
+ 		super(Pipeline, self).__init__()
+ 		self.mainWindow = mainWindow
+@@ -126,13 +126,13 @@ class Pipeline(QtGui.QWidget):
+ 		sublayout = QtGui.QHBoxLayout()
+ 		sublayout.addWidget(self.fileNameEdit,stretch=4)
+ 		sublayout.addWidget(selectButton,stretch=1)
+-		subwidget = QtGui.QWidget()
++		subwidget = QtWidgets.QWidget()
+ 		subwidget.setLayout(sublayout)
+ 		layout = QtGui.QGridLayout()
+ 		layout.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)
+ 		layout.addWidget(QtGui.QLabel('Input Directory'),0,0)
+ 		layout.addWidget(subwidget,0,1)
+-		loadDataWidget = QtGui.QWidget()
++		loadDataWidget = QtWidgets.QWidget()
+ 		loadDataWidget.setLayout(layout)
+ 		self.settingsBox.addWidget(loadDataWidget)
+ 
+@@ -167,7 +167,7 @@ class Pipeline(QtGui.QWidget):
+ 		layout.addRow(QtGui.QLabel('Max. Read Matches'),self.maxMatchesBox)
+ 		layout.addRow(QtGui.QLabel('Max. Read Mapping Error'),self.maxMappingError)
+ 		layout.addRow(QtGui.QLabel('Mapping Error Quantile'),self.mappingErrorQuantile)
+-		rawFilterWidget = QtGui.QWidget()
++		rawFilterWidget = QtWidgets.QWidget()
+ 		rawFilterWidget.setLayout(layout)
+ 		self.settingsBox.addWidget(rawFilterWidget)
+ 		
+@@ -191,12 +191,12 @@ class Pipeline(QtGui.QWidget):
+ 		sublayout1 = QtGui.QHBoxLayout()
+ 		sublayout1.addWidget(self.mappingFileEdit,stretch=4)
+ 		sublayout1.addWidget(selectButton1,stretch=1)
+-		subwidget1 = QtGui.QWidget()
++		subwidget1 = QtWidgets.QWidget()
+ 		subwidget1.setLayout(sublayout1)
+ 		sublayout2 = QtGui.QHBoxLayout()
+ 		sublayout2.addWidget(self.NCBICatalogPath,stretch=4)
+ 		sublayout2.addWidget(selectButton2,stretch=1)
+-		subwidget2 = QtGui.QWidget()
++		subwidget2 = QtWidgets.QWidget()
+ 		subwidget2.setLayout(sublayout2)
+ 		layout = QtGui.QGridLayout()
+ 		layout.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)
+@@ -205,7 +205,7 @@ class Pipeline(QtGui.QWidget):
+ 		layout.addWidget(subwidget1,1,1)
+ 		layout.addWidget(self.useNCBIFiles,2,0)
+ 		layout.addWidget(subwidget2,2,1)
+-		referenceTableWidget = QtGui.QWidget()
++		referenceTableWidget = QtWidgets.QWidget()
+ 		referenceTableWidget.setLayout(layout)
+ 		self.settingsBox.addWidget(referenceTableWidget)
+ 		
+@@ -228,7 +228,7 @@ class Pipeline(QtGui.QWidget):
+ 		layout.addRow(QtGui.QLabel('Min. Number Unique Reads'),self.minAbsoluteUnique)
+ 		layout.addRow(QtGui.QLabel('Max. Homogeneity'),self.maxHomogeneity)
+ 
+-		qualFilterWidget = QtGui.QWidget()
++		qualFilterWidget = QtWidgets.QWidget()
+ 		qualFilterWidget.setLayout(layout)
+ 		self.settingsBox.addWidget(qualFilterWidget)
+ 		
+@@ -266,7 +266,7 @@ class Pipeline(QtGui.QWidget):
+ 		layout.addRow(QtGui.QLabel('Coverage Similarity'),self.coverageSimilarity)
+ 		layout.addRow(QtGui.QLabel('Fraction Shared USR'),self.sharedFractionUSR)
+ 		layout.addRow(QtGui.QLabel('Fraction Shared Reads'),self.sharedFractionAll)
+-		extractUSRWidget = QtGui.QWidget()
++		extractUSRWidget = QtWidgets.QWidget()
+ 		extractUSRWidget.setLayout(layout)
+ 		self.settingsBox.addWidget(extractUSRWidget)
+ 		
+@@ -274,7 +274,7 @@ class Pipeline(QtGui.QWidget):
+ 		self.closeOnFinish = QtGui.QCheckBox('Close this window after visualizing results')
+ 		layout = QtGui.QVBoxLayout()
+ 		layout.addWidget(self.closeOnFinish)
+-		visualizeWidget = QtGui.QWidget()
++		visualizeWidget = QtWidgets.QWidget()
+ 		visualizeWidget.setLayout(layout)
+ 		self.settingsBox.addWidget(visualizeWidget)		
+ 		
+@@ -294,7 +294,7 @@ class Pipeline(QtGui.QWidget):
+ 		consoleLayout = QtGui.QVBoxLayout()
+ 		consoleLayout.addWidget(self.progress)
+ 		consoleLayout.addWidget(self.consoleText)
+-		consoleWidget = QtGui.QWidget()
++		consoleWidget = QtWidgets.QWidget()
+ 		consoleWidget.setLayout(consoleLayout)
+ 
+ 		self.runStepBtn = QtGui.QPushButton("Run Step")
+@@ -304,7 +304,7 @@ class Pipeline(QtGui.QWidget):
+ 		buttonLayout = QtGui.QHBoxLayout()
+ 		buttonLayout.addWidget(self.runStepBtn)
+ 		buttonLayout.addWidget(self.runPipelineBtn)
+-		buttonBar = QtGui.QWidget()
++		buttonBar = QtWidgets.QWidget()
+ 		buttonBar.setLayout(buttonLayout)
+ 		
+ 		gridLayout = QtGui.QGridLayout()
+@@ -871,7 +871,7 @@ class Pipeline(QtGui.QWidget):
+ 		self.sharedFractionAll.setValue(settings.get('fraction_shared_all',0.8))
+ 
+ 
+-class GPSAnalyzer(QtGui.QMainWindow):
++class GPSAnalyzer(QtWidgets.QMainWindow):
+ 	def __init__(self):
+ 		super(GPSAnalyzer, self).__init__()
+ 		self.initUI()
+@@ -901,19 +901,19 @@ class GPSAnalyzer(QtGui.QMainWindow):
+ 		self.graphicDock = QtGui.QDockWidget('Graphic',self)
+ 		self.graphicDock.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
+ 		self.graphicDock.setMinimumSize(450,300)
+-		self.graphicDock.setTitleBarWidget(QtGui.QWidget())
++		self.graphicDock.setTitleBarWidget(QtWidgets.QWidget())
+ 		
+ 		self.toolsDock = QtGui.QDockWidget('Tools',self)
+ 		self.toolsDock.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
+ 		self.toolsDock.setMinimumHeight(150)
+ 		self.toolsDock.setMaximumHeight(250)
+-		self.toolsDock.setTitleBarWidget(QtGui.QWidget())
++		self.toolsDock.setTitleBarWidget(QtWidgets.QWidget())
+ 
+ 		self.consoleDock = QtGui.QDockWidget('Console',self)
+ 		self.consoleDock.setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
+ 		self.consoleDock.setMinimumHeight(150)
+ 		self.consoleDock.setMaximumHeight(450)
+-		self.consoleDock.setTitleBarWidget(QtGui.QWidget())
++		self.consoleDock.setTitleBarWidget(QtWidgets.QWidget())
+ 		
+ 		self.addDockWidget(QtCore.Qt.RightDockWidgetArea,self.graphicDock)
+ 		self.addDockWidget(QtCore.Qt.RightDockWidgetArea,self.toolsDock)
+@@ -966,7 +966,7 @@ class GPSAnalyzer(QtGui.QMainWindow):
+ 		toolsGrid.addWidget(self.exportFigureQuality,1,1)
+ 		toolsGrid.addWidget(showPipelineBtn,2,0)
+ 
+-		toolsWidget = QtGui.QWidget()
++		toolsWidget = QtWidgets.QWidget()
+ 		toolsWidget.setLayout(toolsGrid)
+ 		
+ 		self.toolsTab = QtGui.QTabWidget()
+@@ -1734,7 +1734,7 @@ the LICENSE file shipped with this softw
+ 		self.treeView.scrollToItem(sel)
+ 		
+ def main():
+-	app = QtGui.QApplication(sys.argv)
++	app = QtWidgets.QApplication(sys.argv)
+ 	GPSAnalyzer() 
+ 	app.exec_()	
+ 
+--- a/microbegps/modules/composition_analysis.py
++++ b/microbegps/modules/composition_analysis.py
+@@ -1,4 +1,4 @@
+-from PyQt4 import QtGui
++from PyQt5 import QtGui, QtWidgets
+ import matplotlib.pyplot as plt
+ 
+ class GPSModule:
+@@ -56,7 +56,7 @@ class GPSModule:
+ 		tabGrid.addWidget(self.getFromTree, 3,1)
+ 		tabGrid.addWidget(self.taxSelectedText,4,0)
+ 		tabGrid.addWidget(self.showComposition,4,1)
+-		tabWidget = QtGui.QWidget()
++		tabWidget = QtWidgets.QWidget()
+ 		tabWidget.setLayout(tabGrid)
+ 		tabWidget.helpText = self.helpText
+ 		
+--- a/microbegps/modules/export_table.py
++++ b/microbegps/modules/export_table.py
+@@ -1,4 +1,4 @@
+-from PyQt4 import QtGui
++from PyQt5 import QtGui, QtWidgets
+ from os import linesep
+ from microbegps import taxonomy
+ 
+@@ -57,7 +57,7 @@ class GPSModule:
+ 		tabGrid.addWidget(self.genomeValidity,4,1)
+ 		tabGrid.addWidget(self.homogeneity,5,0)
+ 		tabGrid.addWidget(self.mappingError,5,1)
+-		tabWidget = QtGui.QWidget()
++		tabWidget = QtWidgets.QWidget()
+ 		tabWidget.setLayout(tabGrid)
+ 		tabWidget.helpText = self.helpText
+ 		
+--- a/microbegps/modules/search_tab.py
++++ b/microbegps/modules/search_tab.py
+@@ -1,5 +1,5 @@
+ # -*- coding: utf-8 -*-
+-from PyQt4 import QtGui
++from PyQt5 import QtGui, QtWidgets
+ 
+ class GPSModule:
+ 	""" This GPS Module implements a search tab, that allows the user to
+@@ -24,7 +24,7 @@ class GPSModule:
+ 		searchGrid.addWidget(self.searchBtn, 0,1)
+ 		searchGrid.addWidget(self.searchRes, 1,0,1,2)
+ 		
+-		searchWidget = QtGui.QWidget()
++		searchWidget = QtWidgets.QWidget()
+ 		searchWidget.setLayout(searchGrid)
+ 		
+ 		GPS.toolsTab.addTab(searchWidget,"Search")
+@@ -54,4 +54,4 @@ class GPSModule:
+ 		self.GPS.treeView.setCurrentItem(sel)
+ 		self.GPS.treeView.expand(self.GPS.treeView.currentIndex())
+ 		self.GPS.treeView.scrollToItem(self.GPS.treeView.currentItem())
+-		self.GPS.tree_item_clicked_handler(self.GPS.treeView.currentItem(),0)
+\ No newline at end of file
++		self.GPS.tree_item_clicked_handler(self.GPS.treeView.currentItem(),0)


=====================================
debian/patches/series
=====================================
@@ -1 +1,2 @@
 2to3.patch
+PyQt5.patch



View it on GitLab: https://salsa.debian.org/med-team/microbegps/commit/e778a66926a1445140c9f2a9bd41f6923012de26

-- 
View it on GitLab: https://salsa.debian.org/med-team/microbegps/commit/e778a66926a1445140c9f2a9bd41f6923012de26
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20190906/2bc21d17/attachment-0001.html>


More information about the debian-med-commit mailing list