pybiolib 1.2.322.dev1__tar.gz → 1.2.328.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/PKG-INFO +1 -1
  2. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/webserver/worker_thread.py +27 -21
  3. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/pyproject.toml +1 -1
  4. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/LICENSE +0 -0
  5. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/PYPI_README.md +0 -0
  6. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/__init__.py +0 -0
  7. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_data_record/data_record.py +0 -0
  8. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/__init__.py +0 -0
  9. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/data_record/__init__.py +0 -0
  10. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/data_record/data_record.py +0 -0
  11. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/data_record/push_data.py +0 -0
  12. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  13. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/file_utils.py +0 -0
  14. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/fuse_mount/__init__.py +0 -0
  15. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  16. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/http_client.py +0 -0
  17. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/lfs/__init__.py +0 -0
  18. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/lfs/cache.py +0 -0
  19. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/libs/__init__.py +0 -0
  20. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  21. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/push_application.py +0 -0
  22. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/runtime.py +0 -0
  23. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/__init__.py +0 -0
  24. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/app.py +0 -0
  25. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/data_record.py +0 -0
  26. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/experiment.py +0 -0
  27. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/file_node.py +0 -0
  28. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/resource.py +0 -0
  29. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/resource_version.py +0 -0
  30. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/types/typing.py +0 -0
  31. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/utils/__init__.py +0 -0
  32. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_internal/utils/multinode.py +0 -0
  33. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/_runtime/runtime.py +0 -0
  34. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/api/__init__.py +0 -0
  35. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/api/client.py +0 -0
  36. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/app/__init__.py +0 -0
  37. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/app/app.py +0 -0
  38. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/app/search_apps.py +0 -0
  39. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/__init__.py +0 -0
  40. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/api_client.py +0 -0
  41. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/app_types.py +0 -0
  42. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/auth.py +0 -0
  43. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  44. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  45. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/common_types.py +0 -0
  46. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/job_types.py +0 -0
  47. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/lfs_types.py +0 -0
  48. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_api_client/user_state.py +0 -0
  49. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/__init__.py +0 -0
  50. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  51. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/file_in_container.py +0 -0
  52. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/module_input.py +0 -0
  53. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  54. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  55. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  56. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/saved_job.py +0 -0
  57. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  58. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/system_exception.py +0 -0
  59. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/system_status_update.py +0 -0
  60. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_binary_format/utils.py +0 -0
  61. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_docker_client/__init__.py +0 -0
  62. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_download_container.py +0 -0
  63. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_errors.py +0 -0
  64. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/biolib_logging.py +0 -0
  65. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/__init__.py +0 -0
  66. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/auth.py +0 -0
  67. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/data_record.py +0 -0
  68. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/download_container.py +0 -0
  69. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/init.py +0 -0
  70. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/lfs.py +0 -0
  71. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/push.py +0 -0
  72. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/run.py +0 -0
  73. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/runtime.py +0 -0
  74. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/cli/start.py +0 -0
  75. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/.gitignore +0 -0
  76. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/__init__.py +0 -0
  77. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  78. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  79. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/__init__.py +0 -0
  80. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/cache_state.py +0 -0
  81. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/cache_types.py +0 -0
  82. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  83. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  84. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  85. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  86. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  87. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/executors/types.py +0 -0
  88. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  89. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  90. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/job_storage.py +0 -0
  91. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/job_worker.py +0 -0
  92. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  93. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/mappings.py +0 -0
  94. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  95. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/job_worker/utils.py +0 -0
  96. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/remote_host_proxy.py +0 -0
  97. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/socker_listener_thread.py +0 -0
  98. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/socket_sender_thread.py +0 -0
  99. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/utils.py +0 -0
  100. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/webserver/__init__.py +0 -0
  101. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  102. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/webserver/webserver.py +0 -0
  103. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/webserver/webserver_types.py +0 -0
  104. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  105. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/experiments/__init__.py +0 -0
  106. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/experiments/experiment.py +0 -0
  107. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/jobs/__init__.py +0 -0
  108. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/jobs/job.py +0 -0
  109. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/jobs/job_result.py +0 -0
  110. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/jobs/types.py +0 -0
  111. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/runtime/__init__.py +0 -0
  112. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/sdk/__init__.py +0 -0
  113. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/tables.py +0 -0
  114. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/templates/__init__.py +0 -0
  115. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/templates/example_app.py +0 -0
  116. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/typing_utils.py +0 -0
  117. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/user/__init__.py +0 -0
  118. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/user/sign_in.py +0 -0
  119. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/utils/__init__.py +0 -0
  120. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/utils/app_uri.py +0 -0
  121. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/utils/cache_state.py +0 -0
  122. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/utils/multipart_uploader.py +0 -0
  123. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/utils/seq_util.py +0 -0
  124. {pybiolib-1.2.322.dev1 → pybiolib-1.2.328.dev1}/biolib/utils/zip/remote_zip.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pybiolib
