Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VisTrails for Python3 and PyQt5 #1143

Open
wants to merge 108 commits into
base: master
Choose a base branch
from
Open

VisTrails for Python3 and PyQt5 #1143

wants to merge 108 commits into from

Conversation

rexissimus
Copy link
Member

@rexissimus rexissimus commented Jan 13, 2016

Moving to Python 3 (definitely breaking compatibility, this should be VisTrails 3?)

We should move to Qt 5 and ship it in the binaries (if there are no backwards compatibility issues). The main reason is to support the new WebKit. This will need a recompile of everything using Qt.

  • VisTrails runs, basic GUI pipeline operations and execution works
  • Test with VTK
  • Use WebEngine?
  • More testing needed
  • Update Mac build
  • Update Windows build
  • Need to port fixes from the unicode branch (@remram44)

Package support (both package code and wrapped library):

  • analytics
  • CLTools
  • controlflow
  • dialogs
  • gmaps
  • ImageMagick
  • matplotlib
  • mongodb
  • parallelflow
  • persistence drop (upgrade?)
  • persistent_archive (PyQt5 support remram44/file_archive#28)
  • pipelineEdit
  • pythonCalc
  • pythonCalcQt
  • qgis
  • RemoteQ
  • reprounzip
  • rpy
  • sklearn
  • spreadsheet
  • sql
  • tabledata
  • tej
  • tensorflow
  • URL
  • vtk
  • vtlcreator

Fixes #674

rexissimus and others added 25 commits May 29, 2015 13:21
This has probably been been deprecated since Qt 4.6 but breaks on Qt 5
We use QDesktopWidget instead
packages/vtk/vtk_wrapper/class_tree.py:
  Added workaround for buggy class names with '.'
  We have to keep path name separate from class name
  There is now a class2name dict

packages/vtk/vtk_wrapper/fix_classes.py:
  Cannot modify __doc__ in VTK subclasses so use a metaclass instead

packages/vtk/vtk_wrapper/parse.py:
  Blacklisted classes for VTK 7
  Handle 'void' port type
  Handle None docstrings

packages/vtk/vtk_wrapper/vtk_parser.py:
  use get_node_from_class
  Blacklisted vtkLineIntegralConvolution2D.Communicator (segfaults)
Running a pipeline from the core api now works.
Tested with gcd.vt

* Hasher needs to convert strings to bytes
vistrails/core/cache/hasher.py
vistrails/packages/controlflow/looping.py
vistrails/core/modules/sub_module.py
vistrails/core/system/__init__.py
vistrails/core/utils/__init__.py

* @apply no longer exist
vistrails/core/log/controller.py

* __init__ no longer have __func__?
vistrails/core/modules/config.py

* 'No module found' exception text changed
vistrails/core/modules/package.py

* __import__ no longer supports relative imports using level=-1
vistrails/core/packagemanager.py
Conflicts:
	vistrails/gui/pipeline_view.py
	vistrails/gui/version_view.py
	vistrails/gui/vistrails_window.py
@remram44
Copy link
Member

Reference: Differences Between PyQt4 and PyQt5, Riverbank Computing.

I'm getting a lot of warnings running this, it looks like everything would have to be manually tested and a lot of cornercases fixed throughout the code (9005682 was a str/bytes problem).

  File "/home/remram/Documents/programming/dat/vistrails/vistrails/core/modules/package.py", line 477, in set_properties
    self.name = self._module.name
AttributeError: 'module' object has no attribute 'name'

InitializationFailed: Package 'VisTrails Spreadsheet' failed to initialize because of the following exceptions:
...
  File "/home/remram/Documents/programming/dat/vistrails/vistrails/packages/spreadsheet/spreadsheet_rc.py", line 47, in <module>
    from PyQt4 import QtCore
...
RuntimeError: the PyQt4.QtCore and PyQt5.QtCore modules both wrap the QObject class

  File "/home/remram/Documents/programming/dat/vistrails/vistrails/gui/preferences.py", line 410, in select_package_after_update
    self.emit(self.select_package_after_update_signal, codepath)
AttributeError: 'QPackagesWidget' object has no attribute 'emit'

But the app starts.

This was referenced Jan 20, 2016
runtestsuite.py now completes:
  Ran 420 tests in 13.726s
  FAILED (failures=30, errors=75, skipped=13)
Conflicts:
	requirements.txt
	vistrails/core/application.py
	vistrails/core/query/version.py
	vistrails/core/vistrail/controller.py
	vistrails/db/services/locator.py
	vistrails/gui/collection/workspace.py
	vistrails/gui/mashups/mashup_app.py
	vistrails/gui/query_view.py
	vistrails/gui/version_prop.py
	vistrails/gui/vis_diff.py
	vistrails/gui/vistrail_view.py
	vistrails/packages/controlflow/__init__.py
	vistrails/packages/controlflow/fold.py
	vistrails/packages/controlflow/looping.py
	vistrails/packages/controlflow/utils.py
Conflicts:
	vistrails/gui/collection/workspace.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants