|
23 | 23 | { |
24 | 24 | "cell_type": "code", |
25 | 25 | "execution_count": 1, |
26 | | - "metadata": {}, |
| 26 | + "metadata": { |
| 27 | + "execution": { |
| 28 | + "iopub.execute_input": "2026-04-02T11:23:48.226452Z", |
| 29 | + "iopub.status.busy": "2026-04-02T11:23:48.226125Z", |
| 30 | + "iopub.status.idle": "2026-04-02T11:23:58.272174Z", |
| 31 | + "shell.execute_reply": "2026-04-02T11:23:58.270996Z" |
| 32 | + } |
| 33 | + }, |
27 | 34 | "outputs": [ |
28 | 35 | { |
29 | 36 | "name": "stderr", |
|
38 | 45 | "output_type": "stream", |
39 | 46 | "text": [ |
40 | 47 | "Authentication successful.\n", |
41 | | - "DatabaseAccessor initialized. Connections will be created on first access.\n", |
| 48 | + "DatabaseAccessor initialized. Connections will be created on first access.\n" |
| 49 | + ] |
| 50 | + }, |
| 51 | + { |
| 52 | + "name": "stdout", |
| 53 | + "output_type": "stream", |
| 54 | + "text": [ |
42 | 55 | "TMS credentials ready: frontera, stampede3, ls6\n" |
43 | 56 | ] |
44 | 57 | } |
|
61 | 74 | { |
62 | 75 | "cell_type": "code", |
63 | 76 | "execution_count": 2, |
64 | | - "metadata": {}, |
| 77 | + "metadata": { |
| 78 | + "execution": { |
| 79 | + "iopub.execute_input": "2026-04-02T11:23:58.277168Z", |
| 80 | + "iopub.status.busy": "2026-04-02T11:23:58.276640Z", |
| 81 | + "iopub.status.idle": "2026-04-02T11:23:58.281010Z", |
| 82 | + "shell.execute_reply": "2026-04-02T11:23:58.280430Z" |
| 83 | + } |
| 84 | + }, |
65 | 85 | "outputs": [ |
66 | 86 | { |
67 | 87 | "name": "stdout", |
|
81 | 101 | { |
82 | 102 | "cell_type": "code", |
83 | 103 | "execution_count": 3, |
84 | | - "metadata": {}, |
| 104 | + "metadata": { |
| 105 | + "execution": { |
| 106 | + "iopub.execute_input": "2026-04-02T11:23:58.283209Z", |
| 107 | + "iopub.status.busy": "2026-04-02T11:23:58.283045Z", |
| 108 | + "iopub.status.idle": "2026-04-02T11:23:58.285824Z", |
| 109 | + "shell.execute_reply": "2026-04-02T11:23:58.285459Z" |
| 110 | + } |
| 111 | + }, |
85 | 112 | "outputs": [ |
86 | 113 | { |
87 | 114 | "name": "stdout", |
|
101 | 128 | { |
102 | 129 | "cell_type": "code", |
103 | 130 | "execution_count": 4, |
104 | | - "metadata": {}, |
| 131 | + "metadata": { |
| 132 | + "execution": { |
| 133 | + "iopub.execute_input": "2026-04-02T11:23:58.287671Z", |
| 134 | + "iopub.status.busy": "2026-04-02T11:23:58.287484Z", |
| 135 | + "iopub.status.idle": "2026-04-02T11:23:58.289812Z", |
| 136 | + "shell.execute_reply": "2026-04-02T11:23:58.289503Z" |
| 137 | + } |
| 138 | + }, |
105 | 139 | "outputs": [ |
106 | 140 | { |
107 | 141 | "name": "stdout", |
|
121 | 155 | { |
122 | 156 | "cell_type": "code", |
123 | 157 | "execution_count": 5, |
124 | | - "metadata": {}, |
| 158 | + "metadata": { |
| 159 | + "execution": { |
| 160 | + "iopub.execute_input": "2026-04-02T11:23:58.291487Z", |
| 161 | + "iopub.status.busy": "2026-04-02T11:23:58.291345Z", |
| 162 | + "iopub.status.idle": "2026-04-02T11:23:58.293263Z", |
| 163 | + "shell.execute_reply": "2026-04-02T11:23:58.292965Z" |
| 164 | + } |
| 165 | + }, |
125 | 166 | "outputs": [ |
126 | 167 | { |
127 | 168 | "name": "stdout", |
|
141 | 182 | { |
142 | 183 | "cell_type": "code", |
143 | 184 | "execution_count": 6, |
144 | | - "metadata": {}, |
| 185 | + "metadata": { |
| 186 | + "execution": { |
| 187 | + "iopub.execute_input": "2026-04-02T11:23:58.294816Z", |
| 188 | + "iopub.status.busy": "2026-04-02T11:23:58.294673Z", |
| 189 | + "iopub.status.idle": "2026-04-02T11:23:58.574276Z", |
| 190 | + "shell.execute_reply": "2026-04-02T11:23:58.573185Z" |
| 191 | + } |
| 192 | + }, |
145 | 193 | "outputs": [ |
146 | 194 | { |
147 | 195 | "name": "stdout", |
|
168 | 216 | { |
169 | 217 | "cell_type": "code", |
170 | 218 | "execution_count": 7, |
171 | | - "metadata": {}, |
| 219 | + "metadata": { |
| 220 | + "execution": { |
| 221 | + "iopub.execute_input": "2026-04-02T11:23:58.577503Z", |
| 222 | + "iopub.status.busy": "2026-04-02T11:23:58.577281Z", |
| 223 | + "iopub.status.idle": "2026-04-02T11:23:58.992222Z", |
| 224 | + "shell.execute_reply": "2026-04-02T11:23:58.991054Z" |
| 225 | + } |
| 226 | + }, |
172 | 227 | "outputs": [ |
173 | 228 | { |
174 | 229 | "name": "stdout", |
175 | 230 | "output_type": "stream", |
176 | 231 | "text": [ |
177 | 232 | "Translated '/CommunityData/' to 'tapis://designsafe.storage.community/'\n", |
178 | | - "Listing files in system 'designsafe.storage.community' at path ''...\n" |
| 233 | + "Listing files in system 'designsafe.storage.community' at path '/'...\n" |
179 | 234 | ] |
180 | 235 | }, |
181 | 236 | { |
182 | | - "ename": "FileOperationError", |
183 | | - "evalue": "Tapis file listing failed for 'tapis://designsafe.storage.community/': message: path is a required argument and cannot be None.", |
184 | | - "output_type": "error", |
185 | | - "traceback": [ |
186 | | - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", |
187 | | - "\u001b[31mInvalidInputError\u001b[39m Traceback (most recent call last)", |
188 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/dev/DesignSafe/Dapi-Tapis/dapi/dapi/files.py:548\u001b[39m, in \u001b[36mlist_files\u001b[39m\u001b[34m(t, remote_uri, limit, offset)\u001b[39m\n\u001b[32m 547\u001b[39m encoded_path = _safe_quote(path)\n\u001b[32m--> \u001b[39m\u001b[32m548\u001b[39m results = \u001b[43mt\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfiles\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlistFiles\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 549\u001b[39m \u001b[43m \u001b[49m\u001b[43msystemId\u001b[49m\u001b[43m=\u001b[49m\u001b[43msystem_id\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m=\u001b[49m\u001b[43mencoded_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlimit\u001b[49m\u001b[43m=\u001b[49m\u001b[43mlimit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moffset\u001b[49m\u001b[43m=\u001b[49m\u001b[43moffset\u001b[49m\n\u001b[32m 550\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 551\u001b[39m \u001b[38;5;28mprint\u001b[39m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mFound \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(results)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m items.\u001b[39m\u001b[33m\"\u001b[39m)\n", |
189 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/dev/DesignSafe/Dapi-Tapis/dapi/.venv/lib/python3.13/site-packages/tapipy/util.py:152\u001b[39m, in \u001b[36mretriable.<locals>.wrapper\u001b[39m\u001b[34m(self, _config, *args, **kwargs)\u001b[39m\n\u001b[32m 150\u001b[39m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m152\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m exception\n\u001b[32m 154\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m exception\n", |
190 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/dev/DesignSafe/Dapi-Tapis/dapi/.venv/lib/python3.13/site-packages/tapipy/util.py:138\u001b[39m, in \u001b[36mretriable.<locals>.wrapper\u001b[39m\u001b[34m(self, _config, *args, **kwargs)\u001b[39m\n\u001b[32m 137\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m138\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mop__call__\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 139\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", |
191 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/dev/DesignSafe/Dapi-Tapis/dapi/.venv/lib/python3.13/site-packages/tapipy/tapis.py:1024\u001b[39m, in \u001b[36mOperation.__call__\u001b[39m\u001b[34m(self, **kwargs)\u001b[39m\n\u001b[32m 1023\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m param.get(\u001b[33m\"\u001b[39m\u001b[33mrequired\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m p_val:\n\u001b[32m-> \u001b[39m\u001b[32m1024\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m errors.InvalidInputError(msg=\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mparam[\u001b[33m'\u001b[39m\u001b[33mname\u001b[39m\u001b[33m'\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m is a required argument and cannot be None.\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 1025\u001b[39m \u001b[38;5;66;03m# replace the parameter in the path template with the parameter value\u001b[39;00m\n", |
192 | | - "\u001b[31mInvalidInputError\u001b[39m: message: path is a required argument and cannot be None.", |
193 | | - "\nThe above exception was the direct cause of the following exception:\n", |
194 | | - "\u001b[31mFileOperationError\u001b[39m Traceback (most recent call last)", |
195 | | - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[7]\u001b[39m\u001b[32m, line 3\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;66;03m# List files in CommunityData\u001b[39;00m\n\u001b[32m 2\u001b[39m uri = ds.files.to_uri(\u001b[33m\"\u001b[39m\u001b[33m/CommunityData/\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m files = \u001b[43mds\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfiles\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlist\u001b[49m\u001b[43m(\u001b[49m\u001b[43muri\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 4\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m files[:\u001b[32m10\u001b[39m]:\n\u001b[32m 5\u001b[39m \u001b[38;5;28mprint\u001b[39m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mf.name\u001b[38;5;132;01m:\u001b[39;00m\u001b[33m50s\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mf.type\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m)\n", |
196 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/dev/DesignSafe/Dapi-Tapis/dapi/dapi/client.py:250\u001b[39m, in \u001b[36mFileMethods.list\u001b[39m\u001b[34m(self, *args, **kwargs)\u001b[39m\n\u001b[32m 235\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mlist\u001b[39m(\u001b[38;5;28mself\u001b[39m, *args, **kwargs) -> List[Tapis]:\n\u001b[32m 236\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"List files and directories in a Tapis storage system path.\u001b[39;00m\n\u001b[32m 237\u001b[39m \n\u001b[32m 238\u001b[39m \u001b[33;03m This is a convenience wrapper around files_module.list_files().\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 248\u001b[39m \u001b[33;03m FileOperationError: If the listing operation fails.\u001b[39;00m\n\u001b[32m 249\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m250\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfiles_module\u001b[49m\u001b[43m.\u001b[49m\u001b[43mlist_files\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_tapis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", |
197 | | - "\u001b[36mFile \u001b[39m\u001b[32m~/dev/DesignSafe/Dapi-Tapis/dapi/dapi/files.py:557\u001b[39m, in \u001b[36mlist_files\u001b[39m\u001b[34m(t, remote_uri, limit, offset)\u001b[39m\n\u001b[32m 555\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m FileOperationError(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mRemote path not found at \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mremote_uri\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01me\u001b[39;00m\n\u001b[32m 556\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m557\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m FileOperationError(\n\u001b[32m 558\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mTapis file listing failed for \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mremote_uri\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m\n\u001b[32m 559\u001b[39m ) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01me\u001b[39;00m\n\u001b[32m 560\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m (\u001b[38;5;167;01mValueError\u001b[39;00m, \u001b[38;5;167;01mException\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m 561\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m FileOperationError(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mFailed to list files at \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mremote_uri\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01me\u001b[39;00m\n", |
198 | | - "\u001b[31mFileOperationError\u001b[39m: Tapis file listing failed for 'tapis://designsafe.storage.community/': message: path is a required argument and cannot be None." |
| 237 | + "name": "stdout", |
| 238 | + "output_type": "stream", |
| 239 | + "text": [ |
| 240 | + "Found 30 items.\n", |
| 241 | + "- READ ME - How to contribute to Community Data dir\n", |
| 242 | + ".Trash dir\n", |
| 243 | + "app_examples dir\n", |
| 244 | + "CERA dir\n", |
| 245 | + "COSMOS_WCEE_2024_competition dir\n", |
| 246 | + "dapi dir\n", |
| 247 | + "DesignSafe_QuakeCoRE CI Workshop dir\n", |
| 248 | + "Education Resources dir\n", |
| 249 | + "geoclaw dir\n", |
| 250 | + "GIS_workshop dir\n" |
199 | 251 | ] |
200 | 252 | } |
201 | 253 | ], |
|
210 | 262 | { |
211 | 263 | "cell_type": "code", |
212 | 264 | "execution_count": 8, |
213 | | - "metadata": {}, |
| 265 | + "metadata": { |
| 266 | + "execution": { |
| 267 | + "iopub.execute_input": "2026-04-02T11:23:58.996165Z", |
| 268 | + "iopub.status.busy": "2026-04-02T11:23:58.995871Z", |
| 269 | + "iopub.status.idle": "2026-04-02T11:23:59.845844Z", |
| 270 | + "shell.execute_reply": "2026-04-02T11:23:59.844371Z" |
| 271 | + } |
| 272 | + }, |
214 | 273 | "outputs": [ |
215 | 274 | { |
216 | 275 | "name": "stdout", |
217 | 276 | "output_type": "stream", |
218 | 277 | "text": [ |
219 | 278 | "Translated '/MyProjects/PRJ-1305/Training/' to 'tapis://project-7997906542076432871-242ac11c-0001-012/Training/'\n", |
220 | | - "Listing files in system 'project-7997906542076432871-242ac11c-0001-012' at path 'Training/'...\n", |
| 279 | + "Listing files in system 'project-7997906542076432871-242ac11c-0001-012' at path 'Training/'...\n" |
| 280 | + ] |
| 281 | + }, |
| 282 | + { |
| 283 | + "name": "stdout", |
| 284 | + "output_type": "stream", |
| 285 | + "text": [ |
221 | 286 | "Found 26 items.\n", |
222 | 287 | "2023-NHERI-Academy dir\n", |
223 | 288 | "2024-NHERI-AI-Academy dir\n", |
|
250 | 315 | { |
251 | 316 | "cell_type": "code", |
252 | 317 | "execution_count": 9, |
253 | | - "metadata": {}, |
| 318 | + "metadata": { |
| 319 | + "execution": { |
| 320 | + "iopub.execute_input": "2026-04-02T11:23:59.850600Z", |
| 321 | + "iopub.status.busy": "2026-04-02T11:23:59.850244Z", |
| 322 | + "iopub.status.idle": "2026-04-02T11:23:59.854968Z", |
| 323 | + "shell.execute_reply": "2026-04-02T11:23:59.854337Z" |
| 324 | + } |
| 325 | + }, |
254 | 326 | "outputs": [ |
255 | 327 | { |
256 | 328 | "name": "stdout", |
|
280 | 352 | }, |
281 | 353 | { |
282 | 354 | "cell_type": "code", |
283 | | - "execution_count": null, |
284 | | - "metadata": {}, |
| 355 | + "execution_count": 10, |
| 356 | + "metadata": { |
| 357 | + "execution": { |
| 358 | + "iopub.execute_input": "2026-04-02T11:23:59.857123Z", |
| 359 | + "iopub.status.busy": "2026-04-02T11:23:59.856957Z", |
| 360 | + "iopub.status.idle": "2026-04-02T11:23:59.859021Z", |
| 361 | + "shell.execute_reply": "2026-04-02T11:23:59.858672Z" |
| 362 | + } |
| 363 | + }, |
285 | 364 | "outputs": [], |
286 | 365 | "source": [ |
287 | 366 | "# Upload a file to MyData\n", |
|
0 commit comments