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

Qt gui #227

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

Qt gui #227

wants to merge 13 commits into from

Conversation

luiztauffer
Copy link
Collaborator

@luiztauffer luiztauffer commented Oct 18, 2022

A Qt based GUI for easily exploring DANDI files
Peek 2022-10-18 18-02

@codecov
Copy link

codecov bot commented Oct 18, 2022

Codecov Report

Merging #227 (024d818) into master (7bfb2f4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #227   +/-   ##
=======================================
  Coverage   66.22%   66.22%           
=======================================
  Files          35       35           
  Lines        3458     3458           
=======================================
  Hits         2290     2290           
  Misses       1168     1168           
Flag Coverage Δ
unittests 66.22% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@bendichter
Copy link
Collaborator

bendichter commented Oct 19, 2022

This would be much more useful for local files, since files that are already in the cloud should really be using cloud resources. I'm a little ambivalent about getting this to work streaming data, since we'd really rather encourage people to use the existing cloud resources for that. Could you please activate the local file versions of this?

@luiztauffer
Copy link
Collaborator Author

@bendichter

Could you please activate the local file versions of this?

Yes definitely, will do it asap

as for it being able to stream data, it sounds like a positive feature to me, since there’s currently no online service doing this (this Qt solution works better than DANDI NWB Explorer for example). Should we maintain it for now?

@bendichter
Copy link
Collaborator

@luiztauffer I agree it's useful. We can keep it in but it should not be the first option.

@luiztauffer
Copy link
Collaborator Author

@bendichter done, options to:

  • list all files from a local directory
  • select one individual local file directly

@bendichter
Copy link
Collaborator

bendichter commented Oct 21, 2022

After pip installing pyside and qtvoila, I ran python qt/application.py and after about 30 seconds I get

ln: /usr/local/bin//subl: File exists

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
(neuroconv) MacBook-Pro-8:nwbwidgets bendichter$ python qt/application.py
qt.core.plugin.loader: In /Users/bendichter/opt/miniconda3/envs/neuroconv/plugins/platforms/libqwebgl.dylib:
  Plugin uses incompatible Qt library (5.15.0) [release]
qt.core.plugin.loader: In /Users/bendichter/opt/miniconda3/envs/neuroconv/plugins/platforms/libqoffscreen.dylib:
  Plugin uses incompatible Qt library (5.15.0) [release]
qt.core.plugin.loader: In /Users/bendichter/opt/miniconda3/envs/neuroconv/plugins/platforms/libqminimal.dylib:
  Plugin uses incompatible Qt library (5.15.0) [release]
qt.core.plugin.loader: In /Users/bendichter/opt/miniconda3/envs/neuroconv/plugins/platforms/libqcocoa.dylib:
  Plugin uses incompatible Qt library (5.15.0) [release]
qt.qpa.plugin: Could not find the Qt platform plugin "cocoa" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Abort trap: 6

these are the classic Qt woahs I was not excited about..

@oruebel
Copy link
Contributor

oruebel commented Oct 21, 2022

Very cool to have a no-code UI for browsing NWB files on DANDI!

@bendichter
Copy link
Collaborator

pyinstaller does not work for me either:

(neuroconv) MacBook-Pro-8:qt bendichter$ pyinstaller application.py
593 INFO: PyInstaller: 5.5
593 INFO: Python: 3.9.12 (conda)
615 INFO: Platform: macOS-10.16-x86_64-i386-64bit
616 INFO: wrote /Users/bendichter/dev/nwbwidgets/qt/application.spec
621 INFO: UPX is not available.
622 INFO: Extending PYTHONPATH with paths
['/Users/bendichter/dev/nwbwidgets']
960 INFO: checking Analysis
960 INFO: Building Analysis because Analysis-00.toc is non existent
960 INFO: Initializing module dependency graph...
963 INFO: Caching module graph hooks...
969 INFO: Analyzing base_library.zip ...
3144 INFO: Loading module hook 'hook-encodings.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
4629 INFO: Loading module hook 'hook-pickle.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
5277 INFO: Loading module hook 'hook-heapq.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
5769 INFO: Caching module dependency graph...
5997 INFO: running Analysis Analysis-00.toc
6001 INFO: Analyzing /Users/bendichter/dev/nwbwidgets/qt/application.py
6043 INFO: Loading module hook 'hook-PySide6.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
6601 INFO: Loading module hook 'hook-nbformat.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
6997 INFO: Loading module hook 'hook-difflib.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
7238 INFO: Loading module hook 'hook-platform.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
7316 INFO: Loading module hook 'hook-xml.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
7431 INFO: Loading module hook 'hook-jsonschema.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
8246 INFO: Processing pre-safe import module hook six.moves from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-six.moves.py'.
8897 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-urllib3.packages.six.moves.py'.
9431 INFO: Loading module hook 'hook-cryptography.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
11876 INFO: Loading module hook 'hook-certifi.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
12009 INFO: Loading module hook 'hook-importlib_metadata.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
12061 INFO: Loading module hook 'hook-numpy.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
12081 WARNING: Conda distribution 'numpy', dependency of 'numpy', was not found. If you installed this distribution with pip then you may ignore this warning.
12408 INFO: Loading module hook 'hook-numpy._pytesttester.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
12451 INFO: Processing pre-find module path hook distutils from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks/pre_find_module_path/hook-distutils.py'.
12749 INFO: Loading module hook 'hook-distutils.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
12835 INFO: Loading module hook 'hook-distutils.util.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
12848 INFO: Loading module hook 'hook-sysconfig.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
12958 INFO: Loading module hook 'hook-multiprocessing.util.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
15011 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
15746 INFO: Processing module hooks...
15752 INFO: Loading module hook 'hook-PySide6.QtWebEngineWidgets.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
16094 INFO: Loading module hook 'hook-PySide6.QtWidgets.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
16280 INFO: Loading module hook 'hook-PySide6.QtQuickWidgets.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
16541 INFO: Loading module hook 'hook-PySide6.QtCore.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
16766 INFO: Loading module hook 'hook-PySide6.QtOpenGL.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
16994 INFO: Loading module hook 'hook-setuptools.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
19088 INFO: Loading module hook 'hook-pkg_resources.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
20935 INFO: Loading module hook 'hook-PySide6.QtGui.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
21144 INFO: Loading module hook 'hook-PySide6.QtNetwork.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
21321 INFO: Loading module hook 'hook-PySide6.QtPrintSupport.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
21511 INFO: Loading module hook 'hook-PySide6.QtWebEngineCore.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
21896 INFO: Processing pre-safe import module hook win32com from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-win32com.py'.
22326 INFO: Loading module hook 'hook-packaging.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
22578 INFO: Loading module hook 'hook-jinja2.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
22959 INFO: Loading module hook 'hook-setuptools.msvc.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
23932 INFO: Loading module hook 'hook-docutils.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
27064 INFO: Loading module hook 'hook-xml.dom.domreg.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
27441 INFO: Loading module hook 'hook-pygments.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
29968 INFO: Loading module hook 'hook-PySide6.QtQuick.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
30155 INFO: Loading module hook 'hook-PySide6.QtQml.py' from '/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks'...
Traceback (most recent call last):
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/bin/pyinstaller", line 8, in <module>
    sys.exit(run())
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/__main__.py", line 179, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/__main__.py", line 60, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/building/build_main.py", line 963, in main
    build(specfile, distpath, workpath, clean_build)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/building/build_main.py", line 885, in build
    exec(code, spec_namespace)
  File "/Users/bendichter/dev/nwbwidgets/qt/application.spec", line 7, in <module>
    a = Analysis(
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/building/build_main.py", line 410, in __init__
    self.__postinit__()
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/building/datastruct.py", line 173, in __postinit__
    self.assemble()
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/building/build_main.py", line 579, in assemble
    self.graph.process_post_graph_hooks(self)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/depend/analysis.py", line 329, in process_post_graph_hooks
    module_hook.post_graph(analysis)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/depend/imphook.py", line 447, in post_graph
    self._load_hook_module(keep_module_ref=True)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/depend/imphook.py", line 387, in _load_hook_module
    self._hook_module = importlib_load_source(self.hook_module_name, self.hook_filename)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/compat.py", line 609, in importlib_load_source
    return mod_loader.load_module()
  File "<frozen importlib._bootstrap_external>", line 529, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 1029, in load_module
  File "<frozen importlib._bootstrap_external>", line 854, in load_module
  File "<frozen importlib._bootstrap>", line 274, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/hooks/hook-PySide6.QtQml.py", line 15, in <module>
    qml_binaries, qml_datas = get_qt_qml_files(pyside6_library_info)
  File "/Users/bendichter/opt/miniconda3/envs/neuroconv/lib/python3.9/site-packages/PyInstaller/utils/hooks/qt.py", line 730, in get_qt_qml_files
    qmldir = qt_library_info.location['Qml2ImportsPath']
KeyError: 'Qml2ImportsPath'

@bendichter
Copy link
Collaborator

widget not appearing

registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/controls, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/controls, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/controls, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
403 GET /voila/files/voila/jupyter-vue.js (::1): File not whitelisted
403 GET /voila/files/voila/jupyter-vue.js (::1) 0.28ms
403 GET /voila/files/voila/jupyter-vuetify.js (::1): File not whitelisted
403 GET /voila/files/voila/jupyter-vuetify.js (::1) 0.24ms
js: Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
js: Uncaught (in promise) Error: Module @jupyter-widgets/base, semver range ^2.0.0 is not registered as a widget module
qt.pointer.dispatch: skipping QEventPoint(id=1 ts=0 pos=0,0 scn=453.807,-787.985 gbl=453.807,-787.985 Released ellipse=(1x1 ∡ 0) vel=0,0 press=-453.807,787.985 last=-453.807,787.985 Δ 453.807,-787.985) : no target window
qt.pointer.dispatch: skipping QEventPoint(id=1 ts=0 pos=0,0 scn=864.186,-718.808 gbl=864.186,-718.808 Released ellipse=(1x1 ∡ 0) vel=0,0 press=-864.186,718.808 last=-864.186,718.808 Δ 864.186,-718.808) : no target window
qt.pointer.dispatch: skipping QEventPoint(id=1 ts=0 pos=0,0 scn=850.783,-485.481 gbl=850.783,-485.481 Released ellipse=(1x1 ∡ 0) vel=0,0 press=-850.783,485.481 last=-850.783,485.481 Δ 850.783,-485.481) : no target window
qt.pointer.dispatch: skipping QEventPoint(id=1 ts=0 pos=0,0 scn=677.339,-368.956 gbl=677.339,-368.956 Released ellipse=(1x1 ∡ 0) vel=0,0 press=-677.339,368.956 last=-677.339,368.956 Δ 677.339,-368.956) : no target window
qt.pointer.dispatch: skipping QEventPoint(id=1 ts=0 pos=0,0 scn=136.749,-697.776 gbl=136.749,-697.776 Released ellipse=(1x1 ∡ 0) vel=0,0 press=-136.749,697.776 last=-136.749,697.776 Δ 136.749,-697.776) : no target window

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.

None yet

3 participants