pybiolib 1.2.249__tar.gz → 1.2.257__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 (124) hide show
  1. {pybiolib-1.2.249 → pybiolib-1.2.257}/PKG-INFO +1 -1
  2. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/push_application.py +5 -7
  3. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/api/client.py +13 -10
  4. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/api_client.py +7 -4
  5. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_logging.py +3 -4
  6. {pybiolib-1.2.249 → pybiolib-1.2.257}/pyproject.toml +1 -1
  7. {pybiolib-1.2.249 → pybiolib-1.2.257}/LICENSE +0 -0
  8. {pybiolib-1.2.249 → pybiolib-1.2.257}/PYPI_README.md +0 -0
  9. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/__init__.py +0 -0
  10. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_data_record/data_record.py +0 -0
  11. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/__init__.py +0 -0
  12. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/data_record/__init__.py +0 -0
  13. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/data_record/data_record.py +0 -0
  14. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/data_record/push_data.py +0 -0
  15. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  16. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/file_utils.py +0 -0
  17. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/fuse_mount/__init__.py +0 -0
  18. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  19. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/http_client.py +0 -0
  20. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/lfs/__init__.py +0 -0
  21. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/lfs/cache.py +0 -0
  22. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/libs/__init__.py +0 -0
  23. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  24. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/runtime.py +0 -0
  25. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/__init__.py +0 -0
  26. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/app.py +0 -0
  27. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/data_record.py +0 -0
  28. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/experiment.py +0 -0
  29. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/file_node.py +0 -0
  30. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/resource.py +0 -0
  31. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/resource_version.py +0 -0
  32. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/types/typing.py +0 -0
  33. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/utils/__init__.py +0 -0
  34. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_internal/utils/multinode.py +0 -0
  35. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/_runtime/runtime.py +0 -0
  36. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/api/__init__.py +0 -0
  37. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/app/__init__.py +0 -0
  38. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/app/app.py +0 -0
  39. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/app/search_apps.py +0 -0
  40. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/__init__.py +0 -0
  41. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/app_types.py +0 -0
  42. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/auth.py +0 -0
  43. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  44. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  45. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/common_types.py +0 -0
  46. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/job_types.py +0 -0
  47. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/lfs_types.py +0 -0
  48. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_api_client/user_state.py +0 -0
  49. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/__init__.py +0 -0
  50. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  51. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/file_in_container.py +0 -0
  52. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/module_input.py +0 -0
  53. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  54. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  55. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  56. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/saved_job.py +0 -0
  57. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  58. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/system_exception.py +0 -0
  59. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/system_status_update.py +0 -0
  60. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_binary_format/utils.py +0 -0
  61. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_docker_client/__init__.py +0 -0
  62. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_download_container.py +0 -0
  63. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/biolib_errors.py +0 -0
  64. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/__init__.py +0 -0
  65. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/auth.py +0 -0
  66. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/data_record.py +0 -0
  67. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/download_container.py +0 -0
  68. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/init.py +0 -0
  69. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/lfs.py +0 -0
  70. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/push.py +0 -0
  71. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/run.py +0 -0
  72. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/runtime.py +0 -0
  73. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/cli/start.py +0 -0
  74. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/.gitignore +0 -0
  75. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/__init__.py +0 -0
  76. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  77. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  78. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/__init__.py +0 -0
  79. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/cache_state.py +0 -0
  80. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/cache_types.py +0 -0
  81. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  82. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  83. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  84. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  85. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  86. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/executors/types.py +0 -0
  87. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  88. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  89. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/job_storage.py +0 -0
  90. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/job_worker.py +0 -0
  91. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  92. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/mappings.py +0 -0
  93. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  94. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/job_worker/utils.py +0 -0
  95. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/remote_host_proxy.py +0 -0
  96. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/socker_listener_thread.py +0 -0
  97. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/socket_sender_thread.py +0 -0
  98. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/utils.py +0 -0
  99. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/webserver/__init__.py +0 -0
  100. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  101. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/webserver/webserver.py +0 -0
  102. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/webserver/webserver_types.py +0 -0
  103. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  104. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/compute_node/webserver/worker_thread.py +0 -0
  105. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/experiments/__init__.py +0 -0
  106. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/experiments/experiment.py +0 -0
  107. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/jobs/__init__.py +0 -0
  108. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/jobs/job.py +0 -0
  109. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/jobs/job_result.py +0 -0
  110. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/jobs/types.py +0 -0
  111. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/runtime/__init__.py +0 -0
  112. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/sdk/__init__.py +0 -0
  113. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/tables.py +0 -0
  114. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/templates/__init__.py +0 -0
  115. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/templates/example_app.py +0 -0
  116. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/typing_utils.py +0 -0
  117. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/user/__init__.py +0 -0
  118. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/user/sign_in.py +0 -0
  119. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/utils/__init__.py +0 -0
  120. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/utils/app_uri.py +0 -0
  121. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/utils/cache_state.py +0 -0
  122. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/utils/multipart_uploader.py +0 -0
  123. {pybiolib-1.2.249 → pybiolib-1.2.257}/biolib/utils/seq_util.py +0 -0
  124. {pybiolib-1.2.249 → pybiolib-1.2.257}/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.249
3
+ Version: 1.2.257
4
4
  Summary: BioLib Python Client
5
5
  Home-page: https://github.com/biolib
6
6
  License: MIT
@@ -219,12 +219,6 @@ def push_application(
219
219
  docker_tags = new_app_version_json.get('docker_tags', {})
220
220
  if not app_version_to_copy_images_from and docker_tags:
221
221
  logger.info('Found docker images to push.')
222
-
223
- # Auth to be sent to proxy
224
- # The tokens are sent as "{access_token},{job_id}". We leave job_id blank on push.
225
- tokens = f'{BiolibApiClient.get().access_token},'
226
- auth_config = {'username': 'biolib', 'password': tokens}
227
-
228
222
  docker_client = BiolibDockerClient.get_docker_client()
229
223
 
230
224
  for module_name, repo_and_tag in docker_tags.items():
@@ -264,7 +258,11 @@ def push_application(
264
258
  tag=tag,
265
259
  stream=True,
266
260
  decode=True,
267
- auth_config=auth_config,
261
+ auth_config={
262
+ 'username': 'biolib',
263
+ # For legacy reasons access token is sent with trailing comma ','
264
+ 'password': api_client.resource_deploy_key or f'{api_client.access_token},',
265
+ },
268
266
  )
269
267
 
270
268
  process_docker_status_updates(push_status_updates, action='Pushing')
@@ -75,16 +75,19 @@ class ApiClient(HttpClient):
75
75
  # Only keep header keys with a value
76
76
  headers: Dict[str, str] = {key: value for key, value in (opt_headers or {}).items() if value}
77
77
 
78
- deprecated_api_client = DeprecatedApiClient.get()
79
-
80
- if deprecated_api_client.is_signed_in:
81
- deprecated_api_client.refresh_access_token()
82
-
83
- # Adding access_token outside is_signed_in check as job_worker.py currently sets access_token
84
- # without setting refresh_token
85
- access_token = deprecated_api_client.access_token
86
- if access_token and authenticate:
87
- headers['Authorization'] = f'Bearer {access_token}'
78
+ if authenticate:
79
+ deprecated_api_client = DeprecatedApiClient.get()
80
+ if deprecated_api_client.is_signed_in:
81
+ deprecated_api_client.refresh_access_token()
82
+
83
+ if deprecated_api_client.resource_deploy_key:
84
+ headers['Authorization'] = f'Token {deprecated_api_client.resource_deploy_key}'
85
+ else:
86
+ # Adding access_token outside is_signed_in check as job_worker.py currently sets access_token
87
+ # without setting refresh_token
88
+ access_token = deprecated_api_client.access_token
89
+ if access_token:
90
+ headers['Authorization'] = f'Bearer {access_token}'
88
91
 
89
92
  headers['client-type'] = 'biolib-python'
90
93
  headers['client-version'] = ApiClient._biolib_package_version
@@ -30,13 +30,14 @@ class _ApiClient:
30
30
  self.base_url: str = base_url
31
31
  self.access_token: Optional[str] = access_token # TODO: Deprecate passing access_token in constructor
32
32
  self.refresh_token: Optional[str] = None
33
+ self.resource_deploy_key: Optional[str] = None
33
34
 
34
35
  self._user_state = UserState()
35
36
  self._sign_in_attempted: bool = False
36
37
 
37
38
  @property
38
39
  def is_signed_in(self) -> bool:
39
- return bool(self.refresh_token)
40
+ return bool(self.refresh_token or self.resource_deploy_key)
40
41
 
41
42
  def set_user_tokens(self, user_tokens: UserTokens) -> None:
42
43
  with self._user_state as user_state:
@@ -57,8 +58,7 @@ class _ApiClient:
57
58
  user_state['refresh_token'] = None
58
59
 
59
60
  def refresh_access_token(self) -> None:
60
- if not self.is_signed_in:
61
- # Can't refresh access token if not signed in
61
+ if not self.is_signed_in or self.resource_deploy_key:
62
62
  return
63
63
 
64
64
  if self.access_token:
@@ -95,7 +95,10 @@ class _ApiClient:
95
95
  api_token = os.getenv('BIOLIB_TOKEN', default=None)
96
96
 
97
97
  if api_token:
98
- self.sign_in_with_api_token(api_token)
98
+ if api_token.startswith('bld_'):
99
+ self.resource_deploy_key = api_token
100
+ else:
101
+ self.sign_in_with_api_token(api_token)
99
102
  else:
100
103
  with self._user_state as user_state:
101
104
  refresh_token_from_state = user_state['refresh_token']
@@ -1,6 +1,6 @@
1
1
  import logging
2
- import sys
3
2
  import os
3
+ import sys
4
4
 
5
5
  _DEFAULT_LOGGER_FORMAT = '%(asctime)s | %(levelname)s : %(message)s'
6
6
 
@@ -14,7 +14,6 @@ logging.addLevelName(TRACE, 'TRACE')
14
14
 
15
15
  # note: Logger classes should never be instantiated directly
16
16
  class _BioLibLogger(logging.Logger):
17
-
18
17
  def __init__(self, name: str, level=logging.INFO):
19
18
  super(_BioLibLogger, self).__init__(name=name, level=level)
20
19
 
@@ -44,7 +43,7 @@ class _BioLibLogger(logging.Logger):
44
43
 
45
44
  def _get_biolib_logger_instance(name: str) -> _BioLibLogger:
46
45
  # for thread safety use the global lock of logging
47
- logging._acquireLock() # type: ignore # pylint: disable=protected-access
46
+ logging._lock.acquire() # type: ignore # pylint: disable=protected-access
48
47
 
49
48
  original_logger_class = logging.getLoggerClass()
50
49
  try:
@@ -55,7 +54,7 @@ def _get_biolib_logger_instance(name: str) -> _BioLibLogger:
55
54
  logging.setLoggerClass(original_logger_class)
56
55
  return biolib_logger # type: ignore
57
56
  finally:
58
- logging._releaseLock() # type: ignore # pylint: disable=protected-access
57
+ logging._lock.release() # type: ignore # pylint: disable=protected-access
59
58
 
60
59
 
61
60
  def _get_no_user_data_logger() -> _BioLibLogger:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.249"
3
+ version = "1.2.257"
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