pybiolib 1.1.2097__tar.gz → 1.1.2112__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 (115) hide show
  1. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/PKG-INFO +1 -1
  2. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/app/app.py +2 -0
  3. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/biolib_job_api.py +6 -0
  4. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/executors/docker_executor.py +8 -3
  5. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/jobs/job.py +3 -0
  6. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/pyproject.toml +1 -1
  7. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/LICENSE +0 -0
  8. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/README.md +0 -0
  9. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/__init__.py +0 -0
  10. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_data_record/data_record.py +0 -0
  11. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/__init__.py +0 -0
  12. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/data_record/__init__.py +0 -0
  13. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/data_record/data_record.py +0 -0
  14. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  15. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/file_utils.py +0 -0
  16. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/fuse_mount/__init__.py +0 -0
  17. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  18. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/http_client.py +0 -0
  19. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/lfs/__init__.py +0 -0
  20. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/lfs/cache.py +0 -0
  21. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/libs/__init__.py +0 -0
  22. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  23. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/push_application.py +0 -0
  24. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/runtime.py +0 -0
  25. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_internal/utils/__init__.py +0 -0
  26. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/_runtime/runtime.py +0 -0
  27. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/api/__init__.py +0 -0
  28. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/api/client.py +0 -0
  29. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/app/__init__.py +0 -0
  30. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/app/search_apps.py +0 -0
  31. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/__init__.py +0 -0
  32. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/api_client.py +0 -0
  33. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/app_types.py +0 -0
  34. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/auth.py +0 -0
  35. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  36. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/common_types.py +0 -0
  37. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/job_types.py +0 -0
  38. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/lfs_types.py +0 -0
  39. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_api_client/user_state.py +0 -0
  40. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/__init__.py +0 -0
  41. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  42. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/file_in_container.py +0 -0
  43. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/module_input.py +0 -0
  44. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  45. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  46. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  47. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/saved_job.py +0 -0
  48. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  49. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/system_exception.py +0 -0
  50. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/system_status_update.py +0 -0
  51. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_binary_format/utils.py +0 -0
  52. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_docker_client/__init__.py +0 -0
  53. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_download_container.py +0 -0
  54. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_errors.py +0 -0
  55. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/biolib_logging.py +0 -0
  56. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/__init__.py +0 -0
  57. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/auth.py +0 -0
  58. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/data_record.py +0 -0
  59. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/download_container.py +0 -0
  60. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/init.py +0 -0
  61. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/lfs.py +0 -0
  62. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/push.py +0 -0
  63. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/run.py +0 -0
  64. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/runtime.py +0 -0
  65. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/cli/start.py +0 -0
  66. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/.gitignore +0 -0
  67. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/__init__.py +0 -0
  68. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  69. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  70. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/__init__.py +0 -0
  71. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/cache_state.py +0 -0
  72. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/cache_types.py +0 -0
  73. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  74. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  75. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  76. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  77. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/executors/types.py +0 -0
  78. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  79. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  80. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/job_storage.py +0 -0
  81. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/job_worker.py +0 -0
  82. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  83. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/mappings.py +0 -0
  84. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  85. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/job_worker/utils.py +0 -0
  86. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/remote_host_proxy.py +0 -0
  87. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/socker_listener_thread.py +0 -0
  88. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/socket_sender_thread.py +0 -0
  89. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/utils.py +0 -0
  90. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/webserver/__init__.py +0 -0
  91. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  92. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/webserver/webserver.py +0 -0
  93. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/webserver/webserver_types.py +0 -0
  94. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  95. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/compute_node/webserver/worker_thread.py +0 -0
  96. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/experiments/__init__.py +0 -0
  97. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/experiments/experiment.py +0 -0
  98. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/experiments/types.py +0 -0
  99. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/jobs/__init__.py +0 -0
  100. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/jobs/job_result.py +0 -0
  101. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/jobs/types.py +0 -0
  102. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/runtime/__init__.py +0 -0
  103. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/sdk/__init__.py +0 -0
  104. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/tables.py +0 -0
  105. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/templates/__init__.py +0 -0
  106. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/templates/example_app.py +0 -0
  107. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/typing_utils.py +0 -0
  108. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/user/__init__.py +0 -0
  109. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/user/sign_in.py +0 -0
  110. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/utils/__init__.py +0 -0
  111. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/utils/app_uri.py +0 -0
  112. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/utils/cache_state.py +0 -0
  113. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/utils/multipart_uploader.py +0 -0
  114. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/biolib/utils/seq_util.py +0 -0
  115. {pybiolib-1.1.2097 → pybiolib-1.1.2112}/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.1.2097
3
+ Version: 1.1.2112
4
4
  Summary: BioLib Python Client
5
5
  Home-page: https://github.com/biolib
6
6
  License: MIT
@@ -56,6 +56,7 @@ class BioLibApp:
56
56
  result_prefix: Optional[str] = None,
57
57
  timeout: Optional[int] = None,
58
58
  notify: bool = False,
59
+ machine_count: Optional[int] = None,
59
60
  ) -> Job:
60
61
  if not experiment_id:
61
62
  experiment = Experiment.get_experiment_in_context()
@@ -85,6 +86,7 @@ class BioLibApp:
85
86
  override_command=override_command,
86
87
  result_prefix=result_prefix,
87
88
  timeout=timeout,
