|
15 | 15 | "metadata": {},
|
16 | 16 | "source": [
|
17 | 17 | "#### 1: Make sure that model assisted labeling is turned on for your project.\n",
|
| 18 | + " * This is the default, but can be manually turned on as well.\n", |
18 | 19 | " * You can do that from the web ui or with the following code:\n",
|
19 | 20 | "``` project.enable_model_assisted_labeling()```"
|
20 | 21 | ]
|
|
59 | 60 | },
|
60 | 61 | {
|
61 | 62 | "cell_type": "code",
|
62 |
| - "execution_count": 1, |
| 63 | + "execution_count": null, |
63 | 64 | "id": "dimensional-celebrity",
|
64 | 65 | "metadata": {},
|
65 | 66 | "outputs": [],
|
|
90 | 91 | },
|
91 | 92 | {
|
92 | 93 | "cell_type": "code",
|
93 |
| - "execution_count": 3, |
| 94 | + "execution_count": null, |
94 | 95 | "id": "entire-mechanics",
|
95 | 96 | "metadata": {},
|
96 | 97 | "outputs": [],
|
|
113 | 114 | },
|
114 | 115 | {
|
115 | 116 | "cell_type": "code",
|
116 |
| - "execution_count": 4, |
| 117 | + "execution_count": 6, |
117 | 118 | "id": "indoor-pharmacy",
|
118 | 119 | "metadata": {},
|
119 | 120 | "outputs": [],
|
|
124 | 125 | },
|
125 | 126 | {
|
126 | 127 | "cell_type": "code",
|
127 |
| - "execution_count": 5, |
| 128 | + "execution_count": null, |
128 | 129 | "id": "healthy-perry",
|
129 | 130 | "metadata": {},
|
130 | 131 | "outputs": [],
|
|
134 | 135 | },
|
135 | 136 | {
|
136 | 137 | "cell_type": "code",
|
137 |
| - "execution_count": 6, |
| 138 | + "execution_count": 8, |
138 | 139 | "id": "instrumental-ontario",
|
139 | 140 | "metadata": {},
|
140 | 141 | "outputs": [],
|
|
146 | 147 | },
|
147 | 148 | {
|
148 | 149 | "cell_type": "code",
|
149 |
| - "execution_count": 7, |
| 150 | + "execution_count": 9, |
150 | 151 | "id": "particular-blocking",
|
151 | 152 | "metadata": {},
|
152 | 153 | "outputs": [],
|
|
164 | 165 | },
|
165 | 166 | {
|
166 | 167 | "cell_type": "code",
|
167 |
| - "execution_count": 8, |
| 168 | + "execution_count": 26, |
| 169 | + "id": "5147f018-daac-4f7e-8e71-f32587604515", |
| 170 | + "metadata": {}, |
| 171 | + "outputs": [ |
| 172 | + { |
| 173 | + "data": { |
| 174 | + "text/plain": [ |
| 175 | + "'cky4mzhmknvos0zcwexjj9nc0'" |
| 176 | + ] |
| 177 | + }, |
| 178 | + "execution_count": 26, |
| 179 | + "metadata": {}, |
| 180 | + "output_type": "execute_result" |
| 181 | + } |
| 182 | + ], |
| 183 | + "source": [ |
| 184 | + "list(list(project.datasets())[0].data_rows())[0].uid" |
| 185 | + ] |
| 186 | + }, |
| 187 | + { |
| 188 | + "cell_type": "code", |
| 189 | + "execution_count": 27, |
168 | 190 | "id": "cross-assumption",
|
169 | 191 | "metadata": {},
|
170 | 192 | "outputs": [],
|
|
173 | 195 | " \"uuid\":\n",
|
174 | 196 | " \"1b5762e9-416c-44cf-9a5f-07effb51f863\",\n",
|
175 | 197 | " \"schemaId\":\n",
|
176 |
| - " ontology.tools[0].feature_schema_id,\n", |
| 198 | + "# ontology.tools[0].feature_schema_id,\n", |
| 199 | + " list(list(project.datasets())[0].data_rows())[0].uid,\n", |
177 | 200 | " \"dataRow\": {\n",
|
178 | 201 | " \"id\":\n",
|
179 |
| - " \"cjxav4aa07r1g0dsq70t9eveg\" #Invalid (not attached to this project) data_row.uid\n", |
| 202 | + " \"cky4mzhmknvos0zcwexjj9nc0\" #Invalid (not attached to this project) data_row.uid\n", |
180 | 203 | " },\n",
|
181 | 204 | " \"polygon\": [{\n",
|
182 | 205 | " \"x\": 2,\n",
|
|
196 | 219 | },
|
197 | 220 | {
|
198 | 221 | "cell_type": "code",
|
199 |
| - "execution_count": 9, |
200 |
| - "id": "monetary-catalyst", |
201 |
| - "metadata": {}, |
202 |
| - "outputs": [ |
203 |
| - { |
204 |
| - "data": { |
205 |
| - "text/plain": [ |
206 |
| - "'ckmunvlqt4w9u0y625l7cd7zq'" |
207 |
| - ] |
208 |
| - }, |
209 |
| - "execution_count": 8, |
210 |
| - "metadata": {}, |
211 |
| - "output_type": "execute_result" |
212 |
| - } |
213 |
| - ], |
214 |
| - "source": [ |
215 |
| - "list(list(project.datasets())[0].data_rows())[0].uid" |
216 |
| - ] |
217 |
| - }, |
218 |
| - { |
219 |
| - "cell_type": "code", |
220 |
| - "execution_count": 10, |
221 |
| - "id": "designing-cricket", |
| 222 | + "execution_count": 29, |
| 223 | + "id": "52d24602-b12d-468a-a44a-e0a1ba69c3fd", |
222 | 224 | "metadata": {},
|
223 | 225 | "outputs": [
|
224 | 226 | {
|
|
228 | 230 | "traceback": [
|
229 | 231 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
230 | 232 | "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
231 |
| - "\u001b[0;32m~/Library/Python/3.8/lib/python/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36m_validate_ndjson\u001b[0;34m(lines, project)\u001b[0m\n\u001b[1;32m 401\u001b[0m \u001b[0mannotation\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mNDAnnotation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 402\u001b[0;31m \u001b[0mannotation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_instance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_row_ids\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 403\u001b[0m \u001b[0muuid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mannotation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muuid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
232 |
| - "\u001b[0;32m~/Library/Python/3.8/lib/python/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36mvalidate_instance\u001b[0;34m(self, valid_datarows, valid_feature_schemas)\u001b[0m\n\u001b[1;32m 600\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_feature_schemas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalid_feature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 601\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_datarow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalid_datarows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 602\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
233 |
| - "\u001b[0;32m~/Library/Python/3.8/lib/python/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36mvalidate_datarow\u001b[0;34m(self, valid_datarows)\u001b[0m\n\u001b[1;32m 583\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataRow\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mid\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvalid_datarows\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 584\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 585\u001b[0m \u001b[0;34mf\"datarow {self.dataRow.id} is not attached to the specified project\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
234 |
| - "\u001b[0;31mValueError\u001b[0m: datarow cjxav4aa07r1g0dsq70t9eveg is not attached to the specified project", |
| 233 | + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36m_validate_ndjson\u001b[0;34m(lines, project)\u001b[0m\n\u001b[1;32m 428\u001b[0m \u001b[0mannotation\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mNDAnnotation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 429\u001b[0;31m \u001b[0mannotation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_instance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfeature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 430\u001b[0m \u001b[0muuid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mannotation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muuid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 234 | + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36mvalidate_instance\u001b[0;34m(self, valid_feature_schemas)\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvalidate_instance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalid_feature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 621\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_feature_schemas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalid_feature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 622\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
| 235 | + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36mvalidate_feature_schemas\u001b[0;34m(self, valid_feature_schemas)\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvalidate_feature_schemas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalid_feature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 701\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mNDBaseTool\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_feature_schemas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalid_feature_schemas\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 702\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mclassification\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassifications\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 236 | + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36mvalidate_feature_schemas\u001b[0;34m(self, valid_feature_schemas)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mschemaId\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvalid_feature_schemas\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 611\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 612\u001b[0m \u001b[0;34mf\"schema id {self.schemaId} is not valid for the provided project's ontology.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 237 | + "\u001b[0;31mValueError\u001b[0m: schema id cky4mzhmknvos0zcwexjj9nc0 is not valid for the provided project's ontology.", |
235 | 238 | "\nThe above exception was the direct cause of the following exception:\n",
|
236 | 239 | "\u001b[0;31mMALValidationError\u001b[0m Traceback (most recent call last)",
|
237 |
| - "\u001b[0;32m<ipython-input-9-9b20d211103c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0m_validate_ndjson\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpoly_example\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", |
238 |
| - "\u001b[0;32m~/Library/Python/3.8/lib/python/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36m_validate_ndjson\u001b[0;34m(lines, project)\u001b[0m\n\u001b[1;32m 408\u001b[0m \u001b[0muids\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0muuid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 409\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mpydantic\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mValidationError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 410\u001b[0;31m raise labelbox.exceptions.MALValidationError(\n\u001b[0m\u001b[1;32m 411\u001b[0m f\"Invalid NDJson on line {idx}\") from e\n\u001b[1;32m 412\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
| 240 | + "\u001b[0;32m<ipython-input-29-9b20d211103c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0m_validate_ndjson\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpoly_example\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mproject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", |
| 241 | + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/labelbox/schema/bulk_import_request.py\u001b[0m in \u001b[0;36m_validate_ndjson\u001b[0;34m(lines, project)\u001b[0m\n\u001b[1;32m 435\u001b[0m \u001b[0muids\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0muuid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 436\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mpydantic\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mValidationError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 437\u001b[0;31m raise labelbox.exceptions.MALValidationError(\n\u001b[0m\u001b[1;32m 438\u001b[0m f\"Invalid NDJson on line {idx}\") from e\n\u001b[1;32m 439\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
239 | 242 | "\u001b[0;31mMALValidationError\u001b[0m: Invalid NDJson on line 0('Invalid NDJson on line 0', None)"
|
240 | 243 | ]
|
241 | 244 | }
|
242 | 245 | ],
|
243 | 246 | "source": [
|
| 247 | + "#we can see that we did not pass in a valid schemaId - instead, we passed in the dataRow uid\n", |
| 248 | + "\n", |
244 | 249 | "_validate_ndjson([poly_example], project)"
|
245 | 250 | ]
|
246 | 251 | },
|
|
258 | 263 | },
|
259 | 264 | {
|
260 | 265 | "cell_type": "code",
|
261 |
| - "execution_count": 11, |
| 266 | + "execution_count": null, |
262 | 267 | "id": "thick-juvenile",
|
263 | 268 | "metadata": {},
|
264 | 269 | "outputs": [],
|
|
268 | 273 | "\n",
|
269 | 274 | "# Old way:\n",
|
270 | 275 | "name = str(uuid.uuid4())\n",
|
271 |
| - "bulk_import_request = project.upload_annotations(\n", |
| 276 | + "upload_task = project.upload_annotations(\n", |
272 | 277 | " name=name,\n",
|
273 | 278 | " annotations=[poly_example, invalid_example],\n",
|
274 | 279 | " validate=False # Turn this off or it will raise the error on the client side\n",
|
275 | 280 | ")\n",
|
276 |
| - "bulk_import_request.wait_until_done()" |
| 281 | + "upload_task.wait_until_done()" |
277 | 282 | ]
|
278 | 283 | },
|
279 | 284 | {
|
280 | 285 | "cell_type": "code",
|
281 |
| - "execution_count": 12, |
| 286 | + "execution_count": 14, |
282 | 287 | "id": "stock-correction",
|
283 | 288 | "metadata": {},
|
284 | 289 | "outputs": [
|
285 | 290 | {
|
286 | 291 | "name": "stdout",
|
287 | 292 | "output_type": "stream",
|
288 | 293 | "text": [
|
289 |
| - "{'uuid': '1b5762e9-416c-44cf-9a5f-07effb51f863', 'dataRow': {'id': 'cjxav4aa07r1g0dsq70t9eveg'}, 'status': 'FAILURE', 'errors': [{'name': 'DataRowNotFound', 'message': 'dataRow.id cjxav4aa07r1g0dsq70t9eveg invalid', 'additionalInfo': None}]}\n", |
290 |
| - "{'uuid': '1b5762e9-416c-44cf-9a5f-07effb51f863', 'dataRow': {'id': 'cjxav4aa07r1g0dsq70t9eveg'}, 'status': 'FAILURE', 'errors': [{'name': 'DataRowNotFound', 'message': 'dataRow.id cjxav4aa07r1g0dsq70t9eveg invalid', 'additionalInfo': None}, {'name': 'GeometryInvalid', 'message': 'Invalid geometry: Each linear ring must contain at least 4 positions', 'additionalInfo': None}]}\n" |
| 294 | + "[{'uuid': '1b5762e9-416c-44cf-9a5f-07effb51f863', 'dataRow': {'id': 'cjxav4aa07r1g0dsq70t9eveg'}, 'status': 'FAILURE', 'errors': [{'name': 'DataRowNotFound', 'message': 'dataRow.id cjxav4aa07r1g0dsq70t9eveg invalid', 'additionalInfo': None}]}, {'uuid': '1b5762e9-416c-44cf-9a5f-07effb51f863', 'dataRow': {'id': 'cjxav4aa07r1g0dsq70t9eveg'}, 'status': 'FAILURE', 'errors': [{'name': 'DataRowNotFound', 'message': 'dataRow.id cjxav4aa07r1g0dsq70t9eveg invalid', 'additionalInfo': None}]}]\n" |
291 | 295 | ]
|
292 | 296 | }
|
293 | 297 | ],
|
294 | 298 | "source": [
|
295 | 299 | "# Let's check the status:\n",
|
296 |
| - "for status in bulk_import_request.statuses:\n", |
297 |
| - " print(status)\n", |
298 |
| - "\n", |
299 |
| - "for error in bulk_import_request.errors:\n", |
300 |
| - " print(error)" |
| 300 | + "print(upload_task.errors)" |
301 | 301 | ]
|
302 | 302 | },
|
303 | 303 | {
|
|
310 | 310 | "# We can see that we are using invalid datarows (they don't belong to the project we are uploading to)\n",
|
311 | 311 | "# and that the geometry is invalid."
|
312 | 312 | ]
|
313 |
| - }, |
314 |
| - { |
315 |
| - "cell_type": "code", |
316 |
| - "execution_count": 14, |
317 |
| - "id": "clean-grave", |
318 |
| - "metadata": {}, |
319 |
| - "outputs": [], |
320 |
| - "source": [] |
321 | 313 | }
|
322 | 314 | ],
|
323 | 315 | "metadata": {
|
|
0 commit comments