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.
Files changed (127) hide show
  1. pyworkflow/config.py +131 -67
  2. pyworkflow/constants.py +12 -2
  3. pyworkflow/object.py +3 -2
  4. pyworkflow/plugin.py +93 -44
  5. pyworkflow/project/scripts/fix_links.py +4 -1
  6. pyworkflow/resources/showj/arrowDown.png +0 -0
  7. pyworkflow/resources/showj/arrowUp.png +0 -0
  8. pyworkflow/resources/showj/background_section.png +0 -0
  9. pyworkflow/resources/showj/colRowModeOff.png +0 -0
  10. pyworkflow/resources/showj/colRowModeOn.png +0 -0
  11. pyworkflow/resources/showj/delete.png +0 -0
  12. pyworkflow/resources/showj/doc_icon.png +0 -0
  13. pyworkflow/resources/showj/download_icon.png +0 -0
  14. pyworkflow/resources/showj/enabled_gallery.png +0 -0
  15. pyworkflow/resources/showj/galleryViewOff.png +0 -0
  16. pyworkflow/resources/showj/galleryViewOn.png +0 -0
  17. pyworkflow/resources/showj/goto.png +0 -0
  18. pyworkflow/resources/showj/menu.png +0 -0
  19. pyworkflow/resources/showj/separator.png +0 -0
  20. pyworkflow/resources/showj/tableViewOff.png +0 -0
  21. pyworkflow/resources/showj/tableViewOn.png +0 -0
  22. pyworkflow/resources/showj/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  23. pyworkflow/resources/showj/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  24. pyworkflow/resources/showj/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  25. pyworkflow/resources/showj/volumeOff.png +0 -0
  26. pyworkflow/resources/showj/volumeOn.png +0 -0
  27. pyworkflow/viewer.py +23 -1
  28. pyworkflowtests/objects.py +2 -2
  29. pyworkflowtests/protocols.py +1 -3
  30. {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info}/METADATA +21 -25
  31. scipion_pyworkflow-3.11.0.dist-info/RECORD +71 -0
  32. {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info}/WHEEL +1 -1
  33. scipion_pyworkflow-3.11.0.dist-info/entry_points.txt +2 -0
  34. pyworkflow/apps/__init__.py +0 -29
  35. pyworkflow/apps/pw_manager.py +0 -37
  36. pyworkflow/apps/pw_plot.py +0 -51
  37. pyworkflow/apps/pw_project.py +0 -113
  38. pyworkflow/apps/pw_protocol_list.py +0 -143
  39. pyworkflow/apps/pw_protocol_run.py +0 -51
  40. pyworkflow/apps/pw_run_tests.py +0 -267
  41. pyworkflow/apps/pw_schedule_run.py +0 -322
  42. pyworkflow/apps/pw_sleep.py +0 -37
  43. pyworkflow/apps/pw_sync_data.py +0 -439
  44. pyworkflow/apps/pw_viewer.py +0 -78
  45. pyworkflow/gui/__init__.py +0 -36
  46. pyworkflow/gui/browser.py +0 -726
  47. pyworkflow/gui/canvas.py +0 -1190
  48. pyworkflow/gui/dialog.py +0 -977
  49. pyworkflow/gui/form.py +0 -2637
  50. pyworkflow/gui/graph.py +0 -247
  51. pyworkflow/gui/graph_layout.py +0 -271
  52. pyworkflow/gui/gui.py +0 -566
  53. pyworkflow/gui/matplotlib_image.py +0 -233
  54. pyworkflow/gui/plotter.py +0 -247
  55. pyworkflow/gui/project/__init__.py +0 -25
  56. pyworkflow/gui/project/base.py +0 -192
  57. pyworkflow/gui/project/constants.py +0 -139
  58. pyworkflow/gui/project/labels.py +0 -205
  59. pyworkflow/gui/project/project.py +0 -492
  60. pyworkflow/gui/project/searchprotocol.py +0 -154
  61. pyworkflow/gui/project/searchrun.py +0 -181
  62. pyworkflow/gui/project/steps.py +0 -171
  63. pyworkflow/gui/project/utils.py +0 -332
  64. pyworkflow/gui/project/variables.py +0 -179
  65. pyworkflow/gui/project/viewdata.py +0 -472
  66. pyworkflow/gui/project/viewprojects.py +0 -510
  67. pyworkflow/gui/project/viewprotocols.py +0 -2093
  68. pyworkflow/gui/project/viewprotocols_extra.py +0 -560
  69. pyworkflow/gui/text.py +0 -771
  70. pyworkflow/gui/tooltip.py +0 -185
  71. pyworkflow/gui/tree.py +0 -684
  72. pyworkflow/gui/widgets.py +0 -307
  73. pyworkflow/mapper/__init__.py +0 -26
  74. pyworkflow/mapper/mapper.py +0 -222
  75. pyworkflow/mapper/sqlite.py +0 -1578
  76. pyworkflow/mapper/sqlite_db.py +0 -145
  77. pyworkflow/project/__init__.py +0 -31
  78. pyworkflow/project/config.py +0 -454
  79. pyworkflow/project/manager.py +0 -180
  80. pyworkflow/project/project.py +0 -2010
  81. pyworkflow/protocol/__init__.py +0 -38
  82. pyworkflow/protocol/bibtex.py +0 -48
  83. pyworkflow/protocol/constants.py +0 -87
  84. pyworkflow/protocol/executor.py +0 -455
  85. pyworkflow/protocol/hosts.py +0 -313
  86. pyworkflow/protocol/launch.py +0 -270
  87. pyworkflow/protocol/package.py +0 -42
  88. pyworkflow/protocol/params.py +0 -741
  89. pyworkflow/protocol/protocol.py +0 -2582
  90. pyworkflow/tests/__init__.py +0 -29
  91. pyworkflow/tests/test_utils.py +0 -25
  92. pyworkflow/tests/tests.py +0 -341
  93. pyworkflow/utils/__init__.py +0 -38
  94. pyworkflow/utils/dataset.py +0 -414
  95. pyworkflow/utils/echo.py +0 -104
  96. pyworkflow/utils/graph.py +0 -169
  97. pyworkflow/utils/log.py +0 -284
  98. pyworkflow/utils/path.py +0 -528
  99. pyworkflow/utils/process.py +0 -132
  100. pyworkflow/utils/profiler.py +0 -92
  101. pyworkflow/utils/progressbar.py +0 -154
  102. pyworkflow/utils/properties.py +0 -631
  103. pyworkflow/utils/reflection.py +0 -129
  104. pyworkflow/utils/utils.py +0 -879
  105. pyworkflow/utils/which.py +0 -229
  106. pyworkflow/webservices/__init__.py +0 -8
  107. pyworkflow/webservices/config.py +0 -11
  108. pyworkflow/webservices/notifier.py +0 -162
  109. pyworkflow/webservices/repository.py +0 -59
  110. pyworkflow/webservices/workflowhub.py +0 -74
  111. pyworkflowtests/tests/__init__.py +0 -0
  112. pyworkflowtests/tests/test_canvas.py +0 -72
  113. pyworkflowtests/tests/test_domain.py +0 -45
  114. pyworkflowtests/tests/test_logs.py +0 -74
  115. pyworkflowtests/tests/test_mappers.py +0 -392
  116. pyworkflowtests/tests/test_object.py +0 -507
  117. pyworkflowtests/tests/test_project.py +0 -42
  118. pyworkflowtests/tests/test_protocol_execution.py +0 -135
  119. pyworkflowtests/tests/test_protocol_export.py +0 -78
  120. pyworkflowtests/tests/test_protocol_output.py +0 -158
  121. pyworkflowtests/tests/test_streaming.py +0 -47
  122. pyworkflowtests/tests/test_utils.py +0 -210
  123. scipion_pyworkflow-3.10.5.dist-info/RECORD +0 -140
  124. scipion_pyworkflow-3.10.5.dist-info/dependency_links.txt +0 -1
  125. scipion_pyworkflow-3.10.5.dist-info/entry_points.txt +0 -5
  126. {scipion_pyworkflow-3.10.5.dist-info → scipion_pyworkflow-3.11.0.dist-info/licenses}/LICENSE.txt +0 -0
  127. {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
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
 
@@ -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
@@ -69,9 +69,7 @@ class ParallelSleepingProtocol(SleepingProtocol):
69
69
  class ConcurrencyProtocol(SleepingProtocol):
70
70
  """ Protocol to test concurrency access to sets"""
71
71
 
72
- def __init__(self, **kwargs):
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
1
+ Metadata-Version: 2.4
2
2
  Name: scipion-pyworkflow
3
- Version: 3.10.5
4
- Summary: Simple workflow platform used in scientific applications, initially developed within the Scipion framework for image processing in Electron Microscopy.
5
- Home-page: https://github.com/scipion-em/scipion-pyworkflow
6
- Author: J.M. De la Rosa Trevin, Roberto Marabini, Grigory Sharov, Josue Gomez Blanco, Pablo Conesa, Yunior Fonseca Reyna
7
- Author-email: delarosatrevin@scilifelab.se, roberto@cnb.csic.es, gsharov@mrc-lmb.cam.ac.uk, josue.gomez-blanco@mcgill.ca, pconesa@cnb.csic.es, fonsecareyna@cnb.csic.es
8
- Project-URL: Bug Reports, https://github.com/scipion-em/scipion-pyworkflow/issues
9
- Project-URL: Source, https://github.com/scipion-em/scipion-pyworkflow/
10
- Keywords: workflows science electron-microscopy cryo-em structural-biology image-processing scipion
11
- Classifier: Development Status :: 5 - Production/Stable
12
- Classifier: Intended Audience :: Science/Research
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: pillow==10.1.0; python_version >= "3.8"
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,2 @@
1
+ [pyworkflow.plugin]
2
+ pyworkflowtests = pyworkflowtests
@@ -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
-
@@ -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()
@@ -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()
@@ -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()))