pybiolib 1.2.152.dev1__tar.gz → 1.2.163.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.152.dev1 → pybiolib-1.2.163.dev1}/PKG-INFO +1 -1
  2. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/jobs/job.py +4 -1
  3. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/jobs/types.py +1 -0
  4. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/utils/seq_util.py +19 -2
  5. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/pyproject.toml +1 -1
  6. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/LICENSE +0 -0
  7. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/PYPI_README.md +0 -0
  8. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/__init__.py +0 -0
  9. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_data_record/data_record.py +0 -0
  10. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/__init__.py +0 -0
  11. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/data_record/__init__.py +0 -0
  12. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/data_record/data_record.py +0 -0
  13. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/data_record/push_data.py +0 -0
  14. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  15. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/file_utils.py +0 -0
  16. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/fuse_mount/__init__.py +0 -0
  17. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  18. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/http_client.py +0 -0
  19. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/lfs/__init__.py +0 -0
  20. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/lfs/cache.py +0 -0
  21. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/libs/__init__.py +0 -0
  22. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  23. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/push_application.py +0 -0
  24. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/runtime.py +0 -0
  25. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/__init__.py +0 -0
  26. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/app.py +0 -0
  27. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/data_record.py +0 -0
  28. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/experiment.py +0 -0
  29. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/resource.py +0 -0
  30. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/resource_version.py +0 -0
  31. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/types/typing.py +0 -0
  32. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/utils/__init__.py +0 -0
  33. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_internal/utils/multinode.py +0 -0
  34. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/_runtime/runtime.py +0 -0
  35. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/api/__init__.py +0 -0
  36. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/api/client.py +0 -0
  37. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/app/__init__.py +0 -0
  38. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/app/app.py +0 -0
  39. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/app/search_apps.py +0 -0
  40. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/__init__.py +0 -0
  41. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/api_client.py +0 -0
  42. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/app_types.py +0 -0
  43. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/auth.py +0 -0
  44. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  45. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  46. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/common_types.py +0 -0
  47. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/job_types.py +0 -0
  48. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/lfs_types.py +0 -0
  49. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_api_client/user_state.py +0 -0
  50. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/__init__.py +0 -0
  51. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  52. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/file_in_container.py +0 -0
  53. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/module_input.py +0 -0
  54. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  55. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  56. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  57. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/saved_job.py +0 -0
  58. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  59. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/system_exception.py +0 -0
  60. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/system_status_update.py +0 -0
  61. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_binary_format/utils.py +0 -0
  62. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_docker_client/__init__.py +0 -0
  63. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_download_container.py +0 -0
  64. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_errors.py +0 -0
  65. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/biolib_logging.py +0 -0
  66. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/__init__.py +0 -0
  67. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/auth.py +0 -0
  68. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/data_record.py +0 -0
  69. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/download_container.py +0 -0
  70. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/init.py +0 -0
  71. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/lfs.py +0 -0
  72. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/push.py +0 -0
  73. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/run.py +0 -0
  74. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/runtime.py +0 -0
  75. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/cli/start.py +0 -0
  76. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/.gitignore +0 -0
  77. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/__init__.py +0 -0
  78. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  79. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  80. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/__init__.py +0 -0
  81. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/cache_state.py +0 -0
  82. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/cache_types.py +0 -0
  83. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  84. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  85. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  86. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  87. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  88. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/executors/types.py +0 -0
  89. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  90. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  91. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/job_storage.py +0 -0
  92. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/job_worker.py +0 -0
  93. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  94. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/mappings.py +0 -0
  95. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  96. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/job_worker/utils.py +0 -0
  97. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/remote_host_proxy.py +0 -0
  98. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/socker_listener_thread.py +0 -0
  99. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/socket_sender_thread.py +0 -0
  100. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/utils.py +0 -0
  101. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/webserver/__init__.py +0 -0
  102. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  103. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/webserver/webserver.py +0 -0
  104. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/webserver/webserver_types.py +0 -0
  105. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  106. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/compute_node/webserver/worker_thread.py +0 -0
  107. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/experiments/__init__.py +0 -0
  108. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/experiments/experiment.py +0 -0
  109. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/jobs/__init__.py +0 -0
  110. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/jobs/job_result.py +0 -0
  111. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/runtime/__init__.py +0 -0
  112. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/sdk/__init__.py +0 -0
  113. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/tables.py +0 -0
  114. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/templates/__init__.py +0 -0
  115. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/templates/example_app.py +0 -0
  116. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/typing_utils.py +0 -0
  117. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/user/__init__.py +0 -0
  118. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/user/sign_in.py +0 -0
  119. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/utils/__init__.py +0 -0
  120. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/utils/app_uri.py +0 -0
  121. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/utils/cache_state.py +0 -0
  122. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.dev1}/biolib/utils/multipart_uploader.py +0 -0
  123. {pybiolib-1.2.152.dev1 → pybiolib-1.2.163.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.152.dev1
3
+ Version: 1.2.163.dev1
4
4
  Summary: BioLib Python Client
5
5
  Home-page: https://github.com/biolib
6
6
  License: MIT
@@ -210,11 +210,14 @@ class Job:
210
210
  http_response = HttpClient.request(url=job_storage_input.get_remote_url())
211
211
  module_input_serialized = http_response.content
212
212
 
213
+ original_requested_machine = (
214
+ self._job_dict['requested_machine'] if self._job_dict['requested_machine'] else None
215
+ )
213
216
  job = self._start_job_in_cloud(
214
217
  app_uri=app_response['app_uri'],
215
218
  app_version_uuid=app_response['app_version']['public_id'],
216
219
  module_input_serialized=module_input_serialized,
217
- machine=machine,
220
+ machine=machine if machine else original_requested_machine,
218
221
  )
219
222
  if blocking:
220
223
  job.stream_logs()
@@ -29,6 +29,7 @@ class JobDict(TypedDict):
29
29
  auth_token: str
30
30
  created_at: str
31
31
  ended_at: Optional[str]
32
+ requested_machine: str
32
33
  runtime_seconds: int
33
34
  main_result: Result
34
35
  started_at: str
@@ -1,7 +1,7 @@
1
1
  import re
2
2
  from io import BufferedIOBase, TextIOBase
3
3
 
4
- from biolib.typing_utils import Dict, List, Optional, Union, Iterator
4
+ from biolib.typing_utils import Dict, Iterator, List, Optional, Union
5
5
 
6
6
 
7
7
  class SeqUtilRecord:
@@ -35,14 +35,22 @@ class SeqUtil:
35
35
  input_file: Union[str, BufferedIOBase, None] = None,
36
36
  default_header: Optional[str] = None,
37
37
  allow_any_sequence_characters: bool = False,
38
+ use_strict_alphabet: Optional[bool] = False,
38
39
  allow_empty_sequence: bool = True,
39
40
  file_name: Optional[str] = None,
40
41
  ) -> Iterator[SeqUtilRecord]:
