cloudos-cli 2.74.0__tar.gz → 2.75.1__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 (54) hide show
  1. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/PKG-INFO +103 -36
  2. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/README.md +102 -35
  3. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/__main__.py +101 -61
  4. cloudos_cli-2.75.1/cloudos_cli/_version.py +1 -0
  5. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/clos.py +20 -15
  6. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/cost/cost.py +1 -1
  7. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/jobs/job.py +8 -8
  8. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/link/link.py +2 -2
  9. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/details.py +313 -0
  10. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli.egg-info/PKG-INFO +103 -36
  11. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli.egg-info/SOURCES.txt +1 -0
  12. cloudos_cli-2.75.1/tests/test_error_messages.py +856 -0
  13. cloudos_cli-2.74.0/cloudos_cli/_version.py +0 -1
  14. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/LICENSE +0 -0
  15. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/__init__.py +0 -0
  16. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/configure/__init__.py +0 -0
  17. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/configure/configure.py +0 -0
  18. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/cost/__init__.py +0 -0
  19. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/datasets/__init__.py +0 -0
  20. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/datasets/datasets.py +0 -0
  21. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/import_wf/__init__.py +0 -0
  22. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/import_wf/import_wf.py +0 -0
  23. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/jobs/__init__.py +0 -0
  24. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/link/__init__.py +0 -0
  25. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/logging/__init__.py +0 -0
  26. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/logging/logger.py +0 -0
  27. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/procurement/__init__.py +0 -0
  28. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/procurement/images.py +0 -0
  29. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/queue/__init__.py +0 -0
  30. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/queue/queue.py +0 -0
  31. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/related_analyses/__init__.py +0 -0
  32. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/related_analyses/related_analyses.py +0 -0
  33. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/__init__.py +0 -0
  34. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/array_job.py +0 -0
  35. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/cloud.py +0 -0
  36. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/errors.py +0 -0
  37. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/last_wf.py +0 -0
  38. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/requests.py +0 -0
  39. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli/utils/resources.py +0 -0
  40. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli.egg-info/dependency_links.txt +0 -0
  41. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli.egg-info/entry_points.txt +0 -0
  42. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli.egg-info/requires.txt +0 -0
  43. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/cloudos_cli.egg-info/top_level.txt +0 -0
  44. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/setup.cfg +0 -0
  45. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/setup.py +0 -0
  46. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/__init__.py +0 -0
  47. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/functions_for_pytest.py +0 -0
  48. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/test_cli_project_create.py +0 -0
  49. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/test_cost/__init__.py +0 -0
  50. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/test_cost/test_job_cost.py +0 -0
  51. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/test_logging/__init__.py +0 -0
  52. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/test_logging/test_logger.py +0 -0
  53. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/tests/test_related_analyses/__init__.py +0 -0
  54. {cloudos_cli-2.74.0 → cloudos_cli-2.75.1}/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.74.0
3
+ Version: 2.75.1
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
@@ -1004,37 +1004,65 @@ cloudos job workdir --status --profile my_profile --job-id "12345678910" --verbo
1004
1004
 
1005
1005
  #### List Jobs
1006
1006
 
1007
- You can get a summary of workspace jobs in two different formats:
1007
+ View your workspace jobs in a clean, formatted table directly in your terminal. The table automatically adapts to your terminal width, showing different column sets for optimal viewing. By default, jobs are displayed as a rich table with job IDs and colored visual status indicators.
1008
1008
 
1009
- - CSV: this is a table with a minimum predefined set of columns by default, or all the available columns using the `--all-fields` argument.
1010
- - JSON: all the available information from the workspace jobs, in JSON format (`--all-fields` is always enabled for this format).
1009
+ **Output Formats**
1011
1010
 
1012
- **Job Listing Control Options**
1013
-
1014
- CloudOS CLI provides two ways to control the number of jobs retrieved:
1015
-
1016
- 1. **Pagination Control (Default)**: Use `--page` and `--page-size` for precise pagination
1017
- 2. **Last N Jobs**: Use `--last-n-jobs` for retrieving the most recent jobs
1011
+ CloudOS CLI provides three output formats for job listings:
1018
1012
 
