cloudos-cli 2.88.0__tar.gz → 2.88.2__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.
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/PKG-INFO +2 -2
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/README.md +1 -1
- cloudos_cli-2.88.2/cloudos_cli/_version.py +1 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/interactive_session/cli.py +4 -2
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/interactive_session/interactive_session.py +6 -1
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/jobs/job.py +11 -3
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli.egg-info/PKG-INFO +2 -2
- cloudos_cli-2.88.0/cloudos_cli/_version.py +0 -1
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/LICENSE +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/__main__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/bash/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/bash/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/clos.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/configure/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/configure/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/configure/configure.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/constants.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/cost/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/cost/cost.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/cromwell/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/cromwell/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/datasets/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/datasets/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/datasets/datasets.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/import_wf/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/import_wf/import_wf.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/interactive_session/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/jobs/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/jobs/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/link/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/link/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/link/link.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/logging/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/logging/logger.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/procurement/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/procurement/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/procurement/images.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/projects/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/projects/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/queue/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/queue/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/queue/queue.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/related_analyses/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/related_analyses/related_analyses.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/array_job.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/cli_helpers.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/cloud.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/details.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/errors.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/last_wf.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/nextflow_version.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/requests.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/utils/resources.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/workflows/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/workflows/cli.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli.egg-info/SOURCES.txt +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli.egg-info/dependency_links.txt +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli.egg-info/entry_points.txt +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli.egg-info/requires.txt +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli.egg-info/top_level.txt +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/setup.cfg +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/setup.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/functions_for_pytest.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_cli_project_create.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_cost/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_cost/test_job_cost.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_error_messages.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_interactive_session/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_interactive_session/test_create_session.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_interactive_session/test_list_sessions.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_logging/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_logging/test_logger.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_nextflow_version.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_related_analyses/__init__.py +0 -0
- {cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_related_analyses/test_related_analyses.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudos_cli
|
|
3
|
-
Version: 2.88.
|
|
3
|
+
Version: 2.88.2
|
|
4
4
|
Summary: Python package for interacting with CloudOS
|
|
5
5
|
Home-page: https://github.com/lifebit-ai/cloudos-cli
|
|
6
6
|
Author: David Piñeyro
|
|
@@ -2178,7 +2178,7 @@ cloudos interactive-session create \
|
|
|
2178
2178
|
- `--spot`: Use spot instances (AWS only, cost-saving)
|
|
2179
2179
|
- `--shared`: Make session accessible to workspace members
|
|
2180
2180
|
- `--cost-limit`: Compute cost limit in USD (default: -1 for unlimited)
|
|
2181
|
-
- `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`)
|
|
2181
|
+
- `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`, default: `12h`)
|
|
2182
2182
|
|
|
2183
2183
|
**Data & Storage Management:**
|
|
2184
2184
|
- `--mount`: Mount a data file into the session. Supports both CloudOS datasets and S3 files (AWS only). Format: `project_name/dataset_path` (e.g., `leila-test/Data/file.csv`) or `s3://bucket/path/to/file` (e.g., `s3://my-bucket/data/file.csv`). Can be used multiple times.
|
|
@@ -2143,7 +2143,7 @@ cloudos interactive-session create \
|
|
|
2143
2143
|
- `--spot`: Use spot instances (AWS only, cost-saving)
|
|
2144
2144
|
- `--shared`: Make session accessible to workspace members
|
|
2145
2145
|
- `--cost-limit`: Compute cost limit in USD (default: -1 for unlimited)
|
|
2146
|
-
- `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`)
|
|
2146
|
+
- `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`, default: `12h`)
|
|
2147
2147
|
|
|
2148
2148
|
**Data & Storage Management:**
|
|
2149
2149
|
- `--mount`: Mount a data file into the session. Supports both CloudOS datasets and S3 files (AWS only). Format: `project_name/dataset_path` (e.g., `leila-test/Data/file.csv`) or `s3://bucket/path/to/file` (e.g., `s3://my-bucket/data/file.csv`). Can be used multiple times.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.88.2'
|
|
@@ -276,7 +276,8 @@ def list_sessions(ctx,
|
|
|
276
276
|
help='Cost limit in USD. Default=-1 (unlimited).',
|
|
277
277
|
default=-1)
|
|
278
278
|
@click.option('--shutdown-in',
|
|
279
|
-
help='Auto-shutdown duration (e.g., 8h, 2d).'
|
|
279
|
+
help='Auto-shutdown duration (e.g., 8h, 2d). Default=12h.',
|
|
280
|
+
default='12h')
|
|
280
281
|
@click.option('--mount',
|
|
281
282
|
multiple=True,
|
|
282
283
|
help='Mount a data file into the session. Supports both CloudOS datasets and S3 files. Format: project_name/dataset_path (e.g., leila-test/Data/file.csv) or s3://bucket/path/to/file (e.g., s3://my-bucket/data/file.csv). Can be used multiple times.')
|
|
@@ -561,7 +562,8 @@ def create_session(ctx,
|
|
|
561
562
|
spark_core=spark_core,
|
|
562
563
|
spark_workers=spark_workers,
|
|
563
564
|
data_files=parsed_data_files,
|
|
564
|
-
s3_mounts=parsed_s3_mounts
|
|
565
|
+
s3_mounts=parsed_s3_mounts,
|
|
566
|
+
shutdown_in=shutdown_in
|
|
565
567
|
)
|
|
566
568
|
# Output session link in greppable format for CI/automation
|
|
567
569
|
click.echo(f"Session link: {cloudos_url}/app/data-science/interactive-analysis/view/{session_id}")
|
{cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/cloudos_cli/interactive_session/interactive_session.py
RENAMED
|
@@ -1162,7 +1162,7 @@ def build_resume_payload(
|
|
|
1162
1162
|
def format_session_creation_table(session_data, instance_type=None, storage_size=None,
|
|
1163
1163
|
backend_type=None, r_version=None,
|
|
1164
1164
|
spark_master=None, spark_core=None, spark_workers=None,
|
|
1165
|
-
data_files=None, s3_mounts=None):
|
|
1165
|
+
data_files=None, s3_mounts=None, shutdown_in=None):
|
|
1166
1166
|
"""Display session creation result in table format.
|
|
1167
1167
|
|
|
1168
1168
|
Parameters
|
|
@@ -1187,6 +1187,8 @@ def format_session_creation_table(session_data, instance_type=None, storage_size
|
|
|
1187
1187
|
List of parsed data file objects to display
|
|
1188
1188
|
s3_mounts : list, optional
|
|
1189
1189
|
List of parsed S3 mount objects to display
|
|
1190
|
+
shutdown_in : str, optional
|
|
1191
|
+
Shutdown duration value (e.g., '12h', '2d') that was requested
|
|
1190
1192
|
|
|
1191
1193
|
Returns
|
|
1192
1194
|
-------
|
|
@@ -1214,6 +1216,9 @@ def format_session_creation_table(session_data, instance_type=None, storage_size
|
|
|
1214
1216
|
session_data.get('interactiveSessionConfiguration', {}).get('storageSizeInGb')
|
|
1215
1217
|
storage_display = f"{response_storage} GB" if response_storage else (f"{storage_size} GB" if storage_size else "N/A")
|
|
1216
1218
|
table.add_row("Storage", storage_display)
|
|
1219
|
+
# Display shutdown duration
|
|
1220
|
+
if shutdown_in:
|
|
1221
|
+
table.add_row("Auto-Shutdown", shutdown_in)
|
|
1217
1222
|
# Add backend-specific information
|
|
1218
1223
|
if backend_type == 'rstudio' and r_version:
|
|
1219
1224
|
table.add_row("R Version", r_version)
|
|
@@ -1353,12 +1353,19 @@ class Job(Cloudos):
|
|
|
1353
1353
|
param['columnIndex'] = int(param['columnIndex'])
|
|
1354
1354
|
except ValueError:
|
|
1355
1355
|
raise ValueError(f"Invalid columnIndex value '{param['columnIndex']}' for parameter '{param.get('name')}'")
|
|
1356
|
+
# The textValue, as the name indicates, needs to be a string
|
|
1357
|
+
for param in cloned_payload.get('parameters', []):
|
|
1358
|
+
if param.get('parameterKind') == 'textValue':
|
|
1359
|
+
try:
|
|
1360
|
+
param['textValue'] = str(param['textValue'])
|
|
1361
|
+
except ValueError:
|
|
1362
|
+
raise ValueError(f"Invalid textValue value '{param['textValue']}' for parameter '{param.get('name')}'")
|
|
1356
1363
|
|
|
1357
1364
|
if parameters:
|
|
1358
1365
|
cloned_parameters = cloned_payload.get('parameters', [])
|
|
1359
1366
|
for param_override in parameters:
|
|
1360
1367
|
param_name, param_value = param_override.split('=', 1)
|
|
1361
|
-
param_name = param_name.lstrip('-')
|
|
1368
|
+
param_name = param_name.lstrip('-') # Remove leading dashes
|
|
1362
1369
|
if not self.update_parameter_value(cloned_parameters, param_name, param_value):
|
|
1363
1370
|
# Parameter not found, add as new parameter
|
|
1364
1371
|
# Determine workflow type to set proper prefix and format
|
|
@@ -1401,10 +1408,11 @@ class Job(Cloudos):
|
|
|
1401
1408
|
def fix_boolean_strings(self, obj):
|
|
1402
1409
|
"""
|
|
1403
1410
|
Recursively convert string booleans ('True', 'False') into real booleans
|
|
1404
|
-
inside dicts, lists, or nested structures.
|
|
1411
|
+
inside dicts, lists, or nested structures. It excludes 'textValues' as they
|
|
1412
|
+
have to remain as text even if the text is 'true'.
|
|
1405
1413
|
"""
|
|
1406
1414
|
if isinstance(obj, dict):
|
|
1407
|
-
return {k: self.fix_boolean_strings(v) for k, v in obj.items()}
|
|
1415
|
+
return {k: self.fix_boolean_strings(v) if k != 'textValue' else v for k, v in obj.items()}
|
|
1408
1416
|
elif isinstance(obj, list):
|
|
1409
1417
|
return [self.fix_boolean_strings(v) for v in obj]
|
|
1410
1418
|
elif isinstance(obj, str):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cloudos_cli
|
|
3
|
-
Version: 2.88.
|
|
3
|
+
Version: 2.88.2
|
|
4
4
|
Summary: Python package for interacting with CloudOS
|
|
5
5
|
Home-page: https://github.com/lifebit-ai/cloudos-cli
|
|
6
6
|
Author: David Piñeyro
|
|
@@ -2178,7 +2178,7 @@ cloudos interactive-session create \
|
|
|
2178
2178
|
- `--spot`: Use spot instances (AWS only, cost-saving)
|
|
2179
2179
|
- `--shared`: Make session accessible to workspace members
|
|
2180
2180
|
- `--cost-limit`: Compute cost limit in USD (default: -1 for unlimited)
|
|
2181
|
-
- `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`)
|
|
2181
|
+
- `--shutdown-in`: Auto-shutdown duration (e.g., `8h`, `2d`, `30m`, default: `12h`)
|
|
2182
2182
|
|
|
2183
2183
|
**Data & Storage Management:**
|
|
2184
2184
|
- `--mount`: Mount a data file into the session. Supports both CloudOS datasets and S3 files (AWS only). Format: `project_name/dataset_path` (e.g., `leila-test/Data/file.csv`) or `s3://bucket/path/to/file` (e.g., `s3://my-bucket/data/file.csv`). Can be used multiple times.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.88.0'
|
|
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
|
|
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
|
{cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_interactive_session/test_create_session.py
RENAMED
|
File without changes
|
{cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_interactive_session/test_list_sessions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloudos_cli-2.88.0 → cloudos_cli-2.88.2}/tests/test_related_analyses/test_related_analyses.py
RENAMED
|
File without changes
|