pybiolib 1.2.740__tar.gz → 1.2.749__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 (136) hide show
  1. {pybiolib-1.2.740 → pybiolib-1.2.749}/PKG-INFO +1 -1
  2. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/experiment.py +9 -8
  3. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/resource.py +2 -2
  4. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/result.py +4 -0
  5. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/experiments/experiment.py +30 -9
  6. {pybiolib-1.2.740 → pybiolib-1.2.749}/pyproject.toml +1 -1
  7. {pybiolib-1.2.740 → pybiolib-1.2.749}/LICENSE +0 -0
  8. {pybiolib-1.2.740 → pybiolib-1.2.749}/PYPI_README.md +0 -0
  9. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/__init__.py +0 -0
  10. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_data_record/data_record.py +0 -0
  11. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/__init__.py +0 -0
  12. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/add_copilot_prompts.py +0 -0
  13. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/data_record/__init__.py +0 -0
  14. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/data_record/data_record.py +0 -0
  15. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/data_record/push_data.py +0 -0
  16. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/data_record/remote_storage_endpoint.py +0 -0
  17. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/file_utils.py +0 -0
  18. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/fuse_mount/__init__.py +0 -0
  19. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/fuse_mount/experiment_fuse_mount.py +0 -0
  20. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/http_client.py +0 -0
  21. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/lfs/__init__.py +0 -0
  22. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/lfs/cache.py +0 -0
  23. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/libs/__init__.py +0 -0
  24. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/libs/fusepy/__init__.py +0 -0
  25. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/llm_instructions/.github/code-style.md +0 -0
  26. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/llm_instructions/.github/copilot-instructions.md +0 -0
  27. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/llm_instructions/.github/prompts/biolib_app_inputs.prompt.md +0 -0
  28. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/llm_instructions/.github/prompts/biolib_run_apps.prompt.md +0 -0
  29. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/llm_instructions/__init__.py +0 -0
  30. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/push_application.py +0 -0
  31. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/runtime.py +0 -0
  32. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/tree_utils.py +0 -0
  33. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/__init__.py +0 -0
  34. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/app.py +0 -0
  35. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/data_record.py +0 -0
  36. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/file_node.py +0 -0
  37. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/resource_permission.py +0 -0
  38. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/resource_version.py +0 -0
  39. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/types/typing.py +0 -0
  40. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/utils/__init__.py +0 -0
  41. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_internal/utils/multinode.py +0 -0
  42. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_runtime/runtime.py +0 -0
  43. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/_session/session.py +0 -0
  44. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/api/__init__.py +0 -0
  45. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/api/client.py +0 -0
  46. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/app/__init__.py +0 -0
  47. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/app/app.py +0 -0
  48. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/app/search_apps.py +0 -0
  49. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/__init__.py +0 -0
  50. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/api_client.py +0 -0
  51. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/app_types.py +0 -0
  52. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/auth.py +0 -0
  53. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/biolib_app_api.py +0 -0
  54. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/biolib_job_api.py +0 -0
  55. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/common_types.py +0 -0
  56. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/job_types.py +0 -0
  57. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/lfs_types.py +0 -0
  58. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_api_client/user_state.py +0 -0
  59. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/__init__.py +0 -0
  60. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
  61. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/file_in_container.py +0 -0
  62. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/module_input.py +0 -0
  63. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/module_output_v2.py +0 -0
  64. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
  65. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
  66. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/saved_job.py +0 -0
  67. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
  68. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/system_exception.py +0 -0
  69. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/system_status_update.py +0 -0
  70. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_binary_format/utils.py +0 -0
  71. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_docker_client/__init__.py +0 -0
  72. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_download_container.py +0 -0
  73. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_errors.py +0 -0
  74. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/biolib_logging.py +0 -0
  75. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/__init__.py +0 -0
  76. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/auth.py +0 -0
  77. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/data_record.py +0 -0
  78. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/download_container.py +0 -0
  79. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/init.py +0 -0
  80. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/lfs.py +0 -0
  81. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/push.py +0 -0
  82. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/run.py +0 -0
  83. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/runtime.py +0 -0
  84. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/sdk.py +0 -0
  85. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/cli/start.py +0 -0
  86. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/.gitignore +0 -0
  87. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/__init__.py +0 -0
  88. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/cloud_utils/__init__.py +0 -0
  89. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
  90. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/__init__.py +0 -0
  91. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/cache_state.py +0 -0
  92. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/cache_types.py +0 -0
  93. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
  94. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
  95. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
  96. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
  97. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
  98. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/executors/types.py +0 -0
  99. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
  100. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
  101. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/job_storage.py +0 -0
  102. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/job_worker.py +0 -0
  103. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/large_file_system.py +0 -0
  104. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/mappings.py +0 -0
  105. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
  106. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/job_worker/utils.py +0 -0
  107. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/remote_host_proxy.py +0 -0
  108. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/socker_listener_thread.py +0 -0
  109. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/socket_sender_thread.py +0 -0
  110. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/utils.py +0 -0
  111. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/webserver/__init__.py +0 -0
  112. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
  113. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/webserver/webserver.py +0 -0
  114. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/webserver/webserver_types.py +0 -0
  115. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/webserver/webserver_utils.py +0 -0
  116. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/compute_node/webserver/worker_thread.py +0 -0
  117. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/experiments/__init__.py +0 -0
  118. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/jobs/__init__.py +0 -0
  119. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/jobs/job.py +0 -0
  120. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/jobs/job_result.py +0 -0
  121. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/jobs/types.py +0 -0
  122. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/py.typed +0 -0
  123. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/runtime/__init__.py +0 -0
  124. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/sdk/__init__.py +0 -0
  125. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/tables.py +0 -0
  126. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/templates/__init__.py +0 -0
  127. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/templates/example_app.py +0 -0
  128. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/typing_utils.py +0 -0
  129. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/user/__init__.py +0 -0
  130. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/user/sign_in.py +0 -0
  131. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/utils/__init__.py +0 -0
  132. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/utils/app_uri.py +0 -0
  133. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/utils/cache_state.py +0 -0
  134. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/utils/multipart_uploader.py +0 -0
  135. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/utils/seq_util.py +0 -0
  136. {pybiolib-1.2.740 → pybiolib-1.2.749}/biolib/utils/zip/remote_zip.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pybiolib