1019
- > [!IMPORTANT]
1020
- > **These options are mutually exclusive**. When `--last-n-jobs` is specified, it takes precedence and `--page`/`--page-size` parameters are ignored. A warning message will be displayed if both are provided.
1013
+ - **Table (default)**: Rich formatted table displayed in the terminal with pagination information
1014
+ - **CSV**: Tabular format with predefined or all available columns using `--all-fields`
1015
+ - **JSON**: Complete job information in JSON format (`--all-fields` is always enabled)
1021
1016
 
1022
1017
  **Default Behavior**
1023
1018
 
1024
- By default, the command retrieves the first page with 10 jobs (equivalent to `--page 1 --page-size 10`):
1019
+ By default, the command displays the 10 most recent jobs in a formatted table:
1025
1020
 
1026
1021
  ```bash
1027
- cloudos job list --profile my_profile --output-format csv --all-fields
1022
+ cloudos job list --profile my_profile
1028
1023
  ```
1029
1024
 
1030
- The expected output is something similar to:
1025
+ The output shows a rich table with job information and pagination details:
1031
1026
 
1032
1027
  ```console
1033
1028
  Executing list...
1034
- Job list collected with a total of 10 jobs.
1035
- Job list saved to joblist.csv
1029
+
1030
+ Job List
1031
+ ┏━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
1032
+ ┃ Status ┃ Name ┃ Project ┃ Owner ┃ Pipeline ┃ ID ┃ Submit time ┃
1033
+ ┡━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
1034
+ │ ✓ │ analysis_run │ test-proj │ John │ rnatoy │ 692ee71c40e98ed6ed529e43│ 2025-12-02 │
1035
+ │ │ │ │ Doe │ │ │ 15:30:45 │
1036
+ │ ◐ │ test_job │ research │ Jane │ VEP │ 692ee81d50f98ed7fe639f54│ 2025-12-02 │
1037
+ │ │ │ │ Smith │ │ │ 14:20:30 │
1038
+ └────────┴──────────────┴─────────────┴──────────┴──────────────┴─────────────────────────┴──────────────┘
1039
+
1040
+ Showing 10 of 45 total jobs | Page 1 of 5
1036
1041
  ```
1037
1042
 
1043
+ **Status Indicators**
1044
+
1045
+ Jobs are displayed with colored visual status indicators:
1046
+ - **Green ✓** Completed
1047
+ - **Grey ◐** Running
1048
+ - **Red ✗** Failed
1049
+ - **Orange ■** Aborted
1050
+ - **Grey ○** Initialising
1051
+
1052
+ **Clickable Job IDs**
1053
+
1054
+ Job IDs in the table are clickable hyperlinks (when supported by your terminal) that open the job details page in CloudOS.
1055
+
1056
+ **Job Listing Control Options**
1057
+
1058
+ CloudOS CLI provides two ways to control the number of jobs retrieved:
1059
+
1060
+ 1. **Pagination Control (Default)**: Use `--page` and `--page-size` for precise pagination
1061
+ 2. **Last N Jobs**: Use `--last-n-jobs` for retrieving the most recent jobs
1062
+
1063
+ > [!IMPORTANT]
1064
+ > **These options are mutually exclusive**. When `--last-n-jobs` is specified, it takes precedence and `--page`/`--page-size` parameters are ignored. A warning message will be displayed if both are provided.
1065
+
1038
1066
  **Pagination Examples**
1039
1067
 
1040
1068
  Retrieve specific pages using `--page` and `--page-size`:
@@ -1043,10 +1071,13 @@ Retrieve specific pages using `--page` and `--page-size`:
1043
1071
  # Get page 2 with 15 jobs per page
1044
1072
  cloudos job list --profile my_profile --page 2 --page-size 15
1045
1073
 
1046
- # Get page 5 with maximum 100 jobs per page
1074
+ # Get page 5 with maximum 100 jobs per page (maximum allowed)
1047
1075
  cloudos job list --profile my_profile --page 5 --page-size 100
