pybiolib 1.2.122__tar.gz → 1.2.141.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 (123) hide show
  1. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/PKG-INFO +1 -1
  2. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/__init__.py +2 -2
  3. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/push_application.py +5 -5
  4. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/push.py +15 -2
  5. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/jobs/job.py +24 -6
  6. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/sdk/__init__.py +2 -1
  7. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/pyproject.toml +1 -1
  8. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/LICENSE +0 -0
  9. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/PYPI_README.md +0 -0
  10. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_data_record/data_record.py +0 -0
  11. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/__init__.py +0 -0
  12. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/data_record/__init__.py +0 -0
  13. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/data_record/data_record.py +0 -0
  14. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/data_record/push_data.py +0 -0
  15. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  16. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/file_utils.py +0 -0
  17. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/fuse_mount/__init__.py +0 -0
  18. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  19. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/http_client.py +0 -0
  20. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/lfs/__init__.py +0 -0
  21. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/lfs/cache.py +0 -0
  22. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/libs/__init__.py +0 -0
  23. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  24. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/runtime.py +0 -0
  25. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/__init__.py +0 -0
  26. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/app.py +0 -0
  27. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/data_record.py +0 -0
  28. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/experiment.py +0 -0
  29. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/resource.py +0 -0
  30. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/resource_version.py +0 -0
  31. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/types/typing.py +0 -0
  32. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/utils/__init__.py +0 -0
  33. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_internal/utils/multinode.py +0 -0
  34. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/_runtime/runtime.py +0 -0
  35. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/api/__init__.py +0 -0
  36. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/api/client.py +0 -0
  37. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/app/__init__.py +0 -0
  38. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/app/app.py +0 -0
  39. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/app/search_apps.py +0 -0
  40. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/__init__.py +0 -0
  41. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/api_client.py +0 -0
  42. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/app_types.py +0 -0
  43. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/auth.py +0 -0
  44. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  45. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  46. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/common_types.py +0 -0
  47. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/job_types.py +0 -0
  48. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/lfs_types.py +0 -0
  49. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_api_client/user_state.py +0 -0
  50. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/__init__.py +0 -0
  51. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  52. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/file_in_container.py +0 -0
  53. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/module_input.py +0 -0
  54. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  55. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  56. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  57. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/saved_job.py +0 -0
  58. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  59. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/system_exception.py +0 -0
  60. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/system_status_update.py +0 -0
  61. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_binary_format/utils.py +0 -0
  62. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_docker_client/__init__.py +0 -0
  63. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_download_container.py +0 -0
  64. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_errors.py +0 -0
  65. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/biolib_logging.py +0 -0
  66. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/__init__.py +0 -0
  67. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/auth.py +0 -0
  68. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/data_record.py +0 -0
  69. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/download_container.py +0 -0
  70. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/init.py +0 -0
  71. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/lfs.py +0 -0
  72. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/run.py +0 -0
  73. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/runtime.py +0 -0
  74. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/cli/start.py +0 -0
  75. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/.gitignore +0 -0
  76. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/__init__.py +0 -0
  77. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  78. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  79. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/__init__.py +0 -0
  80. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/cache_state.py +0 -0
  81. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/cache_types.py +0 -0
  82. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  83. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  84. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  85. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  86. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  87. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/executors/types.py +0 -0
  88. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  89. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  90. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/job_storage.py +0 -0
  91. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/job_worker.py +0 -0
  92. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  93. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/mappings.py +0 -0
  94. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  95. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/job_worker/utils.py +0 -0
  96. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/remote_host_proxy.py +0 -0
  97. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/socker_listener_thread.py +0 -0
  98. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/socket_sender_thread.py +0 -0
  99. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/utils.py +0 -0
  100. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/webserver/__init__.py +0 -0
  101. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  102. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/webserver/webserver.py +0 -0
  103. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/webserver/webserver_types.py +0 -0
  104. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  105. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/compute_node/webserver/worker_thread.py +0 -0
  106. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/experiments/__init__.py +0 -0
  107. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/experiments/experiment.py +0 -0
  108. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/jobs/__init__.py +0 -0
  109. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/jobs/job_result.py +0 -0
  110. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/jobs/types.py +0 -0
  111. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/runtime/__init__.py +0 -0
  112. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/tables.py +0 -0
  113. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/templates/__init__.py +0 -0
  114. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/templates/example_app.py +0 -0
  115. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/typing_utils.py +0 -0
  116. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/user/__init__.py +0 -0
  117. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/user/sign_in.py +0 -0
  118. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/utils/__init__.py +0 -0
  119. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/utils/app_uri.py +0 -0
  120. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/utils/cache_state.py +0 -0
  121. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/utils/multipart_uploader.py +0 -0
  122. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/utils/seq_util.py +0 -0
  123. {pybiolib-1.2.122 → pybiolib-1.2.141.dev1}/biolib/utils/zip/remote_zip.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pybiolib
