pybiolib 1.1.1794__tar.gz → 1.1.1810__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.
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/PKG-INFO +1 -1
- pybiolib-1.1.1810/biolib/_internal/utils/__init__.py +14 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/auth.py +10 -2
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/download_container.py +1 -1
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/jobs/job.py +27 -28
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/user/sign_in.py +8 -12
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/pyproject.toml +1 -1
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/LICENSE +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/README.md +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/_internal/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/_internal/http_client.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/_internal/push_application.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/_internal/runtime/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/_internal/runtime/job_data.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/api/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/api/client.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/app/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/app/app.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/app/search_apps.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/api_client.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/app_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/auth.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/biolib_account_api.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/biolib_app_api.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/biolib_job_api.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/biolib_large_file_system_api.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/common_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/job_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/lfs_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/user_state.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/base_bbf_package.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/file_in_container.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/module_input.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/module_output_v2.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/remote_endpoints.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/remote_stream_seeker.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/saved_job.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/stdout_and_stderr.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/system_exception.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/system_status_update.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_binary_format/utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_docker_client/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_download_container.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_errors.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_logging.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/init.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/lfs.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/push.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/run.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/runtime.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/cli/start.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/.gitignore +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/cloud_utils/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/cloud_utils/cloud_utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/cache_state.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/cache_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/docker_image_cache.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/docker_executor.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/docker_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/tars/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/job_storage.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/job_worker.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/large_file_system.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/mappings.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/utilization_reporter_thread.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/remote_host_proxy.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/socker_listener_thread.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/socket_sender_thread.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/gunicorn_flask_application.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/webserver.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/webserver_types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/webserver_utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/worker_thread.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/experiments/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/experiments/experiment.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/experiments/types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/jobs/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/jobs/job_result.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/jobs/types.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/lfs/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/lfs/cache.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/lfs/utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/runtime/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/runtime/results.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/sdk/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/tables.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/templates/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/templates/example_app.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/typing_utils.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/user/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/utils/__init__.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/utils/app_uri.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/utils/cache_state.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/utils/multipart_uploader.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/utils/seq_util.py +0 -0
- {pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/utils/zip/remote_zip.py +0 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
import time
|
2
|
+
import uuid
|
3
|
+
|
4
|
+
|
5
|
+
def open_browser_window_from_notebook(url_to_open: str) -> None:
|
6
|
+
try:
|
7
|
+
from IPython.display import (display, Javascript, update_display) # type:ignore # pylint: disable=import-error, import-outside-toplevel
|
8
|
+
except ImportError as error:
|
9
|
+
raise Exception('Unexpected environment. This function can only be called from a notebook.') from error
|
10
|
+
|
11
|
+
display_id = str(uuid.uuid4())
|
12
|
+
display(Javascript(f'window.open("{url_to_open}");'), display_id=display_id)
|
13
|
+
time.sleep(1)
|
14
|
+
update_display(Javascript(''), display_id=display_id)
|
@@ -8,10 +8,18 @@ from biolib import biolib_errors, api
|
|
8
8
|
|
9
9
|
|
10
10
|
@click.command(help='Login your to BioLib account with web browser')
|
11
|
-
|
11
|
+
@click.option(
|
12
|
+
'-w',
|
13
|
+
is_flag=True,
|
14
|
+
default=False,
|
15
|
+
required=False,
|
16
|
+
type=bool,
|
17
|
+
help='Automatically open the login page in the default web browser',
|
18
|
+
)
|
19
|
+
def login(w: bool) -> None: # pylint: disable=invalid-name
|
12
20
|
logger.configure(default_log_level=logging.INFO)
|
13
21
|
logger_no_user_data.configure(default_log_level=logging.INFO)
|
14
|
-
sign_in()
|
22
|
+
sign_in(open_in_default_browser=w)
|
15
23
|
|
16
24
|
|
17
25
|
@click.command(help='Logout of your BioLib account')
|
@@ -4,7 +4,7 @@ from biolib.biolib_download_container import download_container_from_uri
|
|
4
4
|
from biolib.biolib_logging import logger, logger_no_user_data
|
5
5
|
|
6
6
|
|
7
|
-
@click.command(help='
|
7
|
+
@click.command(help='Pull an application from BioLib', name='download-container', hidden=True)
|
8
8
|
@click.argument('uri')
|
9
9
|
def download_container(uri: str) -> None:
|
10
10
|
logger.configure(default_log_level=logging.INFO)
|
@@ -8,6 +8,8 @@ from urllib.parse import urlparse
|
|
8
8
|
|
9
9
|
from biolib import api, utils
|
10
10
|
from biolib._internal.http_client import HttpClient
|
11
|
+
from biolib._internal.utils import open_browser_window_from_notebook
|
12
|
+
from biolib.biolib_api_client import BiolibApiClient
|
11
13
|
from biolib.biolib_api_client.biolib_job_api import BiolibJobApi
|
12
14
|
from biolib.biolib_binary_format import LazyLoadedFile, ModuleOutputV2, ModuleInput, ModuleInputDict
|
13
15
|
from biolib.biolib_binary_format.stdout_and_stderr import StdoutAndStderr
|
@@ -23,12 +25,14 @@ from biolib.utils import IS_RUNNING_IN_NOTEBOOK
|
|
23
25
|
|
24
26
|
class Job:
|
25
27
|
# Columns to print in table when showing Job
|
26
|
-
table_columns_to_row_map = OrderedDict(
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
table_columns_to_row_map = OrderedDict(
|
29
|
+
{
|
30
|
+
'ID': {'key': 'uuid', 'params': {'width': 36}},
|
31
|
+
'Application': {'key': 'app_uri', 'params': {}},
|
32
|
+
'Status': {'key': 'state', 'params': {}},
|
33
|
+
'Started At': {'key': 'started_at', 'params': {}},
|
34
|
+
}
|
35
|
+
)
|
32
36
|
|
33
37
|
def __init__(self, job_dict: JobDict):
|
34
38
|
self._uuid: str = job_dict['uuid']
|
@@ -172,6 +176,17 @@ class Job:
|
|
172
176
|
time.sleep(2)
|
173
177
|
logger.info(f'Job {self.id} has finished.')
|
174
178
|
|
179
|
+
def open_browser(self) -> None:
|
180
|
+
api_client = BiolibApiClient.get()
|
181
|
+
results_url_to_open = f'{api_client.base_url}/results/{self.id}/?token={self._auth_token}'
|
182
|
+
if IS_RUNNING_IN_NOTEBOOK:
|
183
|
+
print(f'Opening results page at: {results_url_to_open}')
|
184
|
+
print('If your browser does not open automatically, click on the link above.')
|
185
|
+
open_browser_window_from_notebook(results_url_to_open)
|
186
|
+
else:
|
187
|
+
print('Please copy and paste the following link into your browser:')
|
188
|
+
print(results_url_to_open)
|
189
|
+
|
175
190
|
def _get_cloud_job(self) -> CloudJobDict:
|
176
191
|
self._refetch_job_dict(force_refetch=True)
|
177
192
|
if self._job_dict['cloud_job'] is None:
|
@@ -190,20 +205,11 @@ class Job:
|
|
190
205
|
@staticmethod
|
191
206
|
def show_jobs(count: int = 25) -> None:
|
192
207
|
job_dicts = Job._get_job_dicts(count)
|
193
|
-
BioLibTable(
|
194
|
-
columns_to_row_map=Job.table_columns_to_row_map,
|
195
|
-
rows=job_dicts,
|
196
|
-
title='Jobs'
|
197
|
-
).print_table()
|
208
|
+
BioLibTable(columns_to_row_map=Job.table_columns_to_row_map, rows=job_dicts, title='Jobs').print_table()
|
198
209
|
|
199
210
|
@staticmethod
|
200
211
|
def _get_job_dicts(count: int) -> List['JobDict']:
|
201
|
-
job_dicts: List['JobDict'] = api.client.get(
|
202
|
-
path='/jobs/',
|
203
|
-
params={
|
204
|
-
'page_size': str(count)
|
205
|
-
}
|
206
|
-
).json()['results']
|
212
|
+
job_dicts: List['JobDict'] = api.client.get(path='/jobs/', params={'page_size': str(count)}).json()['results']
|
207
213
|
return job_dicts
|
208
214
|
|
209
215
|
@staticmethod
|
@@ -235,9 +241,7 @@ class Job:
|
|
235
241
|
def show(self) -> None:
|
236
242
|
self._refetch_job_dict()
|
237
243
|
BioLibTable(
|
238
|
-
columns_to_row_map=Job.table_columns_to_row_map,
|
239
|
-
rows=[self._job_dict],
|
240
|
-
title=f'Job: {self._uuid}'
|
244
|
+
columns_to_row_map=Job.table_columns_to_row_map, rows=[self._job_dict], title=f'Job: {self._uuid}'
|
241
245
|
).print_table()
|
242
246
|
|
243
247
|
def stream_logs(self) -> None:
|
@@ -305,9 +309,7 @@ class Job:
|
|
305
309
|
|
306
310
|
def _print_full_logs(self, node_url: str) -> None:
|
307
311
|
try:
|
308
|
-
response_json = HttpClient.request(
|
309
|
-
url=f'{node_url}/v1/job/{self._uuid}/status/?logs=full'
|
310
|
-
).json()
|
312
|
+
response_json = HttpClient.request(url=f'{node_url}/v1/job/{self._uuid}/status/?logs=full').json()
|
311
313
|
except Exception as error:
|
312
314
|
logger.error(f'Could not get full streamed logs due to: {error}')
|
313
315
|
raise BioLibError('Could not get full streamed logs') from error
|
@@ -336,9 +338,7 @@ class Job:
|
|
336
338
|
def _get_job_status_from_compute_node(self, compute_node_url):
|
337
339
|
for _ in range(15):
|
338
340
|
try:
|
339
|
-
return HttpClient.request(
|
340
|
-
url=f'{compute_node_url}/v1/job/{self._uuid}/status/'
|
341
|
-
).json()
|
341
|
+
return HttpClient.request(url=f'{compute_node_url}/v1/job/{self._uuid}/status/').json()
|
342
342
|
except Exception: # pylint: disable=broad-except
|
343
343
|
cloud_job = self._get_cloud_job()
|
344
344
|
logger.debug("Failed to get status from compute node, retrying...")
|
@@ -346,8 +346,7 @@ class Job:
|
|
346
346
|
logger.debug("Job no longer exists on compute node, checking for error...")
|
347
347
|
if cloud_job['error_code'] != SystemExceptionCodes.COMPLETED_SUCCESSFULLY.value:
|
348
348
|
error_message = SystemExceptionCodeMap.get(
|
349
|
-
cloud_job['error_code'],
|
350
|
-
f'Unknown error code {cloud_job["error_code"]}'
|
349
|
+
cloud_job['error_code'], f'Unknown error code {cloud_job["error_code"]}'
|
351
350
|
)
|
352
351
|
raise BioLibError(f'Cloud: {error_message}') from None
|
353
352
|
else:
|
@@ -1,19 +1,11 @@
|
|
1
1
|
import time
|
2
|
-
import
|
2
|
+
import webbrowser
|
3
3
|
|
4
4
|
from biolib.biolib_api_client import BiolibApiClient
|
5
5
|
from biolib.biolib_api_client.auth import BiolibAuthChallengeApi
|
6
6
|
from biolib.biolib_logging import logger_no_user_data
|
7
7
|
from biolib.utils import IS_RUNNING_IN_NOTEBOOK
|
8
|
-
|
9
|
-
|
10
|
-
def _open_browser_window(url_to_open: str) -> None:
|
11
|
-
from IPython.display import display, Javascript, update_display # type:ignore # pylint: disable=import-error, import-outside-toplevel
|
12
|
-
|
13
|
-
display_id = str(uuid.uuid4())
|
14
|
-
display(Javascript(f'window.open("{url_to_open}");'), display_id=display_id)
|
15
|
-
time.sleep(1)
|
16
|
-
update_display(Javascript(''), display_id=display_id)
|
8
|
+
from biolib._internal.utils import open_browser_window_from_notebook
|
17
9
|
|
18
10
|
|
19
11
|
def sign_out() -> None:
|
@@ -21,7 +13,7 @@ def sign_out() -> None:
|
|
21
13
|
api_client.sign_out()
|
22
14
|
|
23
15
|
|
24
|
-
def sign_in() -> None:
|
16
|
+
def sign_in(open_in_default_browser: bool = False) -> None:
|
25
17
|
api_client = BiolibApiClient.get()
|
26
18
|
if api_client.is_signed_in:
|
27
19
|
logger_no_user_data.info('Already signed in')
|
@@ -37,7 +29,11 @@ def sign_in() -> None:
|
|
37
29
|
if IS_RUNNING_IN_NOTEBOOK:
|
38
30
|
print(f'Opening authorization page at: {frontend_sign_in_url}')
|
39
31
|
print('If your browser does not open automatically, click on the link above.')
|
40
|
-
|
32
|
+
open_browser_window_from_notebook(frontend_sign_in_url)
|
33
|
+
elif open_in_default_browser:
|
34
|
+
print(f'Opening authorization page at: {frontend_sign_in_url}')
|
35
|
+
print('If your browser does not open automatically, click on the link above.')
|
36
|
+
webbrowser.open(frontend_sign_in_url)
|
41
37
|
else:
|
42
38
|
print('Please copy and paste the following link into your browser:')
|
43
39
|
print(frontend_sign_in_url)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/biolib_api_client/biolib_large_file_system_api.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/docker_image_cache.py
RENAMED
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/__init__.py
RENAMED
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/docker_executor.py
RENAMED
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/docker_types.py
RENAMED
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/job_worker/executors/tars/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pybiolib-1.1.1794 → pybiolib-1.1.1810}/biolib/compute_node/webserver/gunicorn_flask_application.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|