pybiolib 1.2.517__tar.gz → 1.2.558__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 (126) hide show
  1. {pybiolib-1.2.517 → pybiolib-1.2.558}/PKG-INFO +2 -2
  2. pybiolib-1.2.558/biolib/_internal/types/resource_version.py +13 -0
  3. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/typing.py +3 -0
  4. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/app/app.py +1 -1
  5. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/jobs/job.py +39 -1
  6. {pybiolib-1.2.517 → pybiolib-1.2.558}/pyproject.toml +2 -2
  7. pybiolib-1.2.517/biolib/_internal/types/resource_version.py +0 -7
  8. {pybiolib-1.2.517 → pybiolib-1.2.558}/LICENSE +0 -0
  9. {pybiolib-1.2.517 → pybiolib-1.2.558}/PYPI_README.md +0 -0
  10. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/__init__.py +0 -0
  11. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_data_record/data_record.py +0 -0
  12. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/__init__.py +0 -0
  13. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/data_record/__init__.py +0 -0
  14. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/data_record/data_record.py +0 -0
  15. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/data_record/push_data.py +0 -0
  16. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  17. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/file_utils.py +0 -0
  18. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/fuse_mount/__init__.py +0 -0
  19. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  20. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/http_client.py +0 -0
  21. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/lfs/__init__.py +0 -0
  22. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/lfs/cache.py +0 -0
  23. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/libs/__init__.py +0 -0
  24. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  25. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/push_application.py +0 -0
  26. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/runtime.py +0 -0
  27. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/__init__.py +0 -0
  28. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/app.py +0 -0
  29. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/data_record.py +0 -0
  30. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/experiment.py +0 -0
  31. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/file_node.py +0 -0
  32. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/types/resource.py +0 -0
  33. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/utils/__init__.py +0 -0
  34. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_internal/utils/multinode.py +0 -0
  35. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/_runtime/runtime.py +0 -0
  36. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/api/__init__.py +0 -0
  37. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/api/client.py +0 -0
  38. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/app/__init__.py +0 -0
  39. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/app/search_apps.py +0 -0
  40. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/__init__.py +0 -0
  41. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/api_client.py +0 -0
  42. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/app_types.py +0 -0
  43. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/auth.py +0 -0
  44. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  45. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  46. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/common_types.py +0 -0
  47. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/job_types.py +0 -0
  48. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/lfs_types.py +0 -0
  49. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_api_client/user_state.py +0 -0
  50. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/__init__.py +0 -0
  51. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  52. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/file_in_container.py +0 -0
  53. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/module_input.py +0 -0
  54. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  55. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  56. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  57. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/saved_job.py +0 -0
  58. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  59. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/system_exception.py +0 -0
  60. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/system_status_update.py +0 -0
  61. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_binary_format/utils.py +0 -0
  62. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_docker_client/__init__.py +0 -0
  63. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_download_container.py +0 -0
  64. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_errors.py +0 -0
  65. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/biolib_logging.py +0 -0
  66. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/__init__.py +0 -0
  67. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/auth.py +0 -0
  68. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/data_record.py +0 -0
  69. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/download_container.py +0 -0
  70. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/init.py +0 -0
  71. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/lfs.py +0 -0
  72. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/push.py +0 -0
  73. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/run.py +0 -0
  74. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/runtime.py +0 -0
  75. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/cli/start.py +0 -0
  76. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/.gitignore +0 -0
  77. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/__init__.py +0 -0
  78. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  79. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  80. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/__init__.py +0 -0
  81. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/cache_state.py +0 -0
  82. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/cache_types.py +0 -0
  83. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  84. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  85. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  86. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  87. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  88. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/executors/types.py +0 -0
  89. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  90. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  91. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/job_storage.py +0 -0
  92. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/job_worker.py +0 -0
  93. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  94. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/mappings.py +0 -0
  95. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  96. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/job_worker/utils.py +0 -0
  97. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/remote_host_proxy.py +0 -0
  98. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/socker_listener_thread.py +0 -0
  99. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/socket_sender_thread.py +0 -0
  100. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/utils.py +0 -0
  101. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/webserver/__init__.py +0 -0
  102. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  103. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/webserver/webserver.py +0 -0
  104. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/webserver/webserver_types.py +0 -0
  105. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  106. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/compute_node/webserver/worker_thread.py +0 -0
  107. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/experiments/__init__.py +0 -0
  108. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/experiments/experiment.py +0 -0
  109. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/jobs/__init__.py +0 -0
  110. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/jobs/job_result.py +0 -0
  111. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/jobs/types.py +0 -0
  112. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/py.typed +0 -0
  113. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/runtime/__init__.py +0 -0
  114. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/sdk/__init__.py +0 -0
  115. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/tables.py +0 -0
  116. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/templates/__init__.py +0 -0
  117. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/templates/example_app.py +0 -0
  118. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/typing_utils.py +0 -0
  119. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/user/__init__.py +0 -0
  120. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/user/sign_in.py +0 -0
  121. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/utils/__init__.py +0 -0
  122. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/utils/app_uri.py +0 -0
  123. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/utils/cache_state.py +0 -0
  124. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/utils/multipart_uploader.py +0 -0
  125. {pybiolib-1.2.517 → pybiolib-1.2.558}/biolib/utils/seq_util.py +0 -0
  126. {pybiolib-1.2.517 → pybiolib-1.2.558}/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.517
3
+ Version: 1.2.558
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -26,7 +26,7 @@ Requires-Dist: gunicorn (>=20.1.0) ; extra == "compute-node"
26
26
  Requires-Dist: importlib-metadata (>=1.6.1)
