pybiolib 1.2.770__tar.gz → 1.2.783__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 (137) hide show
  1. {pybiolib-1.2.770 → pybiolib-1.2.783}/PKG-INFO +1 -1
  2. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/push_application.py +7 -2
  3. pybiolib-1.2.783/biolib/_internal/types/push.py +6 -0
  4. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_runtime/runtime.py +9 -0
  5. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/push.py +9 -1
  6. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/sdk/__init__.py +3 -0
  7. {pybiolib-1.2.770 → pybiolib-1.2.783}/pyproject.toml +1 -1
  8. {pybiolib-1.2.770 → pybiolib-1.2.783}/LICENSE +0 -0
  9. {pybiolib-1.2.770 → pybiolib-1.2.783}/PYPI_README.md +0 -0
  10. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/__init__.py +0 -0
  11. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_data_record/data_record.py +0 -0
  12. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/__init__.py +0 -0
  13. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/add_copilot_prompts.py +0 -0
  14. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/data_record/__init__.py +0 -0
  15. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/data_record/data_record.py +0 -0
  16. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/data_record/push_data.py +0 -0
  17. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  18. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/file_utils.py +0 -0
  19. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/fuse_mount/__init__.py +0 -0
  20. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  21. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/http_client.py +0 -0
  22. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/lfs/__init__.py +0 -0
  23. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/lfs/cache.py +0 -0
  24. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/libs/__init__.py +0 -0
  25. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  26. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/llm_instructions/.github/code-style.md +0 -0
  27. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/llm_instructions/.github/copilot-instructions.md +0 -0
  28. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/llm_instructions/.github/prompts/biolib_app_inputs.prompt.md +0 -0
  29. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/llm_instructions/.github/prompts/biolib_run_apps.prompt.md +0 -0
  30. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/llm_instructions/__init__.py +0 -0
  31. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/runtime.py +0 -0
  32. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/tree_utils.py +0 -0
  33. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/__init__.py +0 -0
  34. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/app.py +0 -0
  35. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/data_record.py +0 -0
  36. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/experiment.py +0 -0
  37. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/file_node.py +0 -0
  38. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/resource.py +0 -0
  39. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/resource_permission.py +0 -0
  40. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/resource_version.py +0 -0
  41. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/result.py +0 -0
  42. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/types/typing.py +0 -0
  43. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/utils/__init__.py +0 -0
  44. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_internal/utils/multinode.py +0 -0
  45. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/_session/session.py +0 -0
  46. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/api/__init__.py +0 -0
  47. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/api/client.py +0 -0
  48. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/app/__init__.py +0 -0
  49. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/app/app.py +0 -0
  50. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/app/search_apps.py +0 -0
  51. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/__init__.py +0 -0
  52. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/api_client.py +0 -0
  53. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/app_types.py +0 -0
  54. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/auth.py +0 -0
  55. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  56. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  57. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/common_types.py +0 -0
  58. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/job_types.py +0 -0
  59. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/lfs_types.py +0 -0
  60. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_api_client/user_state.py +0 -0
  61. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/__init__.py +0 -0
  62. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  63. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/file_in_container.py +0 -0
  64. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/module_input.py +0 -0
  65. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  66. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  67. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  68. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/saved_job.py +0 -0
  69. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  70. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/system_exception.py +0 -0
  71. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/system_status_update.py +0 -0
  72. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_binary_format/utils.py +0 -0
  73. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_docker_client/__init__.py +0 -0
  74. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_download_container.py +0 -0
  75. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_errors.py +0 -0
  76. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/biolib_logging.py +0 -0
  77. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/__init__.py +0 -0
  78. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/auth.py +0 -0
  79. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/data_record.py +0 -0
  80. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/download_container.py +0 -0
  81. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/init.py +0 -0
  82. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/lfs.py +0 -0
  83. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/run.py +0 -0
  84. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/runtime.py +0 -0
  85. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/sdk.py +0 -0
  86. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/cli/start.py +0 -0
  87. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/.gitignore +0 -0
  88. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/__init__.py +0 -0
  89. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  90. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  91. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/__init__.py +0 -0
  92. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/cache_state.py +0 -0
  93. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/cache_types.py +0 -0
  94. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  95. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  96. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  97. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  98. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  99. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/executors/types.py +0 -0
  100. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  101. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  102. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/job_storage.py +0 -0
  103. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/job_worker.py +0 -0
  104. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  105. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/mappings.py +0 -0
  106. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  107. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/job_worker/utils.py +0 -0
  108. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/remote_host_proxy.py +0 -0
  109. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/socker_listener_thread.py +0 -0
  110. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/socket_sender_thread.py +0 -0
  111. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/utils.py +0 -0
  112. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/webserver/__init__.py +0 -0
  113. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  114. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/webserver/webserver.py +0 -0
  115. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/webserver/webserver_types.py +0 -0
  116. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  117. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/compute_node/webserver/worker_thread.py +0 -0
  118. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/experiments/__init__.py +0 -0
  119. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/experiments/experiment.py +0 -0
  120. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/jobs/__init__.py +0 -0
  121. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/jobs/job.py +0 -0
  122. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/jobs/job_result.py +0 -0
  123. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/jobs/types.py +0 -0
  124. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/py.typed +0 -0
  125. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/runtime/__init__.py +0 -0
  126. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/tables.py +0 -0
  127. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/templates/__init__.py +0 -0
  128. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/templates/example_app.py +0 -0
  129. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/typing_utils.py +0 -0
  130. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/user/__init__.py +0 -0
  131. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/user/sign_in.py +0 -0
  132. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/utils/__init__.py +0 -0
  133. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/utils/app_uri.py +0 -0
  134. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/utils/cache_state.py +0 -0
  135. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/utils/multipart_uploader.py +0 -0
  136. {pybiolib-1.2.770 → pybiolib-1.2.783}/biolib/utils/seq_util.py +0 -0
  137. {pybiolib-1.2.770 → pybiolib-1.2.783}/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.770