3
- Version: 1.2.740
3
+ Version: 1.2.749
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -11,20 +11,21 @@ class ResultCounts(TypedDict):
11
11
  total: int
12
12
 
13
13
 
14
- class ExperimentDict(TypedDict):
14
+ class DeprecatedExperimentDict(TypedDict):
15
+ # Note: fields on this TypedDict are deprecated
16
+ job_count: int
17
+ job_running_count: int
18
+
19
+
20
+ class ExperimentDict(DeprecatedExperimentDict):
15
21
  uuid: Optional[str]
16
22
  name: Optional[str]
23
+ created_at: Optional[str]
17
24
  finished_at: Optional[str]
18
- first_created_at: Optional[str]
19
25
  last_created_at: Optional[str]
20
26
  last_created_result: Optional[ResultDict]
21
27
  result_counts: ResultCounts
22
28
 
23
29
 
24
- class ExperimentSlimDict(TypedDict):
25
- job_count: int
26
- job_running_count: int
27
-
28
-
29
- class ExperimentDetailedDict(ExperimentSlimDict):
30
+ class ExperimentDetailedDict(ExperimentDict):
30
31
  pass
@@ -1,6 +1,6 @@
1
1
  from .app import AppSlimDict
2
2
  from .data_record import DataRecordSlimDict
3
- from .experiment import ExperimentSlimDict
3
+ from .experiment import DeprecatedExperimentDict
4
4
  from .typing import Optional, TypedDict
5
5
 
6
6
 
@@ -15,4 +15,4 @@ class ResourceDict(TypedDict):
15
15
  class ResourceDetailedDict(ResourceDict):
16
16
  app: Optional[AppSlimDict]
17
17
  data_record: Optional[DataRecordSlimDict]
18
- experiment: Optional[ExperimentSlimDict]
18
+ experiment: Optional[DeprecatedExperimentDict]
@@ -8,3 +8,7 @@ class ResultDict(TypedDict):
8
8
  created_at: str
9
9
  state: str
10
10
  finished_at: Optional[str]
11
+
12
+
13
+ class ResultDetailedDict(ResultDict):
14
+ pass
@@ -1,8 +1,9 @@
1
1
  import time
2
2
  from collections import OrderedDict
3
3
 
4
- import biolib._internal.types as _types
5
4
  from biolib import api
5
+ from biolib._internal.types.experiment import DeprecatedExperimentDict, ExperimentDict
6
+ from biolib._internal.types.resource import ResourceDetailedDict
6
7
  from biolib.biolib_errors import BioLibError
7
8
  from biolib.jobs.job import Job
8
9
  from biolib.jobs.types import JobsPaginatedResponse
@@ -22,8 +23,8 @@ class Experiment:
22
23
  }