89
+ requested_machine_count=machine_count,
88
90
  )
89
91
  if blocking:
90
92
  # TODO: Deprecate utils.STREAM_STDOUT and always stream logs by simply calling job.stream_logs()
@@ -46,6 +46,7 @@ class BiolibJobApi:
46
46
  experiment_uuid: Optional[str] = None,
47
47
  timeout: Optional[int] = None,
48
48
  notify: bool = False,
49
+ requested_machine_count: Optional[int] = None,
49
50
  ):
50
51
  data = {
51
52
  'app_version_id': app_version_id,
@@ -73,6 +74,9 @@ class BiolibJobApi:
73
74
  'requested_machine': machine
74
75
  })
75
76
 
77
+ if requested_machine_count:
78
+ data.update({'requested_machine_count': requested_machine_count})
79
+
76
80
  if experiment_uuid:
77
81
  data['experiment_uuid'] = experiment_uuid
78
82
 
@@ -156,6 +160,7 @@ class BiolibJobApi:
156
160
  caller_job_uuid: Optional[str] = None,
157
161
  requested_timeout_seconds: Optional[int] = None,
158
162
  notify: bool = False,
163
+ requested_machine_count: Optional[int] = None,
159
164
  ) -> Dict:
160
165
  job_dict: Dict = biolib.api.client.post(
161
166
  path='/jobs/create_job_with_data/',
@@ -171,6 +176,7 @@ class BiolibJobApi:
171
176
  'client-version': BIOLIB_PACKAGE_VERSION,
172
177
  'experiment-uuid': experiment_uuid,
173
178
  'requested-machine': requested_machine,
179
+ 'requested-machine-count': str(requested_machine_count) if requested_machine_count else None,
174
180
  'result-name-prefix': result_name_prefix,
175
181
  'requested-timeout-seconds': str(requested_timeout_seconds) if requested_timeout_seconds else None,
176
182
  'notify': 'true' if notify else 'false',
@@ -270,6 +270,8 @@ class DockerExecutor:
270
270
  # TODO: type this method
271
271
  def _initialize_docker_container(self, module_input):
272
272
  try:
273
+ job_uuid = self._options['job']['public_id']
274
+ logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container...')
273
275
  module = self._options['module']
274
276
  logger.debug(f"Initializing docker container with command: {module['command']}")
275
277
 
@@ -314,6 +316,7 @@ class DockerExecutor:
314
316
  }
315
317
  )
316
318
 
319
+ logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container. Getting IPs for proxies...')
317
320
  for proxy in self._options['remote_host_proxies']:
318
321
  proxy_ip = proxy.get_ip_address_on_network(internal_network)
319
322
  if proxy.is_app_caller_proxy:
@@ -332,6 +335,7 @@ class DockerExecutor:
332
335
  else:
333
336
  extra_hosts[proxy.hostname] = proxy_ip
334
337
 
338
+ logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container. Constructing container args...')
335
339
  create_container_args = {
336
340
  'environment': environment_vars,
337
341
  'extra_hosts': extra_hosts,
@@ -368,9 +372,10 @@ class DockerExecutor:
368
372
  if docker_runtime is not None:
369
373
  create_container_args['runtime'] = docker_runtime
370
374
 
371
- self._docker_container = BiolibDockerClient.get_docker_client().containers.create(**create_container_args)
372
-
373
- logger_no_user_data.debug('Finished initializing docker container')
375
+ docker_client = BiolibDockerClient.get_docker_client()
376
+ logger_no_user_data.debug(f'Job "{job_uuid}" initializing Docker container. Creating container...')
377
+ self._docker_container = docker_client.containers.create(**create_container_args)
378
+ logger_no_user_data.debug(f'Job "{job_uuid}" finished initializing Docker container.')
374
379
  except Exception as exception:
375
380
  raise ComputeProcessException(
376
381
  exception, SystemExceptionCodes.FAILED_TO_START_COMPUTE_CONTAINER.value, self._send_system_exception
@@ -412,6 +412,7 @@ class Job:
412
412
  result_prefix: Optional[str] = None,
413
413
  timeout: Optional[int] = None,
414
414
  notify: bool = False,
415
+ requested_machine_count: Optional[int] = None,
415
416
  ) -> 'Job':
416
417
  if len(module_input_serialized) < 500_000:
417
418
  _job_dict = BiolibJobApi.create_job_with_data(
@@ -424,6 +425,7 @@ class Job:
424
425
  requested_machine=machine,
425
426
  requested_timeout_seconds=timeout,
426
427
  result_name_prefix=result_prefix,
428
+ requested_machine_count=requested_machine_count,
427
429
  )
428
430
  return Job(cast(JobDict, _job_dict))
429
431
 
@@ -435,6 +437,7 @@ class Job:
435
437
  notify=notify,
436
438
  override_command=override_command,
437
439
  timeout=timeout,
440
+ requested_machine_count=requested_machine_count,
438
441
  )
439
442
  JobStorage.upload_module_input(job=job_dict, module_input_serialized=module_input_serialized)
440
443
  cloud_job = BiolibJobApi.create_cloud_job(job_id=job_dict['public_id'], result_name_prefix=result_prefix)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.1.2097"
3
+ version = "1.1.2112"
4
4
  description = "BioLib Python Client"
5
5
  readme = "README.md"
6
6
  license = "MIT"
File without changes
File without changes