pybiolib 1.2.342.dev1__py3-none-any.whl → 1.2.347__py3-none-any.whl

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.
@@ -13,7 +13,7 @@ import urllib.request
13
13
  from biolib.biolib_logging import logger_no_user_data
14
14
  from biolib.typing_utils import Dict, Literal, Optional, Union, cast
15
15
 
16
- _HttpMethod = Literal['GET', 'POST', 'PATCH', 'PUT']
16
+ _HttpMethod = Literal['GET', 'POST', 'PATCH', 'PUT', 'DELETE']
17
17
 
18
18
 
19
19
  def _create_ssl_context():
biolib/api/client.py CHANGED
@@ -70,6 +70,19 @@ class ApiClient(HttpClient):
70
70
  url=self._get_absolute_url(path=path, query_params=params),
71
71
  )
72
72
 
73
+ def delete(
74
+ self,
75
+ path: str,
76
+ headers: OptionalHeaders = None,
77
+ retries: int = 0,
78
+ ) -> HttpResponse:
79
+ return self.request(
80
+ headers=self._get_headers(opt_headers=headers, authenticate=True),
81
+ method='DELETE',
82
+ retries=retries,
83
+ url=self._get_absolute_url(path=path, query_params=None),
84
+ )
85
+
73
86
  @staticmethod
74
87
  def _get_headers(opt_headers: OptionalHeaders, authenticate: bool) -> Dict[str, str]:
75
88
  # Only keep header keys with a value
@@ -90,9 +90,30 @@ class Experiment:
90
90
 
91
91
  print(f'All jobs of experiment {self.name} have finished')
92
92
 
93
- def add_job(self, job_id: str) -> None:
93
+ def add_job(self, job: Optional[Union[Job, str]] = None, job_id: Optional[str] = None) -> None:
94
+ if job_id is not None:
95
+ print(
96
+ 'WARNING: job_id argument is deprecated and may be removed in a future release.'
97
+ 'Please use job argument instead.'
98
+ )
99
+ elif isinstance(job, Job):
100
+ job_id = job.id
101
+ elif isinstance(job, str):
102
+ job_id = job
103
+ elif job is None and job_id is None:
104
+ raise BioLibError('A job ID or job object must be provided to add job')
94
105
  api.client.patch(path=f'/jobs/{job_id}/', data={'experiment_uuid': self.uuid})
95
106
 
107
+ def remove_job(self, job: Union[Job, str]) -> None:
108
+ if isinstance(job, Job):
109
+ job_id = job.id
110
+ elif isinstance(job, str):
111
+ job_id = job
112
+ else:
113
+ raise BioLibError('A job ID or job object must be provided to remove job')
114
+
115
+ api.client.delete(path=f'/experiments/{self.uuid}/jobs/{job_id}/')
116
+
96
117
  def mount_files(self, mount_path: str) -> None:
97
118
  try:
98
119
  # Only attempt to import FUSE dependencies when strictly necessary
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pybiolib
3
- Version: 1.2.342.dev1
3
+ Version: 1.2.347
4
4
  Summary: BioLib Python Client
5
5
  License: MIT
6
6
  Keywords: biolib
@@ -8,7 +8,7 @@ biolib/_internal/data_record/remote_storage_endpoint.py,sha256=eCptuZ4DMAPnaNCVD
8
8
  biolib/_internal/file_utils.py,sha256=4jT6j7bB21c0JNn5BfnyWQib_zt0CVtJ_TiOFOStRcE,2604
9
9
  biolib/_internal/fuse_mount/__init__.py,sha256=B_tM6RM2dBw-vbpoHJC4X3tOAaN1H2RDvqYJOw3xFwg,55
10
10
  biolib/_internal/fuse_mount/experiment_fuse_mount.py,sha256=08aUdEq_bvqLBft_gSLjOClKDy5sBnMts1RfJf7AP_U,7012
11
- biolib/_internal/http_client.py,sha256=_uop4dwetHA5MvmxVqGzxV9w1Zl4peRVZXFiImuL2BA,6211
11
+ biolib/_internal/http_client.py,sha256=9-3HG6LnLwJfrwjCeFj5XigHVH8Dzz6Dpr58IjQJHDo,6221
12
12
  biolib/_internal/lfs/__init__.py,sha256=gSWo_xg61UniYgD7yNYxeT4I9uaXBCBSi3_nmZjnPpE,35
13
13
  biolib/_internal/lfs/cache.py,sha256=pQS2np21rdJ6I3DpoOutnzPHpLOZgUIS8TMltUJk_k4,2226
14
14
  biolib/_internal/libs/__init__.py,sha256=Jdf4tNPqe_oIIf6zYml6TiqhL_02Vyqwge6IELrAFhw,98