23
24
  )
24
25
 
25
- def __init__(self, uri: str, _resource_dict: Optional[_types.ResourceDetailedDict] = None):
26
- self._resource_dict: _types.ResourceDetailedDict = _resource_dict or self._get_or_create_resource_dict(uri)
26
+ def __init__(self, uri: str, _resource_dict: Optional[ResourceDetailedDict] = None):
27
+ self._resource_dict: ResourceDetailedDict = _resource_dict or self._get_or_create_resource_dict(uri)
27
28
 
28
29
  def __enter__(self):
29
30
  Experiment._BIOLIB_EXPERIMENTS.append(self)
@@ -50,7 +51,7 @@ class Experiment:
50
51
  return self._resource_dict['uri']
51
52
 
52
53
  @property
53
- def _experiment_dict(self) -> _types.ExperimentSlimDict:
54
+ def _experiment_dict(self) -> DeprecatedExperimentDict:
54
55
  if not self._resource_dict['experiment']:
55
56
  raise ValueError(f'Resource {self.uri} is not an Experiment')
56
57
 
@@ -65,7 +66,8 @@ class Experiment:
65
66
  # Prints a table listing info about experiments accessible to the user
66
67
  @staticmethod
67
68
  def show_experiments(count: int = 25) -> None:
68
- experiment_dicts = api.client.get(path='/experiments/', params={'page_size': str(count)}).json()['results']
69
+ pagniated_response = api.client.get(path='/experiments/', params={'page_size': str(count)}).json()
70
+ experiment_dicts: List[ExperimentDict] = pagniated_response['results']
69
71
  BioLibTable(
70
72
  columns_to_row_map=Experiment._table_columns_to_row_map,
71
73
  rows=experiment_dicts,
@@ -75,7 +77,7 @@ class Experiment:
75
77
  @staticmethod
76
78
  def get_by_uri(uri: str) -> 'Experiment':
77
79
  query_param_key = 'uri' if '/' in uri else 'name'
78
- resource_dict: _types.ResourceDetailedDict = api.client.get('/resource/', params={query_param_key: uri}).json()
80
+ resource_dict: ResourceDetailedDict = api.client.get('/resource/', params={query_param_key: uri}).json()
79
81
  if not resource_dict['experiment']:
80
82
  raise ValueError(f'Resource {uri} is not an experiment')
81
83
 
@@ -195,20 +197,39 @@ class Experiment:
195
197
 
196
198
  return jobs
197
199
 
200
+ def get_results(self, status: Optional[str] = None) -> List[Job]:
201
+ r"""Get a list of results in this experiment, optionally filtered by status.
202
+
203
+ Args:
204
+ status (str, optional): Filter results by status. One of:
205
+ 'in_progress', 'completed', 'failed', 'cancelled'
206
+
207
+ Returns:
208
+ List[Job]: List of result objects in this experiment
209
+
210
+ Example::
211
+
212
+ >>> # Get all results in the experiment
213
+ >>> results = experiment.get_results()
214
+ >>> # Get only completed results
215
+ >>> completed_results = experiment.get_results(status='completed')
216
+ """
217
+ return self.get_jobs(status=status)
218
+
198
219
  def rename(self, destination: str) -> None:
199
220
  api.client.patch(f'/resources/{self.uuid}/', data={'uri': destination})
200
221
  self._refetch()
201
222
 
202
223
  @staticmethod
203
- def _get_resource_dict_by_uuid(uuid: str) -> _types.ResourceDetailedDict:
204
- resource_dict: _types.ResourceDetailedDict = api.client.get(f'/resources/{uuid}/').json()
224
+ def _get_resource_dict_by_uuid(uuid: str) -> ResourceDetailedDict:
225
+ resource_dict: ResourceDetailedDict = api.client.get(f'/resources/{uuid}/').json()
205
226
  if not resource_dict['experiment']:
206
227
  raise ValueError('Resource from URI is not an experiment')
207
228
 
208
229
  return resource_dict
209
230
 
210
231
  @staticmethod
211
- def _get_or_create_resource_dict(uri: str) -> _types.ResourceDetailedDict:
232
+ def _get_or_create_resource_dict(uri: str) -> ResourceDetailedDict:
212
233
  response_dict = api.client.post(path='/experiments/', data={'uri' if '/' in uri else 'name': uri}).json()
213
234
  return Experiment._get_resource_dict_by_uuid(uuid=response_dict['uuid'])
214
235
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pybiolib"
3
- version = "1.2.740"
3
+ version = "1.2.749"
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
File without changes
File without changes