3
+ Version: 1.2.783
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -11,6 +11,7 @@ from biolib._internal.data_record.push_data import (
11
11
  validate_data_path_and_get_files_and_size_of_directory,
12
12
  )
13
13
  from biolib._internal.file_utils import get_files_and_size_of_directory, get_iterable_zip_stream
14
+ from biolib._internal.types.push import PushResponseDict
14
15
  from biolib.biolib_api_client import BiolibApiClient
15
16
  from biolib.biolib_api_client.biolib_app_api import BiolibAppApi
16
17
  from biolib.biolib_docker_client import BiolibDockerClient
@@ -79,7 +80,8 @@ def push_application(
79
80
  app_version_to_copy_images_from: Optional[str],
80
81
  set_as_active: bool,
81
82
  set_as_published: bool,
82
- ):
83
+ dry_run: bool = False,
84
+ ) -> Optional[PushResponseDict]:
83
85
  parsed_uri = parse_app_uri(app_uri)
84
86
  app_name = parsed_uri['app_name']
85
87
 
@@ -199,7 +201,10 @@ def push_application(
199
201
  raise BioLibError(
200
202
  'To push a version with app_data the app must be set to "Allow Client-Side Source Code Access"'
201
203
  )
202
- # push new app version
204
+ if dry_run:
205
+ logger.info('Successfully completed dry-run. No new version was pushed.')
206
+ return None
207
+
203
208
  new_app_version_json = BiolibAppApi.push_app_version(
204
209
  semantic_version=semantic_version,
205
210
  app_id=app['public_id'],
@@ -0,0 +1,6 @@
1
+ from typing import TypedDict
2
+
3
+
4
+ class PushResponseDict(TypedDict):
5
+ app_uri: str
6
+ sematic_version: str
@@ -105,6 +105,15 @@ class Runtime:
105
105
  except Exception as e:
106
106
  logger.warning(f'Failed to set result name from file {path_to_file}: {str(e)}')
107
107
 
108
+ @staticmethod
109
+ def set_result_name_from_string(result_name: str) -> None:
110
+ try:
111
+ truncated_name = result_name[:60]
112
+ logger.debug(f'Setting result name to "{truncated_name}" from string')
113
+ Runtime.set_result_name_prefix(truncated_name)
114
+ except Exception as e:
115
+ logger.warning(f'Failed to set result name from string: {str(e)}')
116
+
108
117
  @staticmethod
109
118
  def create_result_note(note: str) -> None:
110
119
  job_id = Runtime.get_job_id()
@@ -13,7 +13,14 @@ from biolib.biolib_logging import logger, logger_no_user_data
13
13
  @click.option('--copy-images-from-version', required=False)
14
14
  @click.option('--dev', is_flag=True, default=False, required=False)
15
15
  @click.option('--pre-release', is_flag=True, default=False, required=False)
16
- def push(uri, path: str, copy_images_from_version: Optional[str], dev: bool, pre_release: bool) -> None:
16
+ @click.option(
17
+ '--dry-run',
18
+ is_flag=True,
19
+ default=False,
20
+ required=False,
21
+ help='Perform validation without pushing',
22
+ )
23
+ def push(uri, path: str, copy_images_from_version: Optional[str], dev: bool, pre_release: bool, dry_run: bool) -> None:
17
24
  logger.configure(default_log_level=logging.INFO)
18
25
  logger_no_user_data.configure(default_log_level=logging.INFO)
19
26
  set_as_active = True
@@ -33,4 +40,5 @@ def push(uri, path: str, copy_images_from_version: Optional[str], dev: bool, pre
33
40
  app_version_to_copy_images_from=copy_images_from_version,
34
41
  set_as_active=set_as_active,
35
42
  set_as_published=set_as_published,
43
+ dry_run=dry_run,
36
44
  )
@@ -24,6 +24,9 @@ def push_app_version(uri: str, path: str) -> _BioLibApp:
24
24
  set_as_active=False,
25
25
  set_as_published=False,
26
26
  )
27
+ if not push_data:
28
+ raise Exception('Failed to push application; please check the logs for more details')
29
+
27
30
  uri = f'{push_data["app_uri"]}:{push_data["sematic_version"]}'
28
31
  return _BioLibApp(uri)
29
32
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.770"
3
+ version = "1.2.783"
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
File without changes