27
27
  Requires-Dist: pyyaml (>=5.3.1)
28
28
  Requires-Dist: rich (>=12.4.4)
29
- Requires-Dist: typing_extensions (>=3.10.0) ; python_version < "3.8"
29
+ Requires-Dist: typing-extensions (>=4.1.0) ; python_version < "3.11"
30
30
  Project-URL: Homepage, https://github.com/biolib
31
31
  Description-Content-Type: text/markdown
32
32
 
@@ -0,0 +1,13 @@
1
+ from .typing import Literal, NotRequired, TypedDict
2
+
3
+
4
+ class ResourceVersionDict(TypedDict):
5
+ uuid: str
6
+ semantic_version: str
7
+ state: Literal['published', 'unpublished']
8
+ created_at: str
9
+ git_branch_name: NotRequired[str]
10
+
11
+
12
+ class ResourceVersionDetailedDict(ResourceVersionDict):
13
+ pass
@@ -5,3 +5,6 @@ from typing import * # noqa:F403 pylint: disable=wildcard-import, unused-wildca
5
5
 
6
6
  if sys.version_info < (3, 8): # noqa: UP036
7
7
  from typing_extensions import Literal, TypedDict # pylint: disable=unused-import
8
+
9
+ if sys.version_info < (3, 11): # noqa: UP036
10
+ from typing_extensions import NotRequired # pylint: disable=unused-import
@@ -108,7 +108,7 @@ class BioLibApp:
108
108
  (utils.STREAM_STDOUT or stream_logs)
109
109
  and (self._app_version.get('main_output_file') or self._app_version.get('stdout_render_type') == 'text')
110
110
  )
111
- job._stream_logs(enable_print=enable_print) # pylint: disable=protected-access
111
+ job._stream_logs(enable_print=enable_print) # pylint: disable=protected-access
112
112
 
113
113
  if check:
114
114
  exit_code = job.get_exit_code()
@@ -230,7 +230,35 @@ class Job:
230
230
  except Exception as error:
231
231
  raise BioLibError(f'Failed to rename job {self._uuid} due to: {error}') from error
232
232
 
233
- def recompute(self, app_uri: Optional[str] = None, machine: Optional[str] = None, blocking: bool = True) -> 'Job':
233
+ def recompute(
234
+ self,
235
+ app_uri: Optional[str] = None,
236
+ machine: Optional[str] = None,
237
+ blocking: bool = True,
238
+ arguments: Optional[List[str]] = None,
239
+ ) -> 'Job':
240
+ """Recompute the job with the same input files but potentially different arguments.
241
+
242
+ Args:
243
+ app_uri (Optional[str], optional): The URI of the app to use for recomputation.
244
+ If None, uses the original app URI. Defaults to None.
245
+ machine (Optional[str], optional): The machine to run the job on.
246
+ If None, uses the original requested machine. Defaults to None.
247
+ blocking (bool, optional): Whether to block until the job completes.
248
+ If True, streams logs until completion. Defaults to True.
249
+ arguments (Optional[List[str]], optional): New arguments to use for the job.
250
+ If None, uses the original arguments. Defaults to None.
251
+
252
+ Returns:
253
+ Job: A new Job instance for the recomputed job.
254
+
255
+ Example::
256
+ >>> job = biolib.get_job("job_id")
257
+ >>> # Recompute with the same arguments
258
+ >>> new_job = job.recompute()
259
+ >>> # Recompute with different arguments
260
+ >>> new_job = job.recompute(arguments=["--new-arg", "value"])
261
+ """
234
262
  app_response = BiolibAppApi.get_by_uri(uri=app_uri or self._job_dict['app_uri'])
235
263
 
236
264
  job_storage_input = RemoteJobStorageEndpoint(
@@ -241,6 +269,16 @@ class Job:
241
269
  http_response = HttpClient.request(url=job_storage_input.get_remote_url())
242
270
  module_input_serialized = http_response.content
243
271
 
272
+ # If arguments are provided, deserialize the module input, update the arguments, and serialize it again
273
+ if arguments is not None:
274
+ module_input = ModuleInput(module_input_serialized)
275
+ module_input_dict = module_input.deserialize()
276
+
277
+ # Create a new ModuleInput with updated arguments
278
+ module_input_serialized = ModuleInput().serialize(
279
+ stdin=module_input_dict['stdin'], arguments=arguments, files=module_input_dict['files']
280
+ )
281
+
244
282
  original_requested_machine = (
245
283
  self._job_dict['requested_machine'] if self._job_dict['requested_machine'] else None
246
284
  )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.517"
3
+ version = "1.2.558"
4
4
  description = "BioLib Python Client"
5
5
  readme = "PYPI_README.md"
6
6
  license = "MIT"
@@ -32,7 +32,7 @@ importlib-metadata = ">=1.6.1"
32
32
  python = "^3.6.3"
33
33
  pyyaml = ">=5.3.1"
34
34
  rich = ">=12.4.4"
35
- typing_extensions = { version = ">=3.10.0", python = "<3.8" }
35
+ typing-extensions = { version = ">=4.1.0", python = "<3.11" }
36
36
 
37
37
  # Optional dependencies included in the below `extras`
38
38
  flask = { version = ">=2.0.1", optional = true }
@@ -1,7 +0,0 @@
1
- from .typing import Literal, TypedDict
2
-
3
-
4
- class ResourceVersionDetailedDict(TypedDict):
5
- semantic_version: str
6
- state: Literal['published', 'unpublished']
7
- uuid: str
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes