pybiolib 1.2.230__tar.gz → 1.2.243__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.230 → pybiolib-1.2.243}/PKG-INFO +1 -1
  2. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/biolib_app_api.py +21 -5
  3. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_errors.py +3 -0
  4. {pybiolib-1.2.230 → pybiolib-1.2.243}/pyproject.toml +1 -1
  5. {pybiolib-1.2.230 → pybiolib-1.2.243}/LICENSE +0 -0
  6. {pybiolib-1.2.230 → pybiolib-1.2.243}/PYPI_README.md +0 -0
  7. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/__init__.py +0 -0
  8. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_data_record/data_record.py +0 -0
  9. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/__init__.py +0 -0
  10. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/data_record/__init__.py +0 -0
  11. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/data_record/data_record.py +0 -0
  12. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/data_record/push_data.py +0 -0
  13. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  14. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/file_utils.py +0 -0
  15. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/fuse_mount/__init__.py +0 -0
  16. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  17. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/http_client.py +0 -0
  18. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/lfs/__init__.py +0 -0
  19. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/lfs/cache.py +0 -0
  20. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/libs/__init__.py +0 -0
  21. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  22. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/push_application.py +0 -0
  23. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/runtime.py +0 -0
  24. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/__init__.py +0 -0
  25. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/app.py +0 -0
  26. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/data_record.py +0 -0
  27. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/experiment.py +0 -0
  28. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/file_node.py +0 -0
  29. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/resource.py +0 -0
  30. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/resource_version.py +0 -0
  31. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/types/typing.py +0 -0
  32. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/utils/__init__.py +0 -0
  33. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_internal/utils/multinode.py +0 -0
  34. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/_runtime/runtime.py +0 -0
  35. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/api/__init__.py +0 -0
  36. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/api/client.py +0 -0
  37. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/app/__init__.py +0 -0
  38. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/app/app.py +0 -0
  39. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/app/search_apps.py +0 -0
  40. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/__init__.py +0 -0
  41. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/api_client.py +0 -0
  42. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/app_types.py +0 -0
  43. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/auth.py +0 -0
  44. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  45. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/common_types.py +0 -0
  46. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/job_types.py +0 -0
  47. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/lfs_types.py +0 -0
  48. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_api_client/user_state.py +0 -0
  49. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/__init__.py +0 -0
  50. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  51. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/file_in_container.py +0 -0
  52. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/module_input.py +0 -0
  53. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  54. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  55. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  56. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/saved_job.py +0 -0
  57. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  58. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/system_exception.py +0 -0
  59. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/system_status_update.py +0 -0
  60. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_binary_format/utils.py +0 -0
  61. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_docker_client/__init__.py +0 -0
  62. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_download_container.py +0 -0
  63. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/biolib_logging.py +0 -0
  64. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/__init__.py +0 -0
  65. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/auth.py +0 -0
  66. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/data_record.py +0 -0
  67. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/download_container.py +0 -0
  68. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/init.py +0 -0
  69. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/lfs.py +0 -0
  70. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/push.py +0 -0
  71. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/run.py +0 -0
  72. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/runtime.py +0 -0
  73. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/cli/start.py +0 -0
  74. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/.gitignore +0 -0
  75. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/__init__.py +0 -0
  76. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  77. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  78. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/__init__.py +0 -0
  79. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/cache_state.py +0 -0
  80. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/cache_types.py +0 -0
  81. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  82. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  83. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  84. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  85. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  86. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/executors/types.py +0 -0
  87. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  88. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  89. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/job_storage.py +0 -0
  90. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/job_worker.py +0 -0
  91. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  92. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/mappings.py +0 -0
  93. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  94. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/job_worker/utils.py +0 -0
  95. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/remote_host_proxy.py +0 -0
  96. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/socker_listener_thread.py +0 -0
  97. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/socket_sender_thread.py +0 -0
  98. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/utils.py +0 -0
  99. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/webserver/__init__.py +0 -0
  100. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  101. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/webserver/webserver.py +0 -0
  102. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/webserver/webserver_types.py +0 -0
  103. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  104. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/compute_node/webserver/worker_thread.py +0 -0
  105. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/experiments/__init__.py +0 -0
  106. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/experiments/experiment.py +0 -0
  107. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/jobs/__init__.py +0 -0
  108. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/jobs/job.py +0 -0
  109. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/jobs/job_result.py +0 -0
  110. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/jobs/types.py +0 -0
  111. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/runtime/__init__.py +0 -0
  112. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/sdk/__init__.py +0 -0
  113. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/tables.py +0 -0
  114. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/templates/__init__.py +0 -0
  115. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/templates/example_app.py +0 -0
  116. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/typing_utils.py +0 -0
  117. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/user/__init__.py +0 -0
  118. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/user/sign_in.py +0 -0
  119. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/utils/__init__.py +0 -0
  120. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/utils/app_uri.py +0 -0
  121. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/utils/cache_state.py +0 -0
  122. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/utils/multipart_uploader.py +0 -0
  123. {pybiolib-1.2.230 → pybiolib-1.2.243}/biolib/utils/seq_util.py +0 -0
  124. {pybiolib-1.2.230 → pybiolib-1.2.243}/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.230
