scipion-pyworkflow 3.10.6__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 (123) hide show
  1. pyworkflow/config.py +131 -67
  2. pyworkflow/constants.py +2 -1
  3. pyworkflow/plugin.py +93 -44
  4. pyworkflow/resources/showj/arrowDown.png +0 -0
  5. pyworkflow/resources/showj/arrowUp.png +0 -0
  6. pyworkflow/resources/showj/background_section.png +0 -0
  7. pyworkflow/resources/showj/colRowModeOff.png +0 -0
  8. pyworkflow/resources/showj/colRowModeOn.png +0 -0
  9. pyworkflow/resources/showj/delete.png +0 -0
  10. pyworkflow/resources/showj/doc_icon.png +0 -0
  11. pyworkflow/resources/showj/download_icon.png +0 -0
  12. pyworkflow/resources/showj/enabled_gallery.png +0 -0
  13. pyworkflow/resources/showj/galleryViewOff.png +0 -0
  14. pyworkflow/resources/showj/galleryViewOn.png +0 -0
  15. pyworkflow/resources/showj/goto.png +0 -0
  16. pyworkflow/resources/showj/menu.png +0 -0
  17. pyworkflow/resources/showj/separator.png +0 -0
  18. pyworkflow/resources/showj/tableViewOff.png +0 -0
  19. pyworkflow/resources/showj/tableViewOn.png +0 -0
  20. pyworkflow/resources/showj/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  21. pyworkflow/resources/showj/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  22. pyworkflow/resources/showj/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  23. pyworkflow/resources/showj/volumeOff.png +0 -0
  24. pyworkflow/resources/showj/volumeOn.png +0 -0
  25. pyworkflow/viewer.py +23 -1
  26. pyworkflowtests/protocols.py +1 -3
  27. {scipion_pyworkflow-3.10.6.dist-info → scipion_pyworkflow-3.11.0.dist-info}/METADATA +13 -27
  28. scipion_pyworkflow-3.11.0.dist-info/RECORD +71 -0
  29. {scipion_pyworkflow-3.10.6.dist-info → scipion_pyworkflow-3.11.0.dist-info}/WHEEL +1 -1
  30. pyworkflow/apps/__init__.py +0 -29
  31. pyworkflow/apps/pw_manager.py +0 -37
  32. pyworkflow/apps/pw_plot.py +0 -51
  33. pyworkflow/apps/pw_project.py +0 -113
  34. pyworkflow/apps/pw_protocol_list.py +0 -143
  35. pyworkflow/apps/pw_protocol_run.py +0 -51
  36. pyworkflow/apps/pw_run_tests.py +0 -267
  37. pyworkflow/apps/pw_schedule_run.py +0 -322
  38. pyworkflow/apps/pw_sleep.py +0 -37
  39. pyworkflow/apps/pw_sync_data.py +0 -439
  40. pyworkflow/apps/pw_viewer.py +0 -78
  41. pyworkflow/gui/__init__.py +0 -36
  42. pyworkflow/gui/browser.py +0 -726
  43. pyworkflow/gui/canvas.py +0 -1190
  44. pyworkflow/gui/dialog.py +0 -977
  45. pyworkflow/gui/form.py +0 -2637
  46. pyworkflow/gui/graph.py +0 -247
  47. pyworkflow/gui/graph_layout.py +0 -271
  48. pyworkflow/gui/gui.py +0 -566
  49. pyworkflow/gui/matplotlib_image.py +0 -233
  50. pyworkflow/gui/plotter.py +0 -247
  51. pyworkflow/gui/project/__init__.py +0 -25
  52. pyworkflow/gui/project/base.py +0 -192
  53. pyworkflow/gui/project/constants.py +0 -139
  54. pyworkflow/gui/project/labels.py +0 -205
  55. pyworkflow/gui/project/project.py +0 -492
  56. pyworkflow/gui/project/searchprotocol.py +0 -154
  57. pyworkflow/gui/project/searchrun.py +0 -181
  58. pyworkflow/gui/project/steps.py +0 -171
  59. pyworkflow/gui/project/utils.py +0 -332
  60. pyworkflow/gui/project/variables.py +0 -179
  61. pyworkflow/gui/project/viewdata.py +0 -472
  62. pyworkflow/gui/project/viewprojects.py +0 -510
  63. pyworkflow/gui/project/viewprotocols.py +0 -2093
  64. pyworkflow/gui/project/viewprotocols_extra.py +0 -559
  65. pyworkflow/gui/text.py +0 -771
  66. pyworkflow/gui/tooltip.py +0 -185
  67. pyworkflow/gui/tree.py +0 -684
  68. pyworkflow/gui/widgets.py +0 -307
  69. pyworkflow/mapper/__init__.py +0 -26
  70. pyworkflow/mapper/mapper.py +0 -222
  71. pyworkflow/mapper/sqlite.py +0 -1581
  72. pyworkflow/mapper/sqlite_db.py +0 -145
  73. pyworkflow/project/__init__.py +0 -31
  74. pyworkflow/project/config.py +0 -454
  75. pyworkflow/project/manager.py +0 -180
  76. pyworkflow/project/project.py +0 -2007
  77. pyworkflow/protocol/__init__.py +0 -38
  78. pyworkflow/protocol/bibtex.py +0 -48
  79. pyworkflow/protocol/constants.py +0 -87
  80. pyworkflow/protocol/executor.py +0 -471
  81. pyworkflow/protocol/hosts.py +0 -314
  82. pyworkflow/protocol/launch.py +0 -270
  83. pyworkflow/protocol/package.py +0 -42
  84. pyworkflow/protocol/params.py +0 -741
  85. pyworkflow/protocol/protocol.py +0 -2641
  86. pyworkflow/tests/__init__.py +0 -29
  87. pyworkflow/tests/test_utils.py +0 -25
  88. pyworkflow/tests/tests.py +0 -341
  89. pyworkflow/utils/__init__.py +0 -38
  90. pyworkflow/utils/dataset.py +0 -414
  91. pyworkflow/utils/echo.py +0 -104
  92. pyworkflow/utils/graph.py +0 -169
  93. pyworkflow/utils/log.py +0 -284
  94. pyworkflow/utils/path.py +0 -528
  95. pyworkflow/utils/process.py +0 -153
  96. pyworkflow/utils/profiler.py +0 -92
  97. pyworkflow/utils/progressbar.py +0 -154
  98. pyworkflow/utils/properties.py +0 -631
  99. pyworkflow/utils/reflection.py +0 -129
  100. pyworkflow/utils/utils.py +0 -879
  101. pyworkflow/utils/which.py +0 -229
  102. pyworkflow/webservices/__init__.py +0 -8
  103. pyworkflow/webservices/config.py +0 -11
  104. pyworkflow/webservices/notifier.py +0 -162
  105. pyworkflow/webservices/repository.py +0 -59
  106. pyworkflow/webservices/workflowhub.py +0 -74
  107. pyworkflowtests/tests/__init__.py +0 -0
  108. pyworkflowtests/tests/test_canvas.py +0 -72
  109. pyworkflowtests/tests/test_domain.py +0 -45
  110. pyworkflowtests/tests/test_logs.py +0 -74
  111. pyworkflowtests/tests/test_mappers.py +0 -392
  112. pyworkflowtests/tests/test_object.py +0 -507
  113. pyworkflowtests/tests/test_project.py +0 -42
  114. pyworkflowtests/tests/test_protocol_execution.py +0 -142
  115. pyworkflowtests/tests/test_protocol_export.py +0 -78
  116. pyworkflowtests/tests/test_protocol_output.py +0 -158
  117. pyworkflowtests/tests/test_streaming.py +0 -47
  118. pyworkflowtests/tests/test_utils.py +0 -210
  119. scipion_pyworkflow-3.10.6.dist-info/RECORD +0 -140
  120. scipion_pyworkflow-3.10.6.dist-info/dependency_links.txt +0 -1
  121. {scipion_pyworkflow-3.10.6.dist-info → scipion_pyworkflow-3.11.0.dist-info}/entry_points.txt +0 -0
  122. {scipion_pyworkflow-3.10.6.dist-info → scipion_pyworkflow-3.11.0.dist-info}/licenses/LICENSE.txt +0 -0
  123. {scipion_pyworkflow-3.10.6.dist-info → scipion_pyworkflow-3.11.0.dist-info}/top_level.txt +0 -0
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
 
