pybiolib 1.2.679__tar.gz → 1.2.695__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 (132) hide show
  1. {pybiolib-1.2.679 → pybiolib-1.2.695}/PKG-INFO +1 -1
  2. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/__init__.py +4 -2
  3. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_session/session.py +4 -2
  4. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/app/app.py +12 -1
  5. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/jobs/job.py +13 -0
  6. {pybiolib-1.2.679 → pybiolib-1.2.695}/pyproject.toml +1 -1
  7. {pybiolib-1.2.679 → pybiolib-1.2.695}/LICENSE +0 -0
  8. {pybiolib-1.2.679 → pybiolib-1.2.695}/PYPI_README.md +0 -0
  9. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_data_record/data_record.py +0 -0
  10. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/__init__.py +0 -0
  11. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/data_record/__init__.py +0 -0
  12. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/data_record/data_record.py +0 -0
  13. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/data_record/push_data.py +0 -0
  14. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  15. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/file_utils.py +0 -0
  16. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/fuse_mount/__init__.py +0 -0
  17. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  18. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/http_client.py +0 -0
  19. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/lfs/__init__.py +0 -0
  20. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/lfs/cache.py +0 -0
  21. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/libs/__init__.py +0 -0
  22. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  23. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/llm_instructions/.github/copilot-instructions.md +0 -0
  24. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/llm_instructions/.github/prompts/biolib_app_inputs.prompt.md +0 -0
  25. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/llm_instructions/.github/prompts/biolib_run_apps.prompt.md +0 -0
  26. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/llm_instructions/__init__.py +0 -0
  27. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/push_application.py +0 -0
  28. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/runtime.py +0 -0
  29. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/tree_utils.py +0 -0
  30. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/__init__.py +0 -0
  31. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/app.py +0 -0
  32. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/data_record.py +0 -0
  33. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/experiment.py +0 -0
  34. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/file_node.py +0 -0
  35. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/resource.py +0 -0
  36. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/resource_version.py +0 -0
  37. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/types/typing.py +0 -0
  38. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/utils/__init__.py +0 -0
  39. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_internal/utils/multinode.py +0 -0
  40. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/_runtime/runtime.py +0 -0
  41. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/api/__init__.py +0 -0
  42. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/api/client.py +0 -0
  43. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/app/__init__.py +0 -0
  44. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/app/search_apps.py +0 -0
  45. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/__init__.py +0 -0
  46. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/api_client.py +0 -0
  47. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/app_types.py +0 -0
  48. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/auth.py +0 -0
  49. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  50. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  51. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/common_types.py +0 -0
  52. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/job_types.py +0 -0
  53. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/lfs_types.py +0 -0
  54. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_api_client/user_state.py +0 -0
  55. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/__init__.py +0 -0
  56. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  57. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/file_in_container.py +0 -0
  58. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/module_input.py +0 -0
  59. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  60. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  61. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  62. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/saved_job.py +0 -0
  63. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  64. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/system_exception.py +0 -0
  65. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/system_status_update.py +0 -0
  66. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_binary_format/utils.py +0 -0
  67. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_docker_client/__init__.py +0 -0
  68. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_download_container.py +0 -0
  69. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_errors.py +0 -0
  70. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/biolib_logging.py +0 -0
  71. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/__init__.py +0 -0
  72. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/auth.py +0 -0
  73. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/data_record.py +0 -0
  74. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/download_container.py +0 -0
  75. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/init.py +0 -0
  76. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/lfs.py +0 -0
  77. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/push.py +0 -0
  78. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/run.py +0 -0
  79. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/runtime.py +0 -0
  80. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/sdk.py +0 -0
  81. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/cli/start.py +0 -0
  82. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/.gitignore +0 -0
  83. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/__init__.py +0 -0
  84. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  85. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  86. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/__init__.py +0 -0
  87. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/cache_state.py +0 -0
  88. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/cache_types.py +0 -0
  89. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  90. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  91. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  92. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  93. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  94. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/executors/types.py +0 -0
  95. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  96. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  97. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/job_storage.py +0 -0
  98. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/job_worker.py +0 -0
  99. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  100. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/mappings.py +0 -0
  101. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  102. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/job_worker/utils.py +0 -0
  103. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/remote_host_proxy.py +0 -0
  104. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/socker_listener_thread.py +0 -0
  105. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/socket_sender_thread.py +0 -0
  106. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/utils.py +0 -0
  107. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/webserver/__init__.py +0 -0
  108. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  109. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/webserver/webserver.py +0 -0
  110. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/webserver/webserver_types.py +0 -0
  111. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  112. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/compute_node/webserver/worker_thread.py +0 -0
  113. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/experiments/__init__.py +0 -0
  114. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/experiments/experiment.py +0 -0
  115. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/jobs/__init__.py +0 -0
  116. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/jobs/job_result.py +0 -0
  117. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/jobs/types.py +0 -0
  118. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/py.typed +0 -0
  119. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/runtime/__init__.py +0 -0
  120. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/sdk/__init__.py +0 -0
  121. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/tables.py +0 -0
  122. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/templates/__init__.py +0 -0
  123. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/templates/example_app.py +0 -0
  124. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/typing_utils.py +0 -0
  125. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/user/__init__.py +0 -0
  126. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/user/sign_in.py +0 -0
  127. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/utils/__init__.py +0 -0
  128. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/utils/app_uri.py +0 -0
  129. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/utils/cache_state.py +0 -0
  130. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/utils/multipart_uploader.py +0 -0
  131. {pybiolib-1.2.679 → pybiolib-1.2.695}/biolib/utils/seq_util.py +0 -0
  132. {pybiolib-1.2.679 → pybiolib-1.2.695}/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.679