3
- Version: 1.2.122
3
+ Version: 1.2.141.dev1
4
4
  Summary: BioLib Python Client
5
5
  Home-page: https://github.com/biolib
6
6
  License: MIT
@@ -49,8 +49,8 @@ def get_data_record(uri: str) -> _DataRecord:
49
49
  return _DataRecord.get_by_uri(uri)
50
50
 
51
51
 
52
- def fetch_jobs(count: int = 25) -> List[_Job]:
53
- return _Job.fetch_jobs(count)
52
+ def fetch_jobs(count: int = 25, status: Optional[str] = None) -> List[_Job]:
53
+ return _Job.fetch_jobs(count, status)
54
54
 
55
55
 
56
56
  def fetch_data_records(uri: Optional[str] = None, count: Optional[int] = None) -> List[_DataRecord]:
@@ -76,7 +76,8 @@ def push_application(
76
76
  app_uri: str,
77
77
  app_path: str,
78
78
  app_version_to_copy_images_from: Optional[str],
79
- is_dev_version: Optional[bool],
79
+ set_as_active: bool,
80
+ set_as_published: bool,
80
81
  ):
81
82
  app_uri_parts = app_uri.split(':')
82
83
  if len(app_uri_parts) > 2:
@@ -276,12 +277,11 @@ def push_application(
276
277
  app_version_uuid = new_app_version_json['public_id']
277
278
  api.client.post(
278
279
  path=f'/app-versions/{app_version_uuid}/complete-push/',
279
- data={'set_as_active': not is_dev_version},
280
+ data={'set_as_active': set_as_active, 'set_as_published': set_as_published},
280
281
  )
281
282
 
282
283
  sematic_version = f"{new_app_version_json['major']}.{new_app_version_json['minor']}.{new_app_version_json['patch']}"
283
- logger.info(
284
- f"Successfully pushed new {'development ' if is_dev_version else ''}version {sematic_version} of {app_uri}."
285
- )
284
+ version_name = 'development ' if not set_as_published else ''
285
+ logger.info(f'Successfully pushed new {version_name}version {sematic_version} of {app_uri}.')
286
286
 
287
287
  return {'app_uri': app_uri, 'sematic_version': sematic_version}
@@ -12,12 +12,25 @@ from biolib.biolib_logging import logger, logger_no_user_data
12
12
  @click.option('--path', default='.', required=False)
13
13
  @click.option('--copy-images-from-version', required=False)
14
14
  @click.option('--dev', is_flag=True, default=False, required=False)
15
- def push(uri, path: str, copy_images_from_version: Optional[str], dev: bool) -> None:
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
17
  logger.configure(default_log_level=logging.INFO)
17
18
  logger_no_user_data.configure(default_log_level=logging.INFO)
19
+ set_as_active = True
20
+ set_as_published = True
21
+ if dev and pre_release:
22
+ print('Error: you cannot set both --dev and --pre-release, please select one.')
23
+ exit(1)
24
+ elif dev:
25
+ set_as_active = False
26
+ set_as_published = False
27
+ elif pre_release:
28
+ set_as_active = False
29
+ set_as_published = True
18
30
  push_application(
19
31
  app_path=path,
20
32
  app_uri=uri,
21
33
  app_version_to_copy_images_from=copy_images_from_version,
22
- is_dev_version=dev,
34
+ set_as_active=set_as_active,
35
+ set_as_published=set_as_published,
23
36
  )
@@ -22,7 +22,7 @@ from biolib.compute_node.utils import SystemExceptionCodeMap, SystemExceptionCod
22
22
  from biolib.jobs.job_result import JobResult
23
23
  from biolib.jobs.types import CloudJobDict, CloudJobStartedDict, JobDict
24
24
  from biolib.tables import BioLibTable
25
- from biolib.typing_utils import Dict, List, Optional, cast
25
+ from biolib.typing_utils import Dict, List, Optional, Union, cast
26
26
  from biolib.utils import IS_RUNNING_IN_NOTEBOOK
27
27
  from biolib.utils.app_uri import parse_app_uri
28
28
 
@@ -232,8 +232,8 @@ class Job:
232
232
  self._result = JobResult(job_uuid=self._uuid, job_auth_token=self._auth_token, module_output=module_output)
233
233
 
234
234
  @staticmethod
235
- def fetch_jobs(count: int) -> List['Job']:
236
- job_dicts = Job._get_job_dicts(count)
235
+ def fetch_jobs(count: int, status: Optional[str] = None) -> List['Job']:
236
+ job_dicts = Job._get_job_dicts(count, status)
237
237
  return [Job(job_dict) for job_dict in job_dicts]
238
238
 
239
239
  @staticmethod
@@ -242,9 +242,27 @@ class Job:
242
242
  BioLibTable(columns_to_row_map=Job.table_columns_to_row_map, rows=job_dicts, title='Jobs').print_table()
243
243
 
244
244
  @staticmethod
245
- def _get_job_dicts(count: int) -> List['JobDict']:
246
- job_dicts: List['JobDict'] = api.client.get(path='/jobs/', params={'page_size': str(count)}).json()['results']
247
- return job_dicts
245
+ def _get_job_dicts(count: int, status: Optional[str] = None) -> List['JobDict']:
246
+ job_states = ['in_progress', 'completed', 'failed', 'cancelled']
247
+ if status is not None and status not in job_states:
248
+ raise Exception('Invalid status filter')
249
+
250
+ page_size = min(count, 1_000)
251
+ params: Dict[str, Union[str, int]] = dict(page_size=page_size)
252
+ if status:
253
+ params['state'] = status
254
+
255
+ api_path = '/jobs/'
256
+ response = api.client.get(api_path, params=params).json()
257
+ jobs = [job_dict for job_dict in response['results']]
258
+
259
+ for page_number in range(2, response['page_count'] + 1):
260
+ page_response = api.client.get(path=api_path, params=dict(**params, page=page_number)).json()
261
+ jobs.extend([job_dict for job_dict in page_response['results']])
262
+ if len(jobs) >= count:
263
+ break
264
+
265
+ return jobs
248
266
 
249
267
  @staticmethod
250
268
  def _get_job_dict(uuid: str, auth_token: Optional[str] = None) -> JobDict:
@@ -16,7 +16,8 @@ def push_app_version(uri: str, path: str) -> _BioLibApp:
16
16
  app_uri=uri,
17
17
  app_path=path,
18
18
  app_version_to_copy_images_from=None,
19
- is_dev_version=True,
19
+ set_as_active=False,
20
+ set_as_published=False,
20
21
  )
21
22
  uri = f'{push_data["app_uri"]}:{push_data["sematic_version"]}'
22
23
  return _BioLibApp(uri)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.122"
3
+ version = "1.2.141.dev1"
4
4
  description = "BioLib Python Client"
5
5
  readme = "PYPI_README.md"
6
6
  license = "MIT"
File without changes