@@ -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,22 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scipion-pyworkflow
3
- Version: 3.10.6
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
@@ -27,19 +20,12 @@ Requires-Dist: pillow==10.1.0; python_version >= "3.8"
27
20
  Requires-Dist: numpy==1.24.4; python_version == "3.8"
28
21
  Requires-Dist: numpy==1.26.1; python_version >= "3.9"
29
22
  Requires-Dist: requests==2.31.0; python_version >= "3.8"
30
- Requires-Dist: tkcolorpicker
23
+ Requires-Dist: tkcolorpicker2
31
24
  Requires-Dist: distro<=1.8
32
25
  Requires-Dist: importlib-metadata<=6.8.0
33
- Dynamic: author
34
- Dynamic: author-email
35
- Dynamic: classifier
36
- Dynamic: description
37
- Dynamic: home-page
38
- Dynamic: keywords
26
+ Requires-Dist: setuptools>=62.6
27
+ Requires-Dist: pyperclip==1.9.0
39
28
  Dynamic: license-file
40
- Dynamic: project-url
41
- Dynamic: requires-dist
42
- Dynamic: summary
43
29
 
44
30
  .. image:: https://img.shields.io/pypi/v/scipion-pyworkflow.svg
45
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 (78.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -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()))
@@ -1,51 +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
- This module is responsible for launching protocol executions.
29
- """
30
- import sys
31
- from pyworkflow.utils import LoggingConfigurator
32
-
33
- if __name__ == '__main__':
34
-
35
- if len(sys.argv) == 6:
36
- projPath = sys.argv[1]
37
- dbPath = sys.argv[2]
38
- protId = int(sys.argv[3])
39
- stdOut = sys.argv[4]
40
- stdErr = sys.argv[5]
41
-
42
- LoggingConfigurator.setUpProtocolRunLogging(stdOut, stdErr)
43
-
44
- from pyworkflow.protocol import runProtocolMain
45
- runProtocolMain(projPath, dbPath, protId)
46
-
47
- else:
48
- from os.path import basename
49
- print("usage: %s projPath dbPath protocolID pathToStdoutLog pathToStdErrLog." % basename(sys.argv[0]))
50
- print("sys.argv: %s" % sys.argv)
51
- sys.exit(1)