1048
1076
  ```
1049
1077
 
1078
+ > [!NOTE]
1079
+ > `--page-size` has a maximum limit of 100 jobs per page. Attempting to use a larger value will result in an error.
1080
+
1050
1081
  **Last N Jobs Examples**
1051
1082
 
1052
1083
  Use `--last-n-jobs` to get the most recent jobs:
@@ -1056,54 +1087,87 @@ Use `--last-n-jobs` to get the most recent jobs:
1056
1087
  cloudos job list --profile my_profile --last-n-jobs 50
1057
1088
 
1058
1089
  # Get all workspace jobs
1059
- cloudos job list --profile my_profile --last-n-jobs all --output-format json
1090
+ cloudos job list --profile my_profile --last-n-jobs all
1091
+ ```
1092
+
1093
+ **Customizing Table Columns**
1094
+
1095
+ You can customize which columns are displayed in the table using the `--table-columns` option:
1096
+
1097
+ ```bash
1098
+ # Show only status, name, and cost columns
1099
+ cloudos job list --profile my_profile --table-columns status,name,cost
1100
+
1101
+ # Show a minimal view
1102
+ cloudos job list --profile my_profile --table-columns status,name,id,submit_time
1103
+ ```
1104
+
1105
+ Available columns: `status`, `name`, `project`, `owner`, `pipeline`, `id`, `submit_time`, `end_time`, `run_time`, `commit`, `cost`, `resources`, `storage_type`
1106
+
1107
+ > [!NOTE]
1108
+ > The `--table-columns` option only applies when using the default table output format (stdout).
1109
+
1110
+ **File Output Formats**
1111
+
1112
+ To save job lists to files instead of displaying them in the terminal:
1113
+
1114
+ ```bash
1115
+ # Save as CSV with default columns
1116
+ cloudos job list --profile my_profile --output-format csv
1117
+
1118
+ # Save as CSV with all available fields
1119
+ cloudos job list --profile my_profile --output-format csv --all-fields
1120
+
1121
+ # Save as JSON with complete job data
1122
+ cloudos job list --profile my_profile --output-format json
1060
1123
  ```
1124
+
1125
+ The expected output for file formats:
1126
+
1061
1127
  ```console
1062
1128
  Executing list...
1063
- Job list collected with a total of 276 jobs.
1064
- Job list saved to joblist.json
1129
+ Job list collected with a total of 10 jobs.
1130
+ Job list saved to joblist.csv
1065
1131
  ```
1066
1132
 
1067
- > [!NOTE]
1068
- > - `--page-size` has a maximum limit of 100 jobs per page
1069
- > - When filters or `--archived` flag are applied, pagination is applied to the filtered results
1070
- > - If both `--last-n-jobs` and pagination parameters are provided, only `--last-n-jobs` will be used
1133
+ **Filtering Jobs**
1071
1134
 
1072
- You find specific jobs within your workspace using the listing filtering options. Filters can be combined to narrow down results and all filtering is performed after retrieving jobs from the server.
1135
+ You can find specific jobs within your workspace using the filtering options. Filters can be combined to narrow down results and work with all output formats.
1073
1136
 
1074
1137
  **Available filters:**
1075
1138
 
1076
- - **`--filter-status`**: Filter jobs by execution status (e.g., completed, running, failed, aborted, queued, pending, initializing)
1139
+ - **`--filter-status`**: Filter jobs by execution status (e.g., completed, running, failed, aborted, initialising)
1077
1140
  - **`--filter-job-name`**: Filter jobs by job name (case insensitive partial matching)
1078
1141
  - **`--filter-project`**: Filter jobs by project name (exact match required)
1079
1142
  - **`--filter-workflow`**: Filter jobs by workflow/pipeline name (exact match required)
1080
1143
  - **`--filter-job-id`**: Filter jobs by specific job ID (exact match required)
1081
1144
  - **`--filter-only-mine`**: Show only jobs belonging to the current user
1082
- - **`--filter-owner`**: Show only job for the specified owner (exact match required, i.e needs to be in quotes and be "Name Surname")
1145
+ - **`--filter-owner`**: Show only jobs for the specified owner (exact match required, e.g., "John Doe")
1083
1146
  - **`--filter-queue`**: Filter jobs by queue name (only applies to batch jobs)