3
- Version: 1.2.322.dev1
3
+ Version: 1.2.328.dev1
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -7,6 +7,7 @@ import sys
7
7
  import threading
8
8
  import time
9
9
  from queue import Queue
10
+ from typing import Optional
10
11
 
11
12
  from biolib import api, utils
12
13
  from biolib.biolib_binary_format import ModuleOutputV2, SystemException, SystemStatusUpdate
@@ -55,6 +56,26 @@ class WorkerThread(threading.Thread):
55
56
  def _job_temporary_dir(self):
56
57
  return self.compute_state['job_temporary_dir']
57
58
 
59
+ def _upload_module_output_and_get_exit_code(self) -> Optional[int]:
60
+ exit_code = None
61
+ try:
62
+ module_output_path = os.path.join(
63
+ self._job_temporary_dir,
64
+ JobStorage.module_output_file_name,
65
+ )
66
+ if os.path.exists(module_output_path):
67
+ module_output = ModuleOutputV2(buffer=LocalFileIndexableBuffer(filename=module_output_path))
68
+ exit_code = module_output.get_exit_code()
69
+ logger_no_user_data.debug(f'Got exit code: {exit_code}')
70
+ if utils.IS_RUNNING_IN_CLOUD:
71
+ JobStorage.upload_module_output(
72
+ job_temporary_dir=self._job_temporary_dir,
73
+ job_uuid=self._job_uuid,
74
+ )
75
+ except Exception as error:
76
+ logger_no_user_data.error(f'Could not upload module output or get exit code: {error}')
77
+ return exit_code
78
+
58
79
  def run(self):
59
80
  try:
60
81
  while True:
@@ -77,25 +98,7 @@ class WorkerThread(threading.Thread):
77
98
 
78
99
  # If 'Computation Finished'
79
100
  if progress == 94:
80
- # Get Job exit code
81
- try:
82
- module_output_path = os.path.join(
83
- self._job_temporary_dir,
84
- JobStorage.module_output_file_name,
85
- )
86
- module_output = ModuleOutputV2(buffer=LocalFileIndexableBuffer(filename=module_output_path))
87
- self.compute_state['exit_code'] = module_output.get_exit_code()
88
- logger_no_user_data.debug(f"Got exit code: {self.compute_state['exit_code']}")
89
-
90
- except Exception as error: # pylint: disable=broad-except
91
- logger_no_user_data.error(f'Could not get exit_code from module output due to: {error}')
92
-
93
- if utils.IS_RUNNING_IN_CLOUD:
94
- JobStorage.upload_module_output(
95
- job_temporary_dir=self._job_temporary_dir,
96
- job_uuid=self._job_uuid,
97
- )
98
-
101
+ self.compute_state['exit_code'] = self._upload_module_output_and_get_exit_code()
99
102
  self._set_status_update(progress=95, log_message='Result Ready')
100
103
  self.compute_state['is_completed'] = True
101
104
  self.terminate()
@@ -174,13 +177,16 @@ class WorkerThread(threading.Thread):
174
177
 
175
178
  def terminate(self) -> None:
176
179
  cloud_job_uuid = self.compute_state['cloud_job_id']
177
- exit_code = self.compute_state.get('exit_code')
178
180
  system_exception_code = self.compute_state['status'].get('error_code')
181
+
179
182
  if utils.IS_RUNNING_IN_CLOUD:
183
+ if system_exception_code == SystemExceptionCodes.CANCELLED_BY_USER.value:
184
+ self.compute_state['exit_code'] = self._upload_module_output_and_get_exit_code()
185
+
180
186
  CloudUtils.finish_cloud_job(
181
187
  cloud_job_id=cloud_job_uuid,
182
188
  system_exception_code=system_exception_code,
183
- exit_code=exit_code,
189
+ exit_code=self.compute_state.get('exit_code', None),
184
190
  )
185
191
 
186
192
  deregistered_due_to_error = False
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.322.dev1"
3
+ version = "1.2.328.dev1"
4
4
  description = "BioLib Python Client"
5
5
  readme = "PYPI_README.md"
6
6
  license = "MIT"
File without changes