@@ -27,7 +27,7 @@ biolib/_internal/utils/__init__.py,sha256=p5vsIFyu-zYqBgdSMfwW9NC_jk7rXvvCbV4Bzd
27
27
  biolib/_internal/utils/multinode.py,sha256=-J3PEAK3NaOwCn--5T7vWHkA3yu5w9QhmuhkQcH-2wY,8229
28
28
  biolib/_runtime/runtime.py,sha256=bZQ0m39R9jOBVAtlyvzDnOobKueOAQUCwMUZjDQnO7E,4439
29
29
  biolib/api/__init__.py,sha256=mQ4u8FijqyLzjYMezMUUbbBGNB3iFmkNdjXnWPZ7Jlw,138
30
- biolib/api/client.py,sha256=_kmwaGI_-u7kOeWVCYmo-pD2K1imwEv9n2gNZRb5F-I,3790
30
+ biolib/api/client.py,sha256=EN3lDbbgWxw3aPDe8W5XIU6WkMfOHW7Dmsz-R6QqxAw,4176
31
31
  biolib/app/__init__.py,sha256=cdPtcfb_U-bxb9iSL4fCEq2rpD9OjkyY4W-Zw60B0LI,37
32
32
  biolib/app/app.py,sha256=mJafDLtnoX66egHF94NrUhmhzjpFzvRj2STh0RVGJCY,8862
33
33
  biolib/app/search_apps.py,sha256=K4a41f5XIWth2BWI7OffASgIsD0ko8elCax8YL2igaY,1470
@@ -99,7 +99,7 @@ biolib/compute_node/webserver/webserver_types.py,sha256=2t8EaFKESnves3BA_NBdnS2y
99
99
  biolib/compute_node/webserver/webserver_utils.py,sha256=XWvwYPbWNR3qS0FYbLLp-MDDfVk0QdaAmg3xPrT0H2s,4234
100
100
  biolib/compute_node/webserver/worker_thread.py,sha256=0kb7RgwDSIzTZfjttUHelyAS8g7VPx1J1E7GbqYObu0,12288
101
101
  biolib/experiments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
- biolib/experiments/experiment.py,sha256=m7FB7hot8CMOVrNyWGPB6FTkWQJwI0ytpIvtPxfoPME,7684
102
+ biolib/experiments/experiment.py,sha256=V1_UtcDm2ydxDjOlk0N7bv1jGTAb06psflAYcqbo0sY,8559
103
103
  biolib/jobs/__init__.py,sha256=aIb2H2DHjQbM2Bs-dysFijhwFcL58Blp0Co0gimED3w,32
104
104
  biolib/jobs/job.py,sha256=qXDjaI5YbxEHLYtF-vflfdz6j4AEb83ioqSZli5aOgM,20453
105
105
  biolib/jobs/job_result.py,sha256=rALHiKYNaC9lHi_JJqBob1RubzNLwG9Z386kwRJjd2M,5885
@@ -118,8 +118,8 @@ biolib/utils/cache_state.py,sha256=u256F37QSRIVwqKlbnCyzAX4EMI-kl6Dwu6qwj-Qmag,3
118
118
  biolib/utils/multipart_uploader.py,sha256=XvGP1I8tQuKhAH-QugPRoEsCi9qvbRk-DVBs5PNwwJo,8452
119
119
  biolib/utils/seq_util.py,sha256=Ozk0blGtPur_D9MwShD02r_mphyQmgZkx-lOHOwnlIM,6730
120
120
  biolib/utils/zip/remote_zip.py,sha256=0wErYlxir5921agfFeV1xVjf29l9VNgGQvNlWOlj2Yc,23232
121
- pybiolib-1.2.342.dev1.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
122
- pybiolib-1.2.342.dev1.dist-info/METADATA,sha256=-x0BG9aHSb30YX0pndYEJtgu5Zhy0vui7SVvOmncnEU,1575
123
- pybiolib-1.2.342.dev1.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
124
- pybiolib-1.2.342.dev1.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
125
- pybiolib-1.2.342.dev1.dist-info/RECORD,,
121
+ pybiolib-1.2.347.dist-info/LICENSE,sha256=F2h7gf8i0agDIeWoBPXDMYScvQOz02pAWkKhTGOHaaw,1067
122
+ pybiolib-1.2.347.dist-info/METADATA,sha256=MMaf_ltA6Tg3gAgfrmO1W9bZeWMM3D6_fGQkgN1Ono8,1570
123
+ pybiolib-1.2.347.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
124
+ pybiolib-1.2.347.dist-info/entry_points.txt,sha256=p6DyaP_2kctxegTX23WBznnrDi4mz6gx04O5uKtRDXg,42
125
+ pybiolib-1.2.347.dist-info/RECORD,,