1084
1147
 
1085
1148
  **Filtering Examples**
1086
1149
 
1087
- You can find specific jobs within your workspace using the listing filtering options. Filters can be combined to narrow down results and all filtering is performed after retrieving jobs from the server.
1088
-
1089
1150
  Using pagination approach (default):
1151
+
1090
1152
  ```bash
1091
- # Get completed jobs from page 1 (default 20 jobs)
1153
+ # Get completed jobs from page 1 (default 10 jobs)
1092
1154
  cloudos job list --profile my_profile --filter-status completed
1093
1155
 
1094
- # Get completed jobs from page 2 with 15 jobs per page
1095
- cloudos job list --profile my_profile --page 2 --page-size 15 --filter-status completed
1156
+ # Get completed jobs from page 2 with 20 jobs per page
1157
+ cloudos job list --profile my_profile --page 2 --page-size 20 --filter-status completed
1096
1158
  ```
1097
1159
 
1098
1160
  Using last-n-jobs approach:
1161
+
1099
1162
  ```bash
1100
1163
  # Get all completed jobs from the last 50 jobs
1101
1164
  cloudos job list --profile my_profile --last-n-jobs 50 --filter-status completed
1102
1165
  ```
1103
1166
 
1104
1167
  Find jobs with "analysis" in the name from a specific project:
1168
+
1105
1169
  ```bash
1106
- # Using pagination (gets first 20 matching jobs)
1170
+ # Using pagination (gets first 10 matching jobs)
1107
1171
  cloudos job list --profile my_profile --filter-job-name analysis --filter-project "My Research Project"
1108
1172
 
1109
1173
  # Using last-n-jobs
@@ -1111,18 +1175,20 @@ cloudos job list --profile my_profile --last-n-jobs 100 --filter-job-name analys
1111
1175
  ```
1112
1176
 
1113
1177
  Get all jobs using a specific workflow and queue:
1178
+
1114
1179
  ```bash
1115
1180
  # Using pagination with larger page size
1116
1181
  cloudos job list --profile my_profile --page-size 50 --filter-workflow rnatoy --filter-queue high-priority-queue
1117
1182
 
1118
1183
  # Using last-n-jobs to search all jobs
1119
- cloudos job list --profile my_profile --last-n-jobs 'all' --filter-workflow rnatoy --filter-queue high-priority-queue
1184
+ cloudos job list --profile my_profile --last-n-jobs all --filter-workflow rnatoy --filter-queue high-priority-queue
1120
1185
  ```
1121
1186
 
1122
1187
  > [!NOTE]
1123
1188
  > - Project and workflow names must match exactly (case sensitive)
1124
1189
  > - Job name filtering is case insensitive and supports partial matches
1125
1190
  > - The `--last` flag can be used with `--filter-workflow` when multiple workflows have the same name
1191
+ > - When filters are applied, pagination information reflects the filtered results
1126
1192
 
1127
1193
  #### Get Job Costs
1128
1194
 
@@ -2099,7 +2165,8 @@ You can also collect your last 30 submitted jobs for a given workspace using the
2099
2165
  following command.
2100
2166
 
2101
2167
  ```python
2102
- my_jobs_r = j.get_job_list(workspace_id)
2168
+ result = j.get_job_list(workspace_id)
2169
+ my_jobs_r = result['jobs'] # Extract jobs list from the result
2103
2170
  my_jobs = j.process_job_list(my_jobs_r)
2104
2171
  print(my_jobs)
2105
2172
  ```
@@ -969,37 +969,65 @@ cloudos job workdir --status --profile my_profile --job-id "12345678910" --verbo
969
969
 
970
970
  #### List Jobs
971
971
 
972
- You can get a summary of workspace jobs in two different formats:
972
+ View your workspace jobs in a clean, formatted table directly in your terminal. The table automatically adapts to your terminal width, showing different column sets for optimal viewing. By default, jobs are displayed as a rich table with job IDs and colored visual status indicators.
973
973
 
