scipion-pyworkflow 3.10.5__py3-none-any.whl → 3.11.0__py3-none-any.whl
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.
- pyworkflow/config.py +131 -67
- pyworkflow/constants.py +12 -2
- pyworkflow/object.py +3 -2
- pyworkflow/plugin.py +93 -44
- pyworkflow/project/scripts/fix_links.py +4 -1
- pyworkflow/resources/showj/arrowDown.png +0 -0
- pyworkflow/resources/showj/arrowUp.png +0 -0
- pyworkflow/resources/showj/background_section.png +0 -0
- pyworkflow/resources/showj/colRowModeOff.png +0 -0
- pyworkflow/resources/showj/colRowModeOn.png +0 -0
- pyworkflow/resources/showj/delete.png +0 -0
- pyworkflow/resources/showj/doc_icon.png +0 -0
- pyworkflow/resources/showj/download_icon.png +0 -0
- pyworkflow/resources/showj/enabled_gallery.png +0 -0
- pyworkflow/resources/showj/galleryViewOff.png +0 -0
- pyworkflow/resources/showj/galleryViewOn.png +0 -0
- pyworkflow/resources/showj/goto.png +0 -0
- pyworkflow/resources/showj/menu.png +0 -0
- pyworkflow/resources/showj/separator.png +0 -0
- pyworkflow/resources/showj/tableViewOff.png +0 -0
- pyworkflow/resources/showj/tableViewOn.png +0 -0
- pyworkflow/resources/showj/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- pyworkflow/resources/showj/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- pyworkflow/resources/showj/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- pyworkflow/resources/showj/volumeOff.png +0 -0
- pyworkflow/resources/showj/volumeOn.png +0 -0
- pyworkflow/viewer.py +23 -1
- pyworkflowtests/objects.py +2 -2
- pyworkflowtests/protocols.py +1 -3
- {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info}/METADATA +21 -25
- scipion_pyworkflow-3.11.0.dist-info/RECORD +71 -0
- {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info}/WHEEL +1 -1
- scipion_pyworkflow-3.11.0.dist-info/entry_points.txt +2 -0
- pyworkflow/apps/__init__.py +0 -29
- pyworkflow/apps/pw_manager.py +0 -37
- pyworkflow/apps/pw_plot.py +0 -51
- pyworkflow/apps/pw_project.py +0 -113
- pyworkflow/apps/pw_protocol_list.py +0 -143
- pyworkflow/apps/pw_protocol_run.py +0 -51
- pyworkflow/apps/pw_run_tests.py +0 -267
- pyworkflow/apps/pw_schedule_run.py +0 -322
- pyworkflow/apps/pw_sleep.py +0 -37
- pyworkflow/apps/pw_sync_data.py +0 -439
- pyworkflow/apps/pw_viewer.py +0 -78
- pyworkflow/gui/__init__.py +0 -36
- pyworkflow/gui/browser.py +0 -726
- pyworkflow/gui/canvas.py +0 -1190
- pyworkflow/gui/dialog.py +0 -977
- pyworkflow/gui/form.py +0 -2637
- pyworkflow/gui/graph.py +0 -247
- pyworkflow/gui/graph_layout.py +0 -271
- pyworkflow/gui/gui.py +0 -566
- pyworkflow/gui/matplotlib_image.py +0 -233
- pyworkflow/gui/plotter.py +0 -247
- pyworkflow/gui/project/__init__.py +0 -25
- pyworkflow/gui/project/base.py +0 -192
- pyworkflow/gui/project/constants.py +0 -139
- pyworkflow/gui/project/labels.py +0 -205
- pyworkflow/gui/project/project.py +0 -492
- pyworkflow/gui/project/searchprotocol.py +0 -154
- pyworkflow/gui/project/searchrun.py +0 -181
- pyworkflow/gui/project/steps.py +0 -171
- pyworkflow/gui/project/utils.py +0 -332
- pyworkflow/gui/project/variables.py +0 -179
- pyworkflow/gui/project/viewdata.py +0 -472
- pyworkflow/gui/project/viewprojects.py +0 -510
- pyworkflow/gui/project/viewprotocols.py +0 -2093
- pyworkflow/gui/project/viewprotocols_extra.py +0 -560
- pyworkflow/gui/text.py +0 -771
- pyworkflow/gui/tooltip.py +0 -185
- pyworkflow/gui/tree.py +0 -684
- pyworkflow/gui/widgets.py +0 -307
- pyworkflow/mapper/__init__.py +0 -26
- pyworkflow/mapper/mapper.py +0 -222
- pyworkflow/mapper/sqlite.py +0 -1578
- pyworkflow/mapper/sqlite_db.py +0 -145
- pyworkflow/project/__init__.py +0 -31
- pyworkflow/project/config.py +0 -454
- pyworkflow/project/manager.py +0 -180
- pyworkflow/project/project.py +0 -2010
- pyworkflow/protocol/__init__.py +0 -38
- pyworkflow/protocol/bibtex.py +0 -48
- pyworkflow/protocol/constants.py +0 -87
- pyworkflow/protocol/executor.py +0 -455
- pyworkflow/protocol/hosts.py +0 -313
- pyworkflow/protocol/launch.py +0 -270
- pyworkflow/protocol/package.py +0 -42
- pyworkflow/protocol/params.py +0 -741
- pyworkflow/protocol/protocol.py +0 -2582
- pyworkflow/tests/__init__.py +0 -29
- pyworkflow/tests/test_utils.py +0 -25
- pyworkflow/tests/tests.py +0 -341
- pyworkflow/utils/__init__.py +0 -38
- pyworkflow/utils/dataset.py +0 -414
- pyworkflow/utils/echo.py +0 -104
- pyworkflow/utils/graph.py +0 -169
- pyworkflow/utils/log.py +0 -284
- pyworkflow/utils/path.py +0 -528
- pyworkflow/utils/process.py +0 -132
- pyworkflow/utils/profiler.py +0 -92
- pyworkflow/utils/progressbar.py +0 -154
- pyworkflow/utils/properties.py +0 -631
- pyworkflow/utils/reflection.py +0 -129
- pyworkflow/utils/utils.py +0 -879
- pyworkflow/utils/which.py +0 -229
- pyworkflow/webservices/__init__.py +0 -8
- pyworkflow/webservices/config.py +0 -11
- pyworkflow/webservices/notifier.py +0 -162
- pyworkflow/webservices/repository.py +0 -59
- pyworkflow/webservices/workflowhub.py +0 -74
- pyworkflowtests/tests/__init__.py +0 -0
- pyworkflowtests/tests/test_canvas.py +0 -72
- pyworkflowtests/tests/test_domain.py +0 -45
- pyworkflowtests/tests/test_logs.py +0 -74
- pyworkflowtests/tests/test_mappers.py +0 -392
- pyworkflowtests/tests/test_object.py +0 -507
- pyworkflowtests/tests/test_project.py +0 -42
- pyworkflowtests/tests/test_protocol_execution.py +0 -135
- pyworkflowtests/tests/test_protocol_export.py +0 -78
- pyworkflowtests/tests/test_protocol_output.py +0 -158
- pyworkflowtests/tests/test_streaming.py +0 -47
- pyworkflowtests/tests/test_utils.py +0 -210
- scipion_pyworkflow-3.10.5.dist-info/RECORD +0 -140
- scipion_pyworkflow-3.10.5.dist-info/dependency_links.txt +0 -1
- scipion_pyworkflow-3.10.5.dist-info/entry_points.txt +0 -5
- {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info/licenses}/LICENSE.txt +0 -0
- {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info}/top_level.txt +0 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
pyworkflow/viewer.py
CHANGED
@@ -133,6 +133,22 @@ class Viewer(object):
|
|
133
133
|
self._keyPressed = args.get('keyPressed', None)
|
134
134
|
self._tkRoot = self.formWindow.root if self.formWindow else None
|
135
135
|
|
136
|
+
@classmethod
|
137
|
+
def can_handle_this(cls, classHierarchy, instance=None):
|
138
|
+
""" Returns none if it cannot handle the instance, otherwise returns which of the
|
139
|
+
classes of the hierarchy it targets (used for establishing priority"""
|
140
|
+
|
141
|
+
for t in cls._targets:
|
142
|
+
if t in classHierarchy:
|
143
|
+
|
144
|
+
if instance is not None and not cls.can_handle_this_instance(instance):
|
145
|
+
return None
|
146
|
+
else:
|
147
|
+
return t
|
148
|
+
|
149
|
+
@classmethod
|
150
|
+
def can_handle_this_instance(cls, instance):
|
151
|
+
return True
|
136
152
|
def getKeyPressed(self):
|
137
153
|
return self._keyPressed
|
138
154
|
|
@@ -222,6 +238,8 @@ class ProtocolViewer(Viewer, pwprot.Protocol):
|
|
222
238
|
If should provide a mapping between form params and the corresponding
|
223
239
|
functions that will return the corresponding Views.
|
224
240
|
"""
|
241
|
+
|
242
|
+
_label ="Protocol viewer"
|
225
243
|
def __init__(self, **kwargs):
|
226
244
|
# Here we are going to intercept the original _defineParams function
|
227
245
|
# and replace by an empty one, this is to postpone the definition of
|
@@ -241,7 +259,11 @@ class ProtocolViewer(Viewer, pwprot.Protocol):
|
|
241
259
|
|
242
260
|
def getWindow(self):
|
243
261
|
return self.formWindow
|
244
|
-
|
262
|
+
|
263
|
+
@classmethod
|
264
|
+
def getName(cls):
|
265
|
+
return cls._label
|
266
|
+
|
245
267
|
def getTkRoot(self):
|
246
268
|
return self._tkRoot
|
247
269
|
|
pyworkflowtests/objects.py
CHANGED
@@ -640,10 +640,10 @@ class MockSetOfImages(MockSet):
|
|
640
640
|
""" Return the string representing the dimensions. """
|
641
641
|
return str(self._firstDim)
|
642
642
|
|
643
|
-
def iterItems(self, orderBy='id', direction='ASC', where=None, limit=None):
|
643
|
+
def iterItems(self, orderBy='id', direction='ASC', where=None, limit=None, rowFilter=None):
|
644
644
|
""" Redefine iteration to set the acquisition to images. """
|
645
645
|
for img in pwobj.Set.iterItems(self, orderBy=orderBy, direction=direction,
|
646
|
-
where=where, limit=limit):
|
646
|
+
where=where, limit=limit, rowFilter=rowFilter):
|
647
647
|
|
648
648
|
# Sometimes the images items in the set could
|
649
649
|
# have the acquisition info per data row and we
|
pyworkflowtests/protocols.py
CHANGED
@@ -69,9 +69,7 @@ class ParallelSleepingProtocol(SleepingProtocol):
|
|
69
69
|
class ConcurrencyProtocol(SleepingProtocol):
|
70
70
|
""" Protocol to test concurrency access to sets"""
|
71
71
|
|
72
|
-
|
73
|
-
super().__init__(**kwargs)
|
74
|
-
self.stepsExecutionMode = pwprot.STEPS_PARALLEL
|
72
|
+
stepsExecutionMode = pwprot.STEPS_PARALLEL
|
75
73
|
|
76
74
|
def _defineParams(self, form):
|
77
75
|
form.addParallelSection(threads=2, mpi=0)
|
@@ -1,35 +1,31 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: scipion-pyworkflow
|
3
|
-
Version: 3.
|
4
|
-
Summary:
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Project-URL:
|
9
|
-
Project-URL:
|
10
|
-
Keywords:
|
11
|
-
|
12
|
-
|
13
|
-
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
14
|
-
Classifier: Programming Language :: Python :: 3.8
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
18
|
-
Classifier: Programming Language :: Python :: 3.12
|
19
|
-
Classifier: Topic :: Scientific/Engineering
|
3
|
+
Version: 3.11.0
|
4
|
+
Summary: Workflow platform used in scientific applications, initially developed
|
5
|
+
Author-email: Pablo Conesa <pconesa@cnb.csic.es>, Yunior Fonseca <cfonseca@cnb.csic.es>, "J.M. De la Rosa Trevin" <josemiguel.delarosatrevin@stjude.org>, Roberto Marabini <roberto@cnb.csic.es>, Grigory Sharov <sharov.grigory@gmail.com>, Josue Gomez Blanco <josue.gomez-blanco@mcgill.ca>
|
6
|
+
License: GNU General Public License v3 (GPLv3)
|
7
|
+
Project-URL: Homepage, https://scipion.i2pc.es
|
8
|
+
Project-URL: Repository, https://github.com/scipion-em/scipion-pyworkflow
|
9
|
+
Project-URL: Issues, https://github.com/scipion-em/scipion-pyworkflow/issues
|
10
|
+
Keywords: scipion,electron-microscopy,cryo-em,structural-biology,generic-workflow-engine,image-processing,scipion-3.0
|
11
|
+
Requires-Python: >=3.8
|
12
|
+
Description-Content-Type: text/x-rst
|
20
13
|
License-File: LICENSE.txt
|
21
14
|
Requires-Dist: bibtexparser<=1.4.1
|
22
15
|
Requires-Dist: psutil<=5.9.6
|
23
|
-
Requires-Dist: tkcolorpicker
|
24
|
-
Requires-Dist: distro<=1.8
|
25
|
-
Requires-Dist: importlib-metadata<=6.8.0
|
26
|
-
Requires-Dist: matplotlib==3.7.3; python_version == "3.8"
|
27
|
-
Requires-Dist: numpy==1.24.4; python_version == "3.8"
|
28
16
|
Requires-Dist: configparser==6.0.0; python_version >= "3.8"
|
29
|
-
Requires-Dist:
|
30
|
-
Requires-Dist: requests==2.31.0; python_version >= "3.8"
|
17
|
+
Requires-Dist: matplotlib==3.7.3; python_version == "3.8"
|
31
18
|
Requires-Dist: matplotlib==3.8.1; python_version >= "3.9"
|
19
|
+
Requires-Dist: pillow==10.1.0; python_version >= "3.8"
|
20
|
+
Requires-Dist: numpy==1.24.4; python_version == "3.8"
|
32
21
|
Requires-Dist: numpy==1.26.1; python_version >= "3.9"
|
22
|
+
Requires-Dist: requests==2.31.0; python_version >= "3.8"
|
23
|
+
Requires-Dist: tkcolorpicker2
|
24
|
+
Requires-Dist: distro<=1.8
|
25
|
+
Requires-Dist: importlib-metadata<=6.8.0
|
26
|
+
Requires-Dist: setuptools>=62.6
|
27
|
+
Requires-Dist: pyperclip==1.9.0
|
28
|
+
Dynamic: license-file
|
33
29
|
|
34
30
|
.. image:: https://img.shields.io/pypi/v/scipion-pyworkflow.svg
|
35
31
|
:target: https://pypi.python.org/pypi/scipion-pyworkflow
|
@@ -0,0 +1,71 @@
|
|
1
|
+
pyworkflow/__init__.py,sha256=Wr-MVKMQJy_Cy-rpPPB0-pyv8-8tx7GPPaLSNBrV1AI,1246
|
2
|
+
pyworkflow/config.py,sha256=tvGMn6OlOrIUzZKCQwWFOA2oBSn85FTgPwNzA86oFn0,26291
|
3
|
+
pyworkflow/constants.py,sha256=7v2QHF7EUXI-N8Ub0EOKobMH9NjDfsxi4UQw1eyUboc,7800
|
4
|
+
pyworkflow/exceptions.py,sha256=3VFxuNJHcIWxRnLPR0vYg0RFAQMmxPBJZLZSi87VI8E,507
|
5
|
+
pyworkflow/object.py,sha256=01nUr0Ud-EDVCULtElfC4patgxUYuUIbrI5qmCsC7BY,55149
|
6
|
+
pyworkflow/plugin.py,sha256=VVUYkLvH_sBcqsrR3_WzTkogCUi9Zi-MkIgp5GGxRz8,30574
|
7
|
+
pyworkflow/template.py,sha256=uScWMZCR3U6ishDlx7QGDDr8B_aLpKXoh8zOhqAirCY,10463
|
8
|
+
pyworkflow/viewer.py,sha256=YCRoZaF0NYoBnSGhgBLQjCXuGKNWbKP6N1GWuALU_cQ,12053
|
9
|
+
pyworkflow/wizard.py,sha256=nXuk_qMUVlQNa6nB6GCt0CoFQ_P2dnJbGWdwtpDG2tQ,2633
|
10
|
+
pyworkflow/project/scripts/clean_projects.py,sha256=5qsLHIyJk7sZJUrfSp8sbMRYTkbZ2purtc-5JJb8awM,2600
|
11
|
+
pyworkflow/project/scripts/config.py,sha256=VF4NMsykWzQjCQHRwnfFwxFq2PSk57Ni3TpgTh3nF3w,2933
|
12
|
+
pyworkflow/project/scripts/create.py,sha256=cmyYJoKP4J9goPRRtQRM9jrsfp-DARHS0XeKJ0ObSCE,2781
|
13
|
+
pyworkflow/project/scripts/edit_workflow.py,sha256=AhwwEFjEgTRR8LUZ4tBSoY2jprDgUmmgFR3FcIU5uno,2940
|
14
|
+
pyworkflow/project/scripts/fix_links.py,sha256=u6UXXqIIh-Rq8FYPmmtvcrgPdszPt93LnkVv0xowAEY,1049
|
15
|
+
pyworkflow/project/scripts/load.py,sha256=oA_xZjO94N-hZohLZQXBKEdmE7BZuWxH7x9gPx9lMj8,2696
|
16
|
+
pyworkflow/project/scripts/refresh.py,sha256=-uw41ouFgEzIF4iBXFRzAI79Lna7fqMmEKhRciSUpTA,2603
|
17
|
+
pyworkflow/project/scripts/schedule.py,sha256=mUUlaUSiMvA_skES6WOL0Mg-j7-S9Cx6dN-6wx5ZM6Y,3989
|
18
|
+
pyworkflow/project/scripts/stack2volume.py,sha256=ZV8qtPj4qWg2LJSXHBnx-S8L8pyGGQiWuRcWu3OP8qI,940
|
19
|
+
pyworkflow/project/scripts/stop.py,sha256=vCeCxkwPCoUkLbna5HCxKWJ1hrsI4U19Sg9JD4ksXj8,2427
|
20
|
+
pyworkflow/resources/Imagej.png,sha256=nU2nWI1wxZB_xlOKsZzdUjj-qiCTjO6GwEKYgZ5Risg,14480
|
21
|
+
pyworkflow/resources/chimera.png,sha256=AKCuwMqmZo0Cg2sddMUjBWUhmAq-nPsAVCBpVrYNeiQ,815
|
22
|
+
pyworkflow/resources/fa-exclamation-triangle_alert.png,sha256=31_XvRu0CkJ2dvHSpcBAR43378lIJTWwiag_A7SuUQc,585
|
23
|
+
pyworkflow/resources/fa-info-circle_alert.png,sha256=KUk6dTqgBa38K9gRKeDGUZfsSGjWftgCRd5WH2rGCcw,596
|
24
|
+
pyworkflow/resources/fa-search.png,sha256=7qC-76_K7dQuvKipYZofYu4bONRDZBJUAeuP934JatA,319
|
25
|
+
pyworkflow/resources/fa-times-circle_alert.png,sha256=pgTdYSR5s5tIt6i9ut2YTTMf0uoUew8Z13J2rPWPpUU,672
|
26
|
+
pyworkflow/resources/file_vol.png,sha256=b_M_W5iXEnG5jEcGvlFAyOm8Nn_ngZcrJnDBq9_361g,961
|
27
|
+
pyworkflow/resources/loading.gif,sha256=6Jktjiva7Z5W6tqxiQZJZI9zahpwmme_D5G-K9EwI1o,16824
|
28
|
+
pyworkflow/resources/no-image128.png,sha256=AnPz8ehji-QTJiSSv0kwYh1QR1TMTLGEKRZg-dz0UKA,13217
|
29
|
+
pyworkflow/resources/scipion_bn.png,sha256=0yVccw1PlBJaoJpIEsChGZH2dXEgphaqHnquaP2i-1c,113916
|
30
|
+
pyworkflow/resources/scipion_icon.png,sha256=moMOOoaLmcWdPdOn_PUBoAQv79WlfxsKwx8nPmrLbzU,2674
|
31
|
+
pyworkflow/resources/scipion_icon.svg,sha256=6CGXzBW6tlbwY0tywHcWxsKeEAhynKmzhvYxnIxN9qQ,126140
|
32
|
+
pyworkflow/resources/scipion_icon_proj.png,sha256=8zyHxxyXo3de7o9dS4vJxrAWnNMDCDhMOJ12zu3iTtI,5147
|
33
|
+
pyworkflow/resources/scipion_icon_projs.png,sha256=OKdsDjMyVFSa-GsRUxDCuhX7RSL5JFBaihC_Uq8ACpU,13273
|
34
|
+
pyworkflow/resources/scipion_icon_prot.png,sha256=WOp8WTw54JPwlhXUzFDP75T1nEbIQy90wIauITHvHck,6554
|
35
|
+
pyworkflow/resources/scipion_logo.png,sha256=NYxY7AxZmp7kb1So2uCDpkzoYRxKl-Fb-zmf59nBkBc,1999
|
36
|
+
pyworkflow/resources/scipion_logo_normal.png,sha256=nrsdm4tI9r1WThlY7KoNtVRl48fZd8oSaGOSvMJdoKk,35151
|
37
|
+
pyworkflow/resources/scipion_logo_small.png,sha256=lUUaMbJmCCewirp4SPc4LJrenMGSxz4243yuDYUaP2Q,7811
|
38
|
+
pyworkflow/resources/sprites.png,sha256=mGbZqKApcnbITOBlH206FKTLcS7kVkrnwG1v9apiifQ,53903
|
39
|
+
pyworkflow/resources/sprites.xcf,sha256=XImVzBax2VMQNNi1jnH78EhZfE9bb5cpVAUwUsYZFJ0,93331
|
40
|
+
pyworkflow/resources/wait.gif,sha256=H9UcWI4UbL9cpxrX_gZAtkmLhXHDAHFYirTRtZrn4q0,4035
|
41
|
+
pyworkflow/resources/showj/arrowDown.png,sha256=qpePLXb2UKAWBL7EaHZChEpAFNwFm1mBiEfckNUwpus,268
|
42
|
+
pyworkflow/resources/showj/arrowUp.png,sha256=1-rxZDyFUHVZ1SIO9at1_OhkvLnaJDlMx90r137RjGI,276
|
43
|
+
pyworkflow/resources/showj/background_section.png,sha256=udYJgAswKF1t4uEECXdstBGHvCFjw5h-XnRoVKIaq70,284666
|
44
|
+
pyworkflow/resources/showj/colRowModeOff.png,sha256=2qPk4pclbMcOkyjhBYRH7KBAal8WQxhiaUAw9WQ1CCY,208
|
45
|
+
pyworkflow/resources/showj/colRowModeOn.png,sha256=hMStGaI89qWEFy_jxYevJLVhE9uL5N8S1hB-Zu24syg,180
|
46
|
+
pyworkflow/resources/showj/delete.png,sha256=VhKYxRezKSgWp76eYDupFeRVUT0YiB3fLkRNFWWmbwg,624
|
47
|
+
pyworkflow/resources/showj/doc_icon.png,sha256=kfpwilQYdF3sm_-Z4qrDCjnyI6i6MMQ0CschqsiPib4,1015
|
48
|
+
pyworkflow/resources/showj/download_icon.png,sha256=Ga8fUNb1TwlL6vIai-_Ms7JgTEC5qMF_UcQngscyq9o,792
|
49
|
+
pyworkflow/resources/showj/enabled_gallery.png,sha256=-HEJRzvm7iTMEVZXOWfmSmq4t4ZO-QU3vzyWvA7FOlU,493
|
50
|
+
pyworkflow/resources/showj/galleryViewOff.png,sha256=f83t_r87f0UG9pYFYGnA2BKFCBCbIYhf0gqlSYJjjZQ,173
|
51
|
+
pyworkflow/resources/showj/galleryViewOn.png,sha256=w9mTGWvcBlGE-BD3T1EyxDgtNcl5yYzGdvfaRwOGGhw,159
|
52
|
+
pyworkflow/resources/showj/goto.png,sha256=P1RKOGjuB89LrVIxjwtH8D83UztbwRXhehBWezqSlg4,451
|
53
|
+
pyworkflow/resources/showj/menu.png,sha256=nXHsckD78XteuxKut_qOWhajQN1uR7fuMiMLiDCggdI,2736
|
54
|
+
pyworkflow/resources/showj/separator.png,sha256=g_I8lFdg_yFo8oe-Jv702QNXKn_DND4s8_IqgERao7o,288
|
55
|
+
pyworkflow/resources/showj/tableViewOff.png,sha256=mvMeM57miMAw8zXnVtncp5gYkIay09_glfoWAHXzG1c,200
|
56
|
+
pyworkflow/resources/showj/tableViewOn.png,sha256=oQj0mE5nelIuIGgM1X6kxDL_v9PKZi4a3N4v4OwF9lI,172
|
57
|
+
pyworkflow/resources/showj/ui-bg_glass_75_e6e6e6_1x400.png,sha256=HHsEJqgqzvoZSG8cM9_V9uHNdz6DVd0L64-x9W_oT_Q,262
|
58
|
+
pyworkflow/resources/showj/ui-bg_glass_95_fef1ec_1x400.png,sha256=r72mOckMSAlhch0OBmIXbvYQK7nUIR8qJz3SFvmI4eQ,332
|
59
|
+
pyworkflow/resources/showj/ui-bg_highlight-soft_75_cccccc_1x100.png,sha256=C4w_HyBOAH7vPIsQaCTTChcjCGhEE9f223kTugmkCDY,280
|
60
|
+
pyworkflow/resources/showj/volumeOff.png,sha256=LKMWEt8_xwA4tDBruP30Y22QqNebHtH31wxZktfwaIU,751
|
61
|
+
pyworkflow/resources/showj/volumeOn.png,sha256=SsZsmeTdIa0pfMcm0Kq8KzsTDG6A3nhi7jdWWk_7Qfk,614
|
62
|
+
pyworkflowtests/__init__.py,sha256=RoXNgyShL7moVEXaimTDdfY1fU26dgGKtdjO4JfBQOk,1686
|
63
|
+
pyworkflowtests/bibtex.py,sha256=1f9PjkRO937PB2b-ax-eKLwjU4YY11M5px3dk3xWQzw,2102
|
64
|
+
pyworkflowtests/objects.py,sha256=uaD9THeybiCkUDbb_cpqEwqCpVG3RLyMsIjOKOX7oNQ,26688
|
65
|
+
pyworkflowtests/protocols.py,sha256=c9dpwMZW5EEZHp4DELH4WSciCigyUAUGaNem6ZO_D6k,5451
|
66
|
+
scipion_pyworkflow-3.11.0.dist-info/licenses/LICENSE.txt,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
|
67
|
+
scipion_pyworkflow-3.11.0.dist-info/METADATA,sha256=XwoE6WMwUlZZVnwL80XxQhk0eQqAEF2OtjJFnw3Vl9M,4316
|
68
|
+
scipion_pyworkflow-3.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
69
|
+
scipion_pyworkflow-3.11.0.dist-info/entry_points.txt,sha256=-P6GVocWl_NS8wS7lB-bTKf-tKANbw4n7DlXXh_VrWk,54
|
70
|
+
scipion_pyworkflow-3.11.0.dist-info/top_level.txt,sha256=PzyJteyenJwLjAeSFP7oYrTN_U71GABQwET8oLZkh9k,27
|
71
|
+
scipion_pyworkflow-3.11.0.dist-info/RECORD,,
|
pyworkflow/apps/__init__.py
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# **************************************************************************
|
2
|
-
# *
|
3
|
-
# * Authors: J.M. De la Rosa Trevin (jmdelarosa@cnb.csic.es)
|
4
|
-
# *
|
5
|
-
# * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
|
6
|
-
# *
|
7
|
-
# * This program is free software; you can redistribute it and/or modify
|
8
|
-
# * it under the terms of the GNU General Public License as published by
|
9
|
-
# * the Free Software Foundation; either version 3 of the License, or
|
10
|
-
# * (at your option) any later version.
|
11
|
-
# *
|
12
|
-
# * This program is distributed in the hope that it will be useful,
|
13
|
-
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
-
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
-
# * GNU General Public License for more details.
|
16
|
-
# *
|
17
|
-
# * You should have received a copy of the GNU General Public License
|
18
|
-
# * along with this program; if not, write to the Free Software
|
19
|
-
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
20
|
-
# * 02111-1307 USA
|
21
|
-
# *
|
22
|
-
# * All comments concerning this program package may be sent to the
|
23
|
-
# * e-mail address 'scipion@cnb.csic.es'
|
24
|
-
# *
|
25
|
-
# **************************************************************************
|
26
|
-
"""
|
27
|
-
Configuration sub-package
|
28
|
-
"""
|
29
|
-
|
pyworkflow/apps/pw_manager.py
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
|
3
|
-
# **************************************************************************
|
4
|
-
# *
|
5
|
-
# * Authors: J.M. De la Rosa Trevin (jmdelarosa@cnb.csic.es)
|
6
|
-
# *
|
7
|
-
# * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
|
8
|
-
# *
|
9
|
-
# * This program is free software; you can redistribute it and/or modify
|
10
|
-
# * it under the terms of the GNU General Public License as published by
|
11
|
-
# * the Free Software Foundation; either version 3 of the License, or
|
12
|
-
# * (at your option) any later version.
|
13
|
-
# *
|
14
|
-
# * This program is distributed in the hope that it will be useful,
|
15
|
-
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# * GNU General Public License for more details.
|
18
|
-
# *
|
19
|
-
# * You should have received a copy of the GNU General Public License
|
20
|
-
# * along with this program; if not, write to the Free Software
|
21
|
-
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
22
|
-
# * 02111-1307 USA
|
23
|
-
# *
|
24
|
-
# * All comments concerning this program package may be sent to the
|
25
|
-
# * e-mail address 'scipion@cnb.csic.es'
|
26
|
-
# *
|
27
|
-
# **************************************************************************
|
28
|
-
"""
|
29
|
-
Launch the windows with all Projects.
|
30
|
-
"""
|
31
|
-
|
32
|
-
from pyworkflow.gui.project import ProjectManagerWindow
|
33
|
-
|
34
|
-
|
35
|
-
if __name__ == '__main__':
|
36
|
-
|
37
|
-
ProjectManagerWindow().show()
|
pyworkflow/apps/pw_plot.py
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
|
3
|
-
|
4
|
-
import argparse
|
5
|
-
from pwem.viewers import EmPlotter
|
6
|
-
from pyworkflow.gui.plotter import Plotter
|
7
|
-
|
8
|
-
|
9
|
-
def main():
|
10
|
-
parser = argparse.ArgumentParser(prog='Scipion Plot')
|
11
|
-
parser.add_argument('--file', help='File to visualize', required=True)
|
12
|
-
parser.add_argument('--block', help='Block to visualize')
|
13
|
-
parser.add_argument('--type', help='Plot type')
|
14
|
-
parser.add_argument('--columns', help='Columns to plot')
|
15
|
-
parser.add_argument('--xcolumn', help='X Column to plot')
|
16
|
-
parser.add_argument('--orderColumn', help='Column to order')
|
17
|
-
parser.add_argument('--orderDir', help='Order direction(ASC, DESC)')
|
18
|
-
parser.add_argument('--bins', help='If plot type is histogram, number of bins')
|
19
|
-
parser.add_argument('--colors', help='Colors to plot columns')
|
20
|
-
parser.add_argument('--styles', help='Styles to plot columns')
|
21
|
-
parser.add_argument('--markers', help='Markers to plot columns')
|
22
|
-
parser.add_argument('--title', help='Plot title', default='')
|
23
|
-
parser.add_argument('--ytitle', help='Y axis title', default='')
|
24
|
-
parser.add_argument('--xtitle', help='X axis title', default='')
|
25
|
-
|
26
|
-
args = parser.parse_args()
|
27
|
-
plotfile = args.file
|
28
|
-
block = args.block if args.block else ''
|
29
|
-
type = args.type
|
30
|
-
columns = args.columns
|
31
|
-
xcolumn = args.xcolumn
|
32
|
-
orderColumn = args.orderColumn
|
33
|
-
orderDir = args.orderDir
|
34
|
-
|
35
|
-
bins = args.bins
|
36
|
-
colors = args.colors
|
37
|
-
styles = args.styles
|
38
|
-
markers = args.markers
|
39
|
-
title = args.title
|
40
|
-
xtitle = args.xtitle
|
41
|
-
ytitle = args.ytitle
|
42
|
-
|
43
|
-
Plotter.setBackend('TkAgg')
|
44
|
-
plotter = EmPlotter.createFromFile(
|
45
|
-
plotfile, block, type, columns, colors, styles, markers, xcolumn,
|
46
|
-
ytitle, xtitle, title, bins, orderColumn, orderDir)
|
47
|
-
plotter.show(block=True)
|
48
|
-
|
49
|
-
|
50
|
-
if __name__ == '__main__':
|
51
|
-
main()
|
pyworkflow/apps/pw_project.py
DELETED
@@ -1,113 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# **************************************************************************
|
3
|
-
# *
|
4
|
-
# * Authors: J.M. De la Rosa Trevin (jmdelarosa@cnb.csic.es)
|
5
|
-
# *
|
6
|
-
# * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
|
7
|
-
# *
|
8
|
-
# * This program is free software; you can redistribute it and/or modify
|
9
|
-
# * it under the terms of the GNU General Public License as published by
|
10
|
-
# * the Free Software Foundation; either version 3 of the License, or
|
11
|
-
# * (at your option) any later version.
|
12
|
-
# *
|
13
|
-
# * This program is distributed in the hope that it will be useful,
|
14
|
-
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
-
# * GNU General Public License for more details.
|
17
|
-
# *
|
18
|
-
# * You should have received a copy of the GNU General Public License
|
19
|
-
# * along with this program; if not, write to the Free Software
|
20
|
-
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
21
|
-
# * 02111-1307 USA
|
22
|
-
# *
|
23
|
-
# * All comments concerning this program package may be sent to the
|
24
|
-
# * e-mail address 'scipion@cnb.csic.es'
|
25
|
-
# *
|
26
|
-
# **************************************************************************
|
27
|
-
"""
|
28
|
-
Launch main project window
|
29
|
-
"""
|
30
|
-
|
31
|
-
import sys
|
32
|
-
import os
|
33
|
-
|
34
|
-
from pyworkflow import Config
|
35
|
-
from pyworkflow.project import Manager
|
36
|
-
from pyworkflow.gui.project import ProjectWindow
|
37
|
-
import pyworkflow.utils as pwutils
|
38
|
-
|
39
|
-
HERE = 'here'
|
40
|
-
LAST = 'last'
|
41
|
-
LIST = 'list'
|
42
|
-
|
43
|
-
def openProject(projectName):
|
44
|
-
""" Opens a scipion project:
|
45
|
-
|
46
|
-
:param projectName: Name of an existing project to open,
|
47
|
-
or "here" to create a project in the current working dir,
|
48
|
-
or "last" to open the most recent project
|
49
|
-
|
50
|
-
"""
|
51
|
-
manager = Manager()
|
52
|
-
projName = os.path.basename(projectName)
|
53
|
-
|
54
|
-
|
55
|
-
if projName == LIST:
|
56
|
-
showProjectList(manager)
|
57
|
-
return
|
58
|
-
# Handle special name 'here' to create a project
|
59
|
-
# from the current directory
|
60
|
-
elif projName == HERE:
|
61
|
-
cwd = Config.SCIPION_CWD
|
62
|
-
|
63
|
-
if " " in cwd:
|
64
|
-
print("Projects can't have spaces in the name: %s" % cwd)
|
65
|
-
sys.exit(1)
|
66
|
-
|
67
|
-
print("\nYou are trying to create a project here:",
|
68
|
-
pwutils.cyan(cwd))
|
69
|
-
|
70
|
-
if os.listdir(cwd):
|
71
|
-
print(pwutils.red('\nWARNING: this folder is not empty!!!'))
|
72
|
-
key = input("\nDo you want to create a project here? [y/N]?")
|
73
|
-
|
74
|
-
if key.lower().strip() != 'y':
|
75
|
-
print("\nAborting...")
|
76
|
-
sys.exit(0)
|
77
|
-
else:
|
78
|
-
print("\nCreating project....")
|
79
|
-
projName = os.path.basename(cwd)
|
80
|
-
projDir = os.path.dirname(cwd)
|
81
|
-
manager.createProject(projName, location=projDir)
|
82
|
-
|
83
|
-
elif projName == LAST: # Get last project
|
84
|
-
projects = manager.listProjects()
|
85
|
-
if not projects:
|
86
|
-
sys.exit("No projects yet, cannot open the last one.")
|
87
|
-
projName = projects[0].projName
|
88
|
-
|
89
|
-
projPath = manager.getProjectPath(projName)
|
90
|
-
|
91
|
-
if os.path.exists(projPath):
|
92
|
-
projWindow = ProjectWindow(projPath)
|
93
|
-
projWindow.show()
|
94
|
-
else:
|
95
|
-
print("Can't open project %s. It does not exist" % projPath)
|
96
|
-
|
97
|
-
#Show the list of projects
|
98
|
-
showProjectList(manager)
|
99
|
-
|
100
|
-
def showProjectList(manager):
|
101
|
-
|
102
|
-
projects = manager.listProjects()
|
103
|
-
|
104
|
-
print("\n******** LIST OF PROJECTS *******\n")
|
105
|
-
for project in projects:
|
106
|
-
print(project.projName)
|
107
|
-
print("\n")
|
108
|
-
if __name__ == '__main__':
|
109
|
-
|
110
|
-
if len(sys.argv) > 1:
|
111
|
-
openProject(sys.argv[1])
|
112
|
-
else:
|
113
|
-
print("usage: pw_project.py PROJECT_NAME or %s or %s or %s" % (HERE, LAST, LIST))
|
@@ -1,143 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# **************************************************************************
|
3
|
-
# *
|
4
|
-
# * Authors: J.M. De la Rosa Trevin (jmdelarosa@cnb.csic.es)
|
5
|
-
# *
|
6
|
-
# * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
|
7
|
-
# *
|
8
|
-
# * This program is free software; you can redistribute it and/or modify
|
9
|
-
# * it under the terms of the GNU General Public License as published by
|
10
|
-
# * the Free Software Foundation; either version 3 of the License, or
|
11
|
-
# * (at your option) any later version.
|
12
|
-
# *
|
13
|
-
# * This program is distributed in the hope that it will be useful,
|
14
|
-
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
-
# * GNU General Public License for more details.
|
17
|
-
# *
|
18
|
-
# * You should have received a copy of the GNU General Public License
|
19
|
-
# * along with this program; if not, write to the Free Software
|
20
|
-
# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
21
|
-
# * 02111-1307 USA
|
22
|
-
# *
|
23
|
-
# * All comments concerning this program package may be sent to the
|
24
|
-
# * e-mail address 'scipion@cnb.csic.es'
|
25
|
-
# *
|
26
|
-
# **************************************************************************
|
27
|
-
###
|
28
|
-
"""
|
29
|
-
List all existing protocols within Scipion
|
30
|
-
"""
|
31
|
-
|
32
|
-
import sys
|
33
|
-
|
34
|
-
from pwem.protocols import (ProtImport, ProtMicrographs, ProtParticles, Prot2D,
|
35
|
-
Prot3D)
|
36
|
-
from pyworkflow import Config
|
37
|
-
from pyworkflow.viewer import Viewer
|
38
|
-
from pyworkflow.protocol.protocol import Protocol
|
39
|
-
|
40
|
-
|
41
|
-
def getFirstLine(doc):
|
42
|
-
""" Get the first non empty line from doc. """
|
43
|
-
if doc:
|
44
|
-
for lines in doc.split('\n'):
|
45
|
-
l = lines.strip()
|
46
|
-
if l:
|
47
|
-
return l
|
48
|
-
return ''
|
49
|
-
|
50
|
-
|
51
|
-
def hasDoubleInheritance(classRef):
|
52
|
-
# loop while class has single parent
|
53
|
-
numParents = len(classRef.__bases__)
|
54
|
-
while numParents == 1 and classRef is not Protocol:
|
55
|
-
classRef = classRef.__bases__[0]
|
56
|
-
numParents = len(classRef.__bases__)
|
57
|
-
if numParents > 1:
|
58
|
-
return True
|
59
|
-
else:
|
60
|
-
return False
|
61
|
-
|
62
|
-
|
63
|
-
if __name__ == '__main__':
|
64
|
-
count = 0
|
65
|
-
withDoc = '--with-doc' in sys.argv
|
66
|
-
extended = '--extended' in sys.argv
|
67
|
-
ai = '--ai' in sys.argv
|
68
|
-
|
69
|
-
emProtocolsDict = Config.getDomain().getProtocols()
|
70
|
-
|
71
|
-
protDict = {}
|
72
|
-
|
73
|
-
# Group protocols by package name
|
74
|
-
for k, v in emProtocolsDict.items():
|
75
|
-
packageName = v.getClassPackageName()
|
76
|
-
|
77
|
-
if packageName not in protDict:
|
78
|
-
protDict[packageName] = []
|
79
|
-
|
80
|
-
if not issubclass(v, Viewer) and not v.isBase():
|
81
|
-
if extended:
|
82
|
-
protTuple = (k, v, hasDoubleInheritance(v),
|
83
|
-
v().allowMpi, v().numberOfMpi,
|
84
|
-
v().allowThreads, v().numberOfThreads,
|
85
|
-
v().stepsExecutionMode)
|
86
|
-
else:
|
87
|
-
protTuple = (k, v)
|
88
|
-
protDict[packageName].append(protTuple)
|
89
|
-
|
90
|
-
def iterGroups(protDict):
|
91
|
-
groups = list(protDict.keys())
|
92
|
-
groups.sort(key=lambda x: 1000-len(protDict[x]))
|
93
|
-
|
94
|
-
for g in groups:
|
95
|
-
yield g, protDict[g]
|
96
|
-
|
97
|
-
def printProtocols(prots):
|
98
|
-
protList = [(p[0], p[1], p[1].getClassLabel()) for p in prots]
|
99
|
-
protList.sort(key=lambda x: x[2])
|
100
|
-
|
101
|
-
for k, v, l in protList:
|
102
|
-
doc = getFirstLine(v.__doc__) if withDoc else ''
|
103
|
-
print("* link:%s[%s]: %s" % (k, l, doc))
|
104
|
-
|
105
|
-
|
106
|
-
if withDoc:
|
107
|
-
for group, prots in iterGroups(protDict):
|
108
|
-
print("Package: ", group, "(%d protocols)" % len(prots))
|
109
|
-
for p in prots:
|
110
|
-
print(" %s ( %s ):" % (p[1].getClassLabel(), p[0]))
|
111
|
-
print(" ", p[1].__doc__)
|
112
|
-
print("-" * 100)
|
113
|
-
|
114
|
-
else:
|
115
|
-
if extended:
|
116
|
-
formatStr = "{:<15}\t{:<35}\t{:<35}" + "\t{:<20}" * 6
|
117
|
-
print(formatStr.format("PACKAGE", "PROTOCOL",
|
118
|
-
"LABEL", "DOUBLE_INHERITANCE",
|
119
|
-
"ALLOWS_MPI", "NUM_MPI",
|
120
|
-
"ALLOWS_THREADS", "NUM_THREADS",
|
121
|
-
"STEPS_EXEC_MODE"))
|
122
|
-
for group, prots in iterGroups(protDict):
|
123
|
-
for p in prots:
|
124
|
-
print(formatStr.format(group, p[0],
|
125
|
-
p[1].getClassLabel(), *p[2:]))
|
126
|
-
elif ai:
|
127
|
-
for group, prots in iterGroups(protDict):
|
128
|
-
for protClassName, protClass in prots:
|
129
|
-
print("\nThe protocol named \"%s\" can be found in the %s plugin." %(protClass._label, group))
|
130
|
-
print("\"%s\" protocol help is as follows:\n %s." % (protClass._label, protClass.__doc__))
|
131
|
-
instance = protClass()
|
132
|
-
|
133
|
-
for name, param in instance._definition.iterParams():
|
134
|
-
print("\"%s\" has a \"%s\" parameter that is explained as: %s" % (protClass._label, param.label, param.help))
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
else:
|
139
|
-
formatStr = "{:<15}\t{:<35}\t{:<35}"
|
140
|
-
print(formatStr.format("PACKAGE", "PROTOCOL", "LABEL"))
|
141
|
-
for group, prots in iterGroups(protDict):
|
142
|
-
for k, v in prots:
|
143
|
-
print(formatStr.format(group, k, v.getClassLabel()))
|