41
42
  def process_and_yield_record(header: str, sequence_lines: List[str]):
42
43
  sequence = ''.join(sequence_lines)
43
44
  sequence_id = header.split()[0]
45
+ if allow_any_sequence_characters and use_strict_alphabet:
46
+ raise Exception(
47
+ 'Error: Please choose either allow_any_sequence_characters or use_strict_alphabet'
48
+ )
44
49
  if not allow_any_sequence_characters:
45
- invalid_sequence_characters = SeqUtil._find_invalid_sequence_characters(sequence)
50
+ if use_strict_alphabet:
51
+ invalid_sequence_characters = SeqUtil._find_invalid_sequence_characters_strict(sequence)
52
+ else:
53
+ invalid_sequence_characters = SeqUtil._find_invalid_sequence_characters(sequence)
46
54
  if invalid_sequence_characters:
47
55
  raise Exception(
48
56
  f'Error: Invalid character ("{invalid_sequence_characters[0]}") found in sequence {sequence_id}'
@@ -126,6 +134,15 @@ class SeqUtil:
126
134
  invalid_chars = [char for char in sequence if char not in allowed_sequence_chars]
127
135
  return invalid_chars
128
136
 
137
+ @staticmethod
138
+ def _find_invalid_sequence_characters_strict(sequence: str) -> List[str]:
139
+ # Equivalent to fair-esm alphabet, compatible with ESM-models
140
+ # Excludes digits, '_' and 'J' (ambiguous letter only used in mass-spec NMR)
141
+ # https://github.com/facebookresearch/esm/blob/2b369911bb5b4b0dda914521b9475cad1656b2ac/esm/constants.py#L8
142
+ allowed_sequence_chars = set('lagvsertidpkqnfymhwcxbuzoLAGVSERTIDPKQNFYMHWCXBUZO-.')
143
+ invalid_chars = [char for char in sequence if char not in allowed_sequence_chars]
144
+ return invalid_chars
145
+
129
146
  @staticmethod
130
147
  def _find_invalid_sequence_id_characters(sequence: str) -> List[str]:
131
148
  allowed_chars = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.:*#')
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.152.dev1"
3
+ version = "1.2.163.dev1"
4
4
  description = "BioLib Python Client"
5
5
  readme = "PYPI_README.md"
6
6
  license = "MIT"
File without changes