974
- - CSV: this is a table with a minimum predefined set of columns by default, or all the available columns using the `--all-fields` argument.
975
- - JSON: all the available information from the workspace jobs, in JSON format (`--all-fields` is always enabled for this format).
974
+ **Output Formats**
976
975
 
977
- **Job Listing Control Options**
978
-
979
- CloudOS CLI provides two ways to control the number of jobs retrieved:
980
-
981
- 1. **Pagination Control (Default)**: Use `--page` and `--page-size` for precise pagination
982
- 2. **Last N Jobs**: Use `--last-n-jobs` for retrieving the most recent jobs
976
+ CloudOS CLI provides three output formats for job listings:
983
977
 
984
- > [!IMPORTANT]
985
- > **These options are mutually exclusive**. When `--last-n-jobs` is specified, it takes precedence and `--page`/`--page-size` parameters are ignored. A warning message will be displayed if both are provided.
978
+ - **Table (default)**: Rich formatted table displayed in the terminal with pagination information
979
+ - **CSV**: Tabular format with predefined or all available columns using `--all-fields`
980
+ - **JSON**: Complete job information in JSON format (`--all-fields` is always enabled)
986
981
 
987
982
  **Default Behavior**
988
983
 
989
- By default, the command retrieves the first page with 10 jobs (equivalent to `--page 1 --page-size 10`):
984
+ By default, the command displays the 10 most recent jobs in a formatted table:
990
985
 
991
986
  ```bash
992
- cloudos job list --profile my_profile --output-format csv --all-fields
987
+ cloudos job list --profile my_profile
993
988
  ```
994
989
 
995
- The expected output is something similar to:
990
+ The output shows a rich table with job information and pagination details:
996
991
 
997
992
  ```console
998
993
  Executing list...
999
- Job list collected with a total of 10 jobs.
1000
- Job list saved to joblist.csv
994
+
995
+ Job List
996
+ ┏━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
997
+ ┃ Status ┃ Name ┃ Project ┃ Owner ┃ Pipeline ┃ ID ┃ Submit time ┃
998
+ ┡━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
999
+ │ ✓ │ analysis_run │ test-proj │ John │ rnatoy │ 692ee71c40e98ed6ed529e43│ 2025-12-02 │
1000
+ │ │ │ │ Doe │ │ │ 15:30:45 │
1001
+ │ ◐ │ test_job │ research │ Jane │ VEP │ 692ee81d50f98ed7fe639f54│ 2025-12-02 │
1002
+ │ │ │ │ Smith │ │ │ 14:20:30 │
1003
+ └────────┴──────────────┴─────────────┴──────────┴──────────────┴─────────────────────────┴──────────────┘
1004
+
1005
+ Showing 10 of 45 total jobs | Page 1 of 5
1001
1006
  ```
1002
1007
 
1008
+ **Status Indicators**
1009
+
1010
+ Jobs are displayed with colored visual status indicators:
1011
+ - **Green ✓** Completed
1012
+ - **Grey ◐** Running
1013
+ - **Red ✗** Failed
1014
+ - **Orange ■** Aborted
1015
+ - **Grey ○** Initialising
1016
+
1017
+ **Clickable Job IDs**
1018
+
1019
+ Job IDs in the table are clickable hyperlinks (when supported by your terminal) that open the job details page in CloudOS.
1020
+
1021
+ **Job Listing Control Options**
1022
+
1023
+ CloudOS CLI provides two ways to control the number of jobs retrieved:
1024
+
1025
+ 1. **Pagination Control (Default)**: Use `--page` and `--page-size` for precise pagination
1026
+ 2. **Last N Jobs**: Use `--last-n-jobs` for retrieving the most recent jobs
1027
+
1028
+ > [!IMPORTANT]
1029
+ > **These options are mutually exclusive**. When `--last-n-jobs` is specified, it takes precedence and `--page`/`--page-size` parameters are ignored. A warning message will be displayed if both are provided.
1030
+
1003
1031
  **Pagination Examples**
1004
1032
 
1005
1033
  Retrieve specific pages using `--page` and `--page-size`:
@@ -1008,10 +1036,13 @@ Retrieve specific pages using `--page` and `--page-size`:
1008
1036
  # Get page 2 with 15 jobs per page
1009
1037
  cloudos job list --profile my_profile --page 2 --page-size 15
1010
1038
 
1011
- # Get page 5 with maximum 100 jobs per page
1039
+ # Get page 5 with maximum 100 jobs per page (maximum allowed)
1012
1040
  cloudos job list --profile my_profile --page 5 --page-size 100
1013
1041
  ```
1014
1042
 
1043
+ > [!NOTE]
1044
+ > `--page-size` has a maximum limit of 100 jobs per page. Attempting to use a larger value will result in an error.
1045
+
1015
1046
  **Last N Jobs Examples**
1016
1047
 
1017
1048
  Use `--last-n-jobs` to get the most recent jobs:
@@ -1021,54 +1052,87 @@ Use `--last-n-jobs` to get the most recent jobs:
1021
1052
  cloudos job list --profile my_profile --last-n-jobs 50
1022
1053
 
1023
1054
  # Get all workspace jobs
1024
- cloudos job list --profile my_profile --last-n-jobs all --output-format json
1055
+ cloudos job list --profile my_profile --last-n-jobs all
1056
+ ```
1057
+
1058
+ **Customizing Table Columns**
1059
+
1060
+ You can customize which columns are displayed in the table using the `--table-columns` option:
1061
+
1062
+ ```bash
1063
+ # Show only status, name, and cost columns
1064
+ cloudos job list --profile my_profile --table-columns status,name,cost
1065
+
1066
+ # Show a minimal view
1067
+ cloudos job list --profile my_profile --table-columns status,name,id,submit_time
1068
+ ```
1069
+
1070
+ Available columns: `status`, `name`, `project`, `owner`, `pipeline`, `id`, `submit_time`, `end_time`, `run_time`, `commit`, `cost`, `resources`, `storage_type`
1071
+
1072
+ > [!NOTE]
1073
+ > The `--table-columns` option only applies when using the default table output format (stdout).
1074
+
1075
+ **File Output Formats**
1076
+
1077
+ To save job lists to files instead of displaying them in the terminal:
1078
+
1079
+ ```bash
1080
+ # Save as CSV with default columns
1081
+ cloudos job list --profile my_profile --output-format csv
1082
+
1083
+ # Save as CSV with all available fields
1084
+ cloudos job list --profile my_profile --output-format csv --all-fields
1085
+
1086
+ # Save as JSON with complete job data
1087
+ cloudos job list --profile my_profile --output-format json
1025
1088
  ```
1089
+
1090
+ The expected output for file formats:
1091
+
1026
1092
  ```console
1027
1093
  Executing list...
1028
- Job list collected with a total of 276 jobs.
1029
- Job list saved to joblist.json
1094
+ Job list collected with a total of 10 jobs.
1095
+ Job list saved to joblist.csv
1030
1096
  ```
1031
1097
 
1032
- > [!NOTE]
1033
- > - `--page-size` has a maximum limit of 100 jobs per page
1034
- > - When filters or `--archived` flag are applied, pagination is applied to the filtered results
1035
- > - If both `--last-n-jobs` and pagination parameters are provided, only `--last-n-jobs` will be used
1098
+ **Filtering Jobs**
1036
1099
 
1037
- You find specific jobs within your workspace using the listing filtering options. Filters can be combined to narrow down results and all filtering is performed after retrieving jobs from the server.
1100
+ You can find specific jobs within your workspace using the filtering options. Filters can be combined to narrow down results and work with all output formats.
1038
1101
 
1039
1102
  **Available filters:**
1040
1103
 
1041
- - **`--filter-status`**: Filter jobs by execution status (e.g., completed, running, failed, aborted, queued, pending, initializing)
1104
+ - **`--filter-status`**: Filter jobs by execution status (e.g., completed, running, failed, aborted, initialising)
1042
1105
  - **`--filter-job-name`**: Filter jobs by job name (case insensitive partial matching)
1043
1106
  - **`--filter-project`**: Filter jobs by project name (exact match required)
1044
1107
  - **`--filter-workflow`**: Filter jobs by workflow/pipeline name (exact match required)
1045
1108
  - **`--filter-job-id`**: Filter jobs by specific job ID (exact match required)
1046
1109
  - **`--filter-only-mine`**: Show only jobs belonging to the current user
1047
- - **`--filter-owner`**: Show only job for the specified owner (exact match required, i.e needs to be in quotes and be "Name Surname")
1110
+ - **`--filter-owner`**: Show only jobs for the specified owner (exact match required, e.g., "John Doe")
1048
1111
  - **`--filter-queue`**: Filter jobs by queue name (only applies to batch jobs)
1049
1112
 
1050
1113
  **Filtering Examples**
1051
1114
 
1052
- You can find specific jobs within your workspace using the listing filtering options. Filters can be combined to narrow down results and all filtering is performed after retrieving jobs from the server.
1053
-
1054
1115
  Using pagination approach (default):
1116
+
1055
1117
  ```bash
1056
- # Get completed jobs from page 1 (default 20 jobs)
1118
+ # Get completed jobs from page 1 (default 10 jobs)
1057
1119
  cloudos job list --profile my_profile --filter-status completed
1058
1120
 
1059
- # Get completed jobs from page 2 with 15 jobs per page
1060
- cloudos job list --profile my_profile --page 2 --page-size 15 --filter-status completed
1121
+ # Get completed jobs from page 2 with 20 jobs per page
1122
+ cloudos job list --profile my_profile --page 2 --page-size 20 --filter-status completed
1061
1123
  ```
1062
1124
 
1063
1125
  Using last-n-jobs approach:
1126
+
1064
1127
  ```bash
1065
1128
  # Get all completed jobs from the last 50 jobs
1066
1129
  cloudos job list --profile my_profile --last-n-jobs 50 --filter-status completed
1067
1130
  ```
1068
1131
 
1069
1132
  Find jobs with "analysis" in the name from a specific project:
1133
+
1070
1134
  ```bash
1071
- # Using pagination (gets first 20 matching jobs)
1135
+ # Using pagination (gets first 10 matching jobs)
1072
1136
  cloudos job list --profile my_profile --filter-job-name analysis --filter-project "My Research Project"
1073
1137
 
1074
1138
  # Using last-n-jobs
@@ -1076,18 +1140,20 @@ cloudos job list --profile my_profile --last-n-jobs 100 --filter-job-name analys
1076
1140
  ```
1077
1141
 
1078
1142
  Get all jobs using a specific workflow and queue:
1143
+
1079
1144
  ```bash
1080
1145
  # Using pagination with larger page size
1081
1146
  cloudos job list --profile my_profile --page-size 50 --filter-workflow rnatoy --filter-queue high-priority-queue
1082
1147
 
1083
1148
  # Using last-n-jobs to search all jobs
1084
- cloudos job list --profile my_profile --last-n-jobs 'all' --filter-workflow rnatoy --filter-queue high-priority-queue
1149
+ cloudos job list --profile my_profile --last-n-jobs all --filter-workflow rnatoy --filter-queue high-priority-queue
1085
1150
  ```
1086
1151
 
1087
1152
  > [!NOTE]
1088
1153
  > - Project and workflow names must match exactly (case sensitive)
1089
1154
  > - Job name filtering is case insensitive and supports partial matches
1090
1155
  > - The `--last` flag can be used with `--filter-workflow` when multiple workflows have the same name
1156
+ > - When filters are applied, pagination information reflects the filtered results
1091
1157
 
1092
1158
  #### Get Job Costs
1093
1159
 
@@ -2064,7 +2130,8 @@ You can also collect your last 30 submitted jobs for a given workspace using the
2064
2130
  following command.
2065
2131
 
2066
2132
  ```python
2067
- my_jobs_r = j.get_job_list(workspace_id)
2133
+ result = j.get_job_list(workspace_id)
2134
+ my_jobs_r = result['jobs'] # Extract jobs list from the result
2068
2135
  my_jobs = j.process_job_list(my_jobs_r)
2069
2136
  print(my_jobs)
2070
2137
  ```