3
+ Version: 1.2.243
4
4
  Summary: BioLib Python Client
5
5
  Home-page: https://github.com/biolib
6
6
  License: MIT
@@ -3,6 +3,7 @@ import os
3
3
  import random
4
4
  import re
5
5
  import subprocess
6
+ import urllib.parse
6
7
 
7
8
  import biolib.api
8
9
  from biolib import biolib_errors
@@ -10,6 +11,7 @@ from biolib._internal.http_client import HttpError
10
11
  from biolib.biolib_api_client import AppGetResponse
11
12
  from biolib.biolib_logging import logger
12
13
  from biolib.typing_utils import Optional
14
+ from biolib.utils import load_base_url_from_env
13
15
 
14
16
 
15
17
  def encode_multipart(data, files):
@@ -61,15 +63,29 @@ def _get_git_repository_url() -> str:
61
63
  except BaseException:
62
64
  return ''
63
65
 
66
+ def _get_app_uri_from_str(input_str: str) -> str:
67
+ parsed_base_url = urllib.parse.urlparse(load_base_url_from_env())
68
+ parsed_uri = urllib.parse.urlparse(input_str)
69
+ if parsed_uri.netloc != '' and parsed_base_url.netloc != parsed_uri.netloc:
70
+ raise biolib_errors.ValidationError(
71
+ f'Invalid URI. The hostname "{parsed_base_url.netloc}" is not recognized.'
72
+ )
73
+ elif parsed_uri.netloc != '' and parsed_uri.path[1] != '@':
74
+ uri = f'@{parsed_uri.netloc}{parsed_uri.path}'
75
+ elif parsed_uri.netloc == '' and parsed_uri.path.startswith (parsed_base_url.netloc):
76
+ uri = f'@{parsed_uri.path}'
77
+ else:
78
+ uri = parsed_uri.path
79
+ uri = uri.strip('/')
80
+ # Replace frontend version path with app_uri compatible version (if supplied)
81
+ uri = re.sub(r'/version/(?P<version>(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*))(/)?$', r':\g<version>', uri)
82
+ return uri
83
+
64
84
 
65
85
  class BiolibAppApi:
66
86
  @staticmethod
67
87
  def get_by_uri(uri: str) -> AppGetResponse:
68
- # Replace protocol with @ (if supplied)
69
- uri = re.sub(r'^http(s)?://', '@', uri)
70
- # Replace frontend version path with app_uri compatible version (if supplied)
71
- uri = re.sub(r'/version/(?P<version>(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*))(/)?$', r':\g<version>', uri)
72
-
88
+ uri = _get_app_uri_from_str(uri)
73
89
  try:
74
90
  response = biolib.api.client.get(path='/app/', params={'uri': uri})
75
91
  app_response: AppGetResponse = response.json()
@@ -7,6 +7,9 @@ class BioLibError(Exception):
7
7
  super().__init__(message)
8
8
  self.message = message
9
9
 
10
+ class ValidationError(BioLibError):
11
+ def __init__(self, message: Optional[str] = None):
12
+ super().__init__(message=message or 'Invalid input.')
10
13
 
11
14
  class NotFound(BioLibError):
12
15
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.230"
3
+ version = "1.2.243"
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