3
+ Version: 1.2.695
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -30,13 +30,15 @@ def call_cli() -> None:
30
30
  biolib.cli.cli()
31
31
 
32
32
 
33
- def load(uri: str) -> _BioLibApp:
33
+ def load(uri: str, suppress_version_warning: bool = False) -> _BioLibApp:
34
34
  r"""Load a BioLib application by its URI or website URL.
35
35
 
36
36
  Args:
37
37
  uri (str): The URI or website URL of the application to load. Can be either:
38
38
  - App URI (e.g., 'biolib/myapp:1.0.0')
39
39
  - Website URL (e.g., 'https://biolib.com/biolib/myapp/')
40
+ suppress_version_warning (bool): If True, don't print a warning when no version is specified.
41
+ Defaults to False.
40
42
 
41
43
  Returns:
42
44
  BioLibApp: The loaded application object
@@ -49,7 +51,7 @@ def load(uri: str) -> _BioLibApp:
49
51
  >>> app = biolib.load('https://biolib.com/biolib/myapp/')
50
52
  >>> result = app.cli('--help')
51
53
  """
52
- return _BioLibApp(uri)
54
+ return _BioLibApp(uri, suppress_version_warning=suppress_version_warning)
53
55
 
54
56
 
55
57
  def search(
@@ -17,13 +17,15 @@ class Session:
17
17
  )
18
18
  )
19
19
 
20
- def load(self, uri: str) -> BioLibApp:
20
+ def load(self, uri: str, suppress_version_warning: bool = False) -> BioLibApp:
21
21
  r"""Load a BioLib application by its URI or website URL.
22
22
 
23
23
  Args:
24
24
  uri (str): The URI or website URL of the application to load. Can be either:
25
25
  - App URI (e.g., 'biolib/myapp:1.0.0')
26
26
  - Website URL (e.g., 'https://biolib.com/biolib/myapp/')
27
+ suppress_version_warning (bool): If True, don't print a warning when no version is specified.
28
+ Defaults to False.
27
29
 
28
30
  Returns:
29
31
  BioLibApp: The loaded application object
@@ -36,4 +38,4 @@ class Session:
36
38
  >>> app = biolib.load('https://biolib.com/biolib/myapp/')
37
39
  >>> result = app.cli('--help')
38
40
  """
39
- return BioLibApp(uri=uri, _api_client=self._api)
41
+ return BioLibApp(uri=uri, _api_client=self._api, suppress_version_warning=suppress_version_warning)
@@ -19,10 +19,11 @@ from biolib.experiments.experiment import Experiment
19
19
  from biolib.jobs import Job
20
20
  from biolib.typing_utils import Dict, Optional
21
21
  from biolib.utils.app_uri import parse_app_uri
22
+ from biolib._runtime.runtime import Runtime
22
23
 
23
24
 
24
25
  class BioLibApp:
25
- def __init__(self, uri: str, _api_client: Optional[ApiClient] = None):
26
+ def __init__(self, uri: str, _api_client: Optional[ApiClient] = None, suppress_version_warning: bool = False):
26
27
  self._api_client: Optional[ApiClient] = _api_client
27
28
 
28
29
  app_response = BiolibAppApi.get_by_uri(uri=uri, api_client=self._api_client)
@@ -30,6 +31,16 @@ class BioLibApp:
30
31
  self._app_uri = app_response['app_uri']
31
32
  self._app_version: AppVersion = app_response['app_version']
32
33
 
34
+ if not suppress_version_warning:
35
+ parsed_uri = parse_app_uri(uri)
36
+ if parsed_uri['version'] is None:
37
+ if Runtime.check_is_environment_biolib_app():
38
+ logger.warning(
39
+ f"No version specified in URI '{uri}'. This will use the default version, "
40
+ f"which may change behaviour over time. Consider locking down the exact version, "
41
+ f"e.g. '{uri}:1.2.3'"
42
+ )
43
+
33
44
  logger.info(f'Loaded project {self._app_uri}')
34
45
 
35
46
  def __str__(self) -> str:
@@ -296,6 +296,19 @@ class Job:
296
296
  except Exception as error:
297
297
  logger.error(f'Failed to cancel job {self._uuid} due to: {error}')
298
298
 
299
+ def delete(self) -> None:
300
+ """Delete the job.
301
+
302
+ Example::
303
+ >>> job = biolib.get_job("job_id")
304
+ >>> job.delete()
305
+ """
306
+ try:
307
+ biolib.api.client.delete(path=f'/jobs/{self._uuid}/')
308
+ logger.info(f'Job {self._uuid} deleted')
309
+ except Exception as error:
310
+ raise BioLibError(f'Failed to delete job {self._uuid} due to: {error}') from error
311
+
299
312
  def rename(self, name: str) -> None:
300
313
  try:
301
314
  biolib.api.client.patch(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.679"
3
+ version = "1.2.695"
4
4
  description = "BioLib Python Client"
5
5
  readme = "PYPI_README.md"
6
6
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes