scipion-pyworkflow 3.9.2__tar.gz → 3.10.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/CHANGES.txt +5 -0
- {scipion_pyworkflow-3.9.2/scipion_pyworkflow.egg-info → scipion_pyworkflow-3.10.1}/PKG-INFO +1 -1
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/constants.py +1 -1
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/executor.py +10 -10
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/protocol.py +20 -9
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/path.py +3 -2
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/utils.py +3 -1
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1/scipion_pyworkflow.egg-info}/PKG-INFO +1 -1
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/LICENSE.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/MANIFEST.in +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/README.rst +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_manager.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_plot.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_project.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_protocol_list.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_protocol_run.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_run_tests.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_schedule_run.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_sleep.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_sync_data.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/apps/pw_viewer.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/config.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/exceptions.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/browser.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/canvas.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/dialog.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/form.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/graph.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/graph_layout.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/gui.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/matplotlib_image.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/plotter.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/base.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/constants.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/labels.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/project.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/searchprotocol.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/searchrun.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/steps.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/utils.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/variables.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewdata.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewprojects.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewprotocols.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewprotocols_extra.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/text.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/tooltip.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/tree.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/widgets.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/mapper/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/mapper/mapper.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/mapper/sqlite.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/mapper/sqlite_db.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/object.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/plugin.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/config.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/manager.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/project.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/clean_projects.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/config.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/create.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/edit_workflow.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/fix_links.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/load.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/refresh.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/schedule.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/stack2volume.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/stop.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/bibtex.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/constants.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/hosts.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/launch.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/package.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/protocol/params.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/Imagej.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/chimera.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/fa-exclamation-triangle_alert.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/fa-info-circle_alert.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/fa-search.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/fa-times-circle_alert.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/file_vol.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/loading.gif +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/no-image128.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_bn.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon.svg +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon_proj.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon_projs.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon_prot.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_logo.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_logo_normal.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_logo_small.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/arrowDown.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/arrowUp.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/background_section.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/colRowModeOff.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/colRowModeOn.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/delete.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/doc_icon.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/download_icon.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/enabled_gallery.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/galleryViewOff.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/galleryViewOn.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/goto.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/menu.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/separator.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/tableViewOff.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/tableViewOn.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/volumeOff.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/volumeOn.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/sprites.png +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/sprites.xcf +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/wait.gif +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/template.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/tests/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/tests/test_utils.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/tests/tests.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/dataset.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/echo.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/graph.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/log.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/process.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/profiler.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/progressbar.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/properties.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/reflection.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/utils/which.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/viewer.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/webservices/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/webservices/config.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/webservices/notifier.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/webservices/repository.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/webservices/workflowhub.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/wizard.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/bibtex.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/objects.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/protocols.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/__init__.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_canvas.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_domain.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_logs.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_mappers.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_object.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_project.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_protocol_execution.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_protocol_export.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_protocol_output.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_streaming.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_utils.py +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/requirements.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/SOURCES.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/dependency_links.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/entry_points.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/requires.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/top_level.txt +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/setup.cfg +0 -0
- {scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/setup.py +0 -0
@@ -1,3 +1,8 @@
|
|
1
|
+
V3.10.1: hotfix: Avoid double Gpu assignment in scipion parallelize protocols with concurrent GPU steps
|
2
|
+
V3.10.0
|
3
|
+
developers:
|
4
|
+
- stepsExecutionMode = STEPS_SERIAL at class level. Should a class attribute for future versions. Now both approaches are valid.
|
5
|
+
|
1
6
|
V3.9.2 - hotfix: rescue commented methods: Protocol._insertRunJobStep and Protocol._insertCopyFileStep
|
2
7
|
V3.9.1 - hotfix: loading related objects (CTF - Mics in particle extraction)
|
3
8
|
V3.9.0
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: scipion-pyworkflow
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.10.1
|
4
4
|
Summary: Simple workflow platform used in scientific applications, initially developed within the Scipion framework for image processing in Electron Microscopy.
|
5
5
|
Home-page: https://github.com/scipion-em/scipion-pyworkflow
|
6
6
|
Author: J.M. De la Rosa Trevin, Roberto Marabini, Grigory Sharov, Josue Gomez Blanco, Pablo Conesa, Yunior Fonseca Reyna
|
@@ -43,7 +43,7 @@ VERSION_1 = '1.0.0'
|
|
43
43
|
VERSION_1_1 = '1.1.0'
|
44
44
|
VERSION_1_2 = '1.2.0'
|
45
45
|
VERSION_2_0 = '2.0.0'
|
46
|
-
VERSION_3_0 = '3.
|
46
|
+
VERSION_3_0 = '3.10.1'
|
47
47
|
|
48
48
|
# For a new release, define a new constant and assign it to LAST_VERSION
|
49
49
|
# The existing one has to be added to OLD_VERSIONS list.
|
@@ -144,9 +144,9 @@ class StepExecutor:
|
|
144
144
|
|
145
145
|
class StepThread(threading.Thread):
|
146
146
|
""" Thread to run Steps in parallel. """
|
147
|
-
def __init__(self,
|
147
|
+
def __init__(self, step, lock):
|
148
148
|
threading.Thread.__init__(self)
|
149
|
-
self.thId =
|
149
|
+
self.thId = step.getObjId()
|
150
150
|
self.step = step
|
151
151
|
self.lock = lock
|
152
152
|
|
@@ -262,7 +262,7 @@ class ThreadStepExecutor(StepExecutor):
|
|
262
262
|
return []
|
263
263
|
else:
|
264
264
|
return gpus
|
265
|
-
def getFreeGpuSlot(self,
|
265
|
+
def getFreeGpuSlot(self, stepId=None):
|
266
266
|
""" Returns a free gpu slot available or None. If node is passed it also reserves it for that node
|
267
267
|
|
268
268
|
:param node: node to make the reserve of Gpus
|
@@ -272,10 +272,10 @@ class ThreadStepExecutor(StepExecutor):
|
|
272
272
|
if node < 0:
|
273
273
|
gpus = self.gpuDict[node]
|
274
274
|
|
275
|
-
if
|
275
|
+
if stepId is not None:
|
276
276
|
self.gpuDict.pop(node)
|
277
|
-
self.gpuDict[
|
278
|
-
logger.info("GPUs %s assigned to
|
277
|
+
self.gpuDict[stepId] = gpus
|
278
|
+
logger.info("GPUs %s assigned to step %s" % (gpus, stepId))
|
279
279
|
else:
|
280
280
|
logger.info("Free gpu slot found at %s" % node)
|
281
281
|
return gpus
|
@@ -288,14 +288,14 @@ class ThreadStepExecutor(StepExecutor):
|
|
288
288
|
if gpus is not None:
|
289
289
|
self.gpuDict.pop(node)
|
290
290
|
self.gpuDict[-node-1] = gpus
|
291
|
-
logger.info("GPUs %s freed from
|
291
|
+
logger.info("GPUs %s freed from step %s" % (gpus, node))
|
292
292
|
else:
|
293
|
-
logger.debug("
|
293
|
+
logger.debug("step id %s not found in GPU slots" % node)
|
294
294
|
|
295
295
|
def _isStepRunnable(self, step):
|
296
296
|
""" Overwrite this method to check GPUs availability"""
|
297
297
|
|
298
|
-
if self.gpuList and step.needsGPU() and self.getFreeGpuSlot() is None:
|
298
|
+
if self.gpuList and step.needsGPU() and self.getFreeGpuSlot(step.getObjId()) is None:
|
299
299
|
logger.info("Can't run step %s. Needs gpus and there are no free gpu slots" % step)
|
300
300
|
return False
|
301
301
|
|
@@ -361,7 +361,7 @@ class ThreadStepExecutor(StepExecutor):
|
|
361
361
|
node = freeNodes.pop(0) # take an available node
|
362
362
|
runningSteps[node] = step
|
363
363
|
logger.debug("Running step %s on node %s" % (step, node))
|
364
|
-
t = StepThread(
|
364
|
+
t = StepThread(step, sharedLock)
|
365
365
|
# won't keep process up if main thread ends
|
366
366
|
t.daemon = True
|
367
367
|
t.start()
|
@@ -358,6 +358,22 @@ class Protocol(Step):
|
|
358
358
|
_package = None
|
359
359
|
_plugin = None
|
360
360
|
|
361
|
+
# Maybe this property can be inferred from the
|
362
|
+
# prerequisites of steps, but is easier to keep it
|
363
|
+
stepsExecutionMode = STEPS_SERIAL
|
364
|
+
|
365
|
+
@classmethod
|
366
|
+
def modeSerial(cls):
|
367
|
+
""" Returns true if steps are run one after another"""
|
368
|
+
# Maybe this property can be inferred from the
|
369
|
+
# prerequisites of steps, but is easier to keep it
|
370
|
+
return cls.stepsExecutionMode == STEPS_SERIAL
|
371
|
+
|
372
|
+
@classmethod
|
373
|
+
def modeParallel(cls):
|
374
|
+
""" Returns true if steps are run in parallel"""
|
375
|
+
return not cls.modeSerial()
|
376
|
+
|
361
377
|
def __init__(self, **kwargs):
|
362
378
|
Step.__init__(self, **kwargs)
|
363
379
|
self._size = None
|
@@ -410,9 +426,6 @@ class Protocol(Step):
|
|
410
426
|
if not hasattr(self, 'hostFullName'):
|
411
427
|
self.hostFullName = String()
|
412
428
|
|
413
|
-
# Maybe this property can be inferred from the
|
414
|
-
# prerequisites of steps, but is easier to keep it
|
415
|
-
self.stepsExecutionMode = STEPS_SERIAL
|
416
429
|
|
417
430
|
# Run mode
|
418
431
|
self.runMode = Integer(kwargs.get('runMode', MODE_RESUME))
|
@@ -1315,7 +1328,7 @@ class Protocol(Step):
|
|
1315
1328
|
prot_id=self.getObjId(),
|
1316
1329
|
prot_name=self.getClassName(),
|
1317
1330
|
step_id=step._index))
|
1318
|
-
if step.isFailed() and self.
|
1331
|
+
if step.isFailed() and self.modeParallel():
|
1319
1332
|
# In parallel mode the executor will exit to close
|
1320
1333
|
# all working threads, so we need to close
|
1321
1334
|
self._endRun()
|
@@ -2433,7 +2446,7 @@ def runProtocolMain(projectPath, protDbPath, protId):
|
|
2433
2446
|
executor = None
|
2434
2447
|
nThreads = max(protocol.numberOfThreads.get(), 1)
|
2435
2448
|
|
2436
|
-
if protocol.
|
2449
|
+
if protocol.modeParallel() and nThreads > 1:
|
2437
2450
|
if protocol.useQueueForSteps():
|
2438
2451
|
executor = QueueStepExecutor(hostConfig,
|
2439
2452
|
protocol.getSubmitDict(),
|
@@ -2451,6 +2464,7 @@ def runProtocolMain(projectPath, protDbPath, protId):
|
|
2451
2464
|
executor = StepExecutor(hostConfig,
|
2452
2465
|
gpuList=protocol.getGpuList())
|
2453
2466
|
|
2467
|
+
logger.info("Running protocol using the %s executor." % executor)
|
2454
2468
|
protocol.setStepsExecutor(executor)
|
2455
2469
|
# Finally run the protocol
|
2456
2470
|
protocol.run()
|
@@ -2529,10 +2543,7 @@ class ProtStreamingBase(Protocol):
|
|
2529
2543
|
Minimum number of threads is 3 and should run in parallel mode.
|
2530
2544
|
"""
|
2531
2545
|
|
2532
|
-
|
2533
|
-
|
2534
|
-
super().__init__()
|
2535
|
-
self.stepsExecutionMode = STEPS_PARALLEL
|
2546
|
+
stepsExecutionMode = STEPS_PARALLEL
|
2536
2547
|
def _insertAllSteps(self):
|
2537
2548
|
# Insert the step that generates the steps
|
2538
2549
|
self._insertFunctionStep(self.resumableStepGeneratorStep, str(datetime.now()), needsGPU=False)
|
@@ -292,10 +292,11 @@ def createAbsLink(source, dest):
|
|
292
292
|
""" Creates a link to a given file path"""
|
293
293
|
if os.path.islink(dest):
|
294
294
|
os.remove(dest)
|
295
|
-
|
295
|
+
|
296
296
|
if os.path.exists(dest):
|
297
297
|
raise Exception('Destination %s os.path.exists and is not a link' % dest)
|
298
|
-
|
298
|
+
|
299
|
+
source = os.path.abspath(source)
|
299
300
|
os.symlink(source, dest)
|
300
301
|
|
301
302
|
|
@@ -498,7 +498,9 @@ class LazyDict(object):
|
|
498
498
|
def parseBibTex(bibtexStr):
|
499
499
|
""" Parse a bibtex file and return a dictionary. """
|
500
500
|
|
501
|
-
return bibtexparser.loads(bibtexStr
|
501
|
+
return bibtexparser.loads(bibtexStr,
|
502
|
+
parser=bibtexparser.bparser.BibTexParser(common_strings=True)
|
503
|
+
).entries_dict
|
502
504
|
|
503
505
|
|
504
506
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: scipion-pyworkflow
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.10.1
|
4
4
|
Summary: Simple workflow platform used in scientific applications, initially developed within the Scipion framework for image processing in Electron Microscopy.
|
5
5
|
Home-page: https://github.com/scipion-em/scipion-pyworkflow
|
6
6
|
Author: J.M. De la Rosa Trevin, Roberto Marabini, Grigory Sharov, Josue Gomez Blanco, Pablo Conesa, Yunior Fonseca Reyna
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/searchprotocol.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewprojects.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewprotocols.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/gui/project/viewprotocols_extra.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/clean_projects.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/edit_workflow.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/fix_links.py
RENAMED
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/refresh.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/schedule.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/project/scripts/stack2volume.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/fa-info-circle_alert.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon.svg
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon_proj.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon_projs.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_icon_prot.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_logo.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_logo_normal.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/scipion_logo_small.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/arrowDown.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/arrowUp.png
RENAMED
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/colRowModeOff.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/colRowModeOn.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/delete.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/doc_icon.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/download_icon.png
RENAMED
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/galleryViewOff.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/galleryViewOn.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/separator.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/tableViewOff.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/tableViewOn.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/volumeOff.png
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/resources/showj/volumeOn.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflow/webservices/workflowhub.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_mappers.py
RENAMED
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_project.py
RENAMED
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_protocol_export.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_protocol_output.py
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/pyworkflowtests/tests/test_streaming.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/entry_points.txt
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/requires.txt
RENAMED
File without changes
|
{scipion_pyworkflow-3.9.2 → scipion_pyworkflow-3.10.1}/scipion_pyworkflow.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|