diff --git a/use-cases/notebooks/commons.ipynb b/use-cases/notebooks/commons.ipynb new file mode 100644 index 0000000..664eef5 --- /dev/null +++ b/use-cases/notebooks/commons.ipynb @@ -0,0 +1,175 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c31f6b90-0ce8-4f90-a29d-0dc50c1496a0", + "metadata": { + "jp-MarkdownHeadingCollapsed": true, + "tags": [] + }, + "source": [ + "# Common Utilities" + ] + }, + { + "cell_type": "markdown", + "id": "83f8676a-8a81-44d8-82ad-8b3ab638467d", + "metadata": {}, + "source": [ + "## Common libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2dc4873b-9de5-442e-9902-2113414155eb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: simplejson in /opt/conda/lib/python3.9/site-packages (3.17.6)\n", + "Requirement already satisfied: rich[jupyter] in /opt/conda/lib/python3.9/site-packages (12.2.0)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (2.11.2)\n", + "Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (0.9.1)\n", + "Requirement already satisfied: ipywidgets<8.0.0,>=7.5.1 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (7.7.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.2.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.6.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.1.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (8.2.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.11.0)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.3)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (7.2.1)\n", + "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.1)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.9.0)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.5)\n", + "Requirement already satisfied: setuptools>=60 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (61.3.1)\n", + "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.1)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.5)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.27)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.8.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.4.0)\n", + "Requirement already satisfied: jupyter-core in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.9.2)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.9/site-packages (from widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.10)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.9/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.4)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (22.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.8.2)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.3)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.1.1)\n", + "Requirement already satisfied: Send2Trash>=1.8.0 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.8.0)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.1)\n", + "Requirement already satisfied: nbconvert>=5 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.5)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.9/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.5)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.0.5)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.2)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.0)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.6.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.1.1)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.4)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.2)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.1.0)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.13)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.10.0)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.16.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.9/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.9/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.15.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.9/site-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.3.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.1)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.9/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.21)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.9/site-packages (from packaging->bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.7)\n" + ] + } + ], + "source": [ + "import requests\n", + "\n", + "!pip install simplejson\n", + "import simplejson as json\n", + "\n", + "## Import Rich text support for pretty json \n", + "!pip install rich[jupyter]\n", + "import rich\n", + "from rich import print_json" + ] + }, + { + "cell_type": "markdown", + "id": "6bb61aa9-4ead-46c5-973b-f4b966eeb62d", + "metadata": {}, + "source": [ + "## Utility Functions" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "fd543e29-59fe-4c83-8892-658244a2df43", + "metadata": {}, + "outputs": [], + "source": [ + "## Define utility function for HTTP requests logging\n", + "def send(dest,data=None,method=\"GET\",params={}):\n", + " if verbose : print(\"GOING TO SEND \"+method+\" REQUEST TO \"+dest)\n", + " headers={\n", + " 'Content-type':'application/json', \n", + " 'Accept':'*/*',\n", + " 'gcube-token':gcube_token\n", + " }\n", + " if data is not None : print(\"Data is \"+str(data))\n", + " if method == \"GET\" : response = requests.get(url=dest,params=params,headers=headers)\n", + " if method == \"PUT\" : response = requests.put(url=dest,data=data,params=params,headers=headers)\n", + " if method == \"POST\" : response = requests.post(url=dest,data=data,params=params,headers=headers)\n", + " if method == \"DELETE\" : response = requests.delete(url=dest,data=data,params=params,headers=headers)\n", + " if verbose : print(\"RESPONSE STATUS \"+str(response.status_code)) \n", + " if response.status_code<200 or response.status_code>=300 : \n", + " if verbose :print(\"CAUSE \"+str(response.reason))\n", + " if verbose :print(response.text)\n", + " return json.loads(response.text)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96e527eb-7ebd-4c64-824a-edfd52349320", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/gCube CMS.ipynb b/use-cases/notebooks/gCube CMS.ipynb similarity index 51% rename from gCube CMS.ipynb rename to use-cases/notebooks/gCube CMS.ipynb index be0606a..5913f51 100644 --- a/gCube CMS.ipynb +++ b/use-cases/notebooks/gCube CMS.ipynb @@ -4,7 +4,6 @@ "cell_type": "markdown", "id": "64e0639b-c024-49eb-93ef-3c67539dec34", "metadata": { - "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ @@ -47,62 +46,90 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "fcc15ae5-fc3f-4146-b77c-bf23231c9ae6", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: simplejson in /opt/conda/lib/python3.9/site-packages (3.17.6)\n", + "Requirement already satisfied: rich[jupyter] in /opt/conda/lib/python3.9/site-packages (12.2.0)\n", + "Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (0.9.1)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (2.11.2)\n", + "Requirement already satisfied: ipywidgets<8.0.0,>=7.5.1 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (7.7.0)\n", + "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.1.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.2.0)\n", + "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (8.2.0)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.6.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.11.0)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (7.2.1)\n", + "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.1)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.9.0)\n", + "Requirement already satisfied: setuptools>=60 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (61.3.1)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.3)\n", + "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.5)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.8.0)\n", + "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", + "Requirement already satisfied: stack-data in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.5)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.27)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.4.0)\n", + "Requirement already satisfied: jupyter-core in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.9.2)\n", + "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.9/site-packages (from widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.10)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.9/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n", + "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.4.0)\n", + "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.8.2)\n", + "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.4)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (22.3.0)\n", + "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.3)\n", + "Requirement already satisfied: Send2Trash>=1.8.0 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.8.0)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.1.1)\n", + "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3.0)\n", + "Requirement already satisfied: nbconvert>=5 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.5)\n", + "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.1)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.9/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.5)\n", + "Requirement already satisfied: asttokens in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.0.5)\n", + "Requirement already satisfied: executing in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.2)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.10.0)\n", + "Requirement already satisfied: bleach in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.1.0)\n", + "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.4)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.13)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.1.1)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.6.0)\n", + "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.2)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.0)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.16.0)\n", + "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.9/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.9/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.15.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.9/site-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.3.1)\n", + "Requirement already satisfied: webencodings in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3)\n", + "Requirement already satisfied: pycparser in /opt/conda/lib/python3.9/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.21)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.9/site-packages (from packaging->bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.7)\n" + ] + } + ], "source": [ - "import requests\n", - "import json\n", - "\n", - "# These parameters should be discovered / initialized by common gcube libraries. \n", - "gcube_token = \"...\"\n", - "service_base_endpoint =\"https://geoportal.dev.int.d4science.net/geoportal-service/srv\"\n", - "\n", - "# Actual customizable parameters\n", - "ucid = \"basic\"\n", - "\n", - "\n", - "#NB The following should not be changed \n", - "projects_endpoint = service_base_endpoint + \"/projects/\"+ucid\n", - "ucd_endpoint = service_base_endpoint + \"/ucd/\"\n", - "plugins_endpoint=service_base_endpoint + \"/plugins/\"\n", - "\n", - "\n", - "## Import Rich text support for pretty json \n", - "!pip install rich[jupyter]\n", - "import rich\n", - "from rich import print_json\n", - "\n", - "## Define utility function for HTTP requests logging\n", - "def send(dest,data=None,method=\"GET\",params={}):\n", - " print(\"GOING TO SEND \"+method+\" REQUEST TO \"+dest)\n", - " headers={\n", - " 'Content-type':'application/json', \n", - " 'Accept':'*/*',\n", - " 'gcube-token':gcube_token\n", - " }\n", - " if data is not None : print(\"Data is \"+str(data))\n", - " if method == \"GET\" : response = requests.get(url=dest,params=params,headers=headers)\n", - " if method == \"PUT\" : response = requests.put(url=dest,data=data,params=params,headers=headers)\n", - " if method == \"POST\" : response = requests.post(url=dest,data=data,params=params,headers=headers)\n", - " if method == \"DELETE\" : response = requests.delete(url=dest,data=data,params=params,headers=headers)\n", - " print(\"RESPONSE STATUS \"+str(response.status_code)) \n", - " if response.status_code<200 or response.status_code>=300 : \n", - " print(\"CAUSE \"+str(response.reason))\n", - " print(response.text)\n", - " return json.loads(response.text)\n", - "\n", - "#print(send(method=\"GET\",dest=\"http://geoportal.dev.int.d4science.net/geoportal-service/srv/mongo-concessioni/\"))" + "%run commons.ipynb" ] }, { "cell_type": "markdown", "id": "2b565fd2-4884-4a01-a6f7-300ea8fd7028", "metadata": { - "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ @@ -160,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "1cf34b3e-56ca-43c7-8206-3e16cebb80e0", "metadata": {}, "outputs": [], @@ -171,10 +198,124 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "ba665887-9718-44ee-be51-62283fa2dbb2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/basic\n", + "Data is {\"myTitle\": \"Some Big Title\"}\n", + "RESPONSE STATUS 200\n", + "Resulting project is \n" + ] + }, + { + "data": { + "text/html": [ + "
{\n",
+       "  \"_id\": \"625042b202ad3d6126dfe5b5\",\n",
+       "  \"_version\": \"1.0.0\",\n",
+       "  \"_info\": {\n",
+       "    \"_creationInfo\": {\n",
+       "      \"_user\": {\n",
+       "        \"_username\": \"FAKE\"\n",
+       "      },\n",
+       "      \"_context\": {\n",
+       "        \"_id\": \"/gcube/devsec/devVRE\",\n",
+       "        \"_name\": \"/devVRE\"\n",
+       "      },\n",
+       "      \"_instant\": \"2022-04-08T16:12:01.449\"\n",
+       "    },\n",
+       "    \"_lastEditInfo\": null,\n",
+       "    \"_access\": {\n",
+       "      \"_policy\": \"OPEN\",\n",
+       "      \"_license\": \"\"\n",
+       "    }\n",
+       "  },\n",
+       "  \"_profileID\": \"basic\",\n",
+       "  \"_profileVersion\": \"1.0.0\",\n",
+       "  \"_lifecycleInformation\": {\n",
+       "    \"_phase\": \"DRAFT\",\n",
+       "    \"_lastInvokedStep\": null,\n",
+       "    \"_lastOperationStatus\": \"OK\",\n",
+       "    \"_errorMessages\": [],\n",
+       "    \"_warningMessages\": [],\n",
+       "    \"_triggeredEvents\": [\n",
+       "      {\n",
+       "        \"event\": \"INIT_DOCUMENT\",\n",
+       "        \"lastOperationStatus\": \"OK\",\n",
+       "        \"errorMessages\": null,\n",
+       "        \"warningMessages\": null\n",
+       "      }\n",
+       "    ],\n",
+       "    \"_notes\": null\n",
+       "  },\n",
+       "  \"_relationships\": null,\n",
+       "  \"_spatialReference\": null,\n",
+       "  \"_temporalReference\": null,\n",
+       "  \"_theDocument\": {\n",
+       "    \"myTitle\": \"Some Big Title\"\n",
+       "  },\n",
+       "  \"_lock\": null\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_id\"\u001b[0m: \u001b[32m\"625042b202ad3d6126dfe5b5\"\u001b[0m,\n", + " \u001b[1;34m\"_version\"\u001b[0m: \u001b[32m\"1.0.0\"\u001b[0m,\n", + " \u001b[1;34m\"_info\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_creationInfo\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_user\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_username\"\u001b[0m: \u001b[32m\"FAKE\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_context\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_id\"\u001b[0m: \u001b[32m\"/gcube/devsec/devVRE\"\u001b[0m,\n", + " \u001b[1;34m\"_name\"\u001b[0m: \u001b[32m\"/devVRE\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_instant\"\u001b[0m: \u001b[32m\"2022-04-08T16:12:01.449\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_lastEditInfo\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_access\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_policy\"\u001b[0m: \u001b[32m\"OPEN\"\u001b[0m,\n", + " \u001b[1;34m\"_license\"\u001b[0m: \u001b[32m\"\"\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_profileID\"\u001b[0m: \u001b[32m\"basic\"\u001b[0m,\n", + " \u001b[1;34m\"_profileVersion\"\u001b[0m: \u001b[32m\"1.0.0\"\u001b[0m,\n", + " \u001b[1;34m\"_lifecycleInformation\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_phase\"\u001b[0m: \u001b[32m\"DRAFT\"\u001b[0m,\n", + " \u001b[1;34m\"_lastInvokedStep\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_lastOperationStatus\"\u001b[0m: \u001b[32m\"OK\"\u001b[0m,\n", + " \u001b[1;34m\"_errorMessages\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_warningMessages\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_triggeredEvents\"\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"event\"\u001b[0m: \u001b[32m\"INIT_DOCUMENT\"\u001b[0m,\n", + " \u001b[1;34m\"lastOperationStatus\"\u001b[0m: \u001b[32m\"OK\"\u001b[0m,\n", + " \u001b[1;34m\"errorMessages\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"warningMessages\"\u001b[0m: \u001b[3;35mnull\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_notes\"\u001b[0m: \u001b[3;35mnull\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_relationships\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_spatialReference\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_temporalReference\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_theDocument\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"myTitle\"\u001b[0m: \u001b[32m\"Some Big Title\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_lock\"\u001b[0m: \u001b[3;35mnull\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "project= send(method=\"POST\",dest=projects_endpoint,data=json.dumps(doc))\n", "\n", @@ -206,12 +347,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "2b0076fa-0ab5-44a5-b069-2fdc0d6d70be", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+       "  \"myTitle\": \"Some Big Title\"\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"myTitle\"\u001b[0m: \u001b[32m\"Some Big Title\"\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "print_json(data=project[\"_theDocument\"])" ] @@ -230,12 +389,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "8e2fd339-4117-49d4-9a3c-d9463d35ba2d", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\"625042b202ad3d6126dfe5b5\"\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m\"625042b202ad3d6126dfe5b5\"\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "print_json(data=project[\"_id\"])" ] @@ -257,12 +430,58 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "228daf3a-ec36-403c-84f4-dc7ff1fde026", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+       "  \"_creationInfo\": {\n",
+       "    \"_user\": {\n",
+       "      \"_username\": \"FAKE\"\n",
+       "    },\n",
+       "    \"_context\": {\n",
+       "      \"_id\": \"/gcube/devsec/devVRE\",\n",
+       "      \"_name\": \"/devVRE\"\n",
+       "    },\n",
+       "    \"_instant\": \"2022-04-08T16:12:01.449\"\n",
+       "  },\n",
+       "  \"_lastEditInfo\": null,\n",
+       "  \"_access\": {\n",
+       "    \"_policy\": \"OPEN\",\n",
+       "    \"_license\": \"\"\n",
+       "  }\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_creationInfo\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_user\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_username\"\u001b[0m: \u001b[32m\"FAKE\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_context\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_id\"\u001b[0m: \u001b[32m\"/gcube/devsec/devVRE\"\u001b[0m,\n", + " \u001b[1;34m\"_name\"\u001b[0m: \u001b[32m\"/devVRE\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_instant\"\u001b[0m: \u001b[32m\"2022-04-08T16:12:01.449\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_lastEditInfo\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_access\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_policy\"\u001b[0m: \u001b[32m\"OPEN\"\u001b[0m,\n", + " \u001b[1;34m\"_license\"\u001b[0m: \u001b[32m\"\"\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "print_json(data=project[\"_info\"])" ] @@ -288,12 +507,56 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "d2059a6e-b1a5-484a-a48e-16158d6015d5", "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+       "  \"_phase\": \"DRAFT\",\n",
+       "  \"_lastInvokedStep\": null,\n",
+       "  \"_lastOperationStatus\": \"OK\",\n",
+       "  \"_errorMessages\": [],\n",
+       "  \"_warningMessages\": [],\n",
+       "  \"_triggeredEvents\": [\n",
+       "    {\n",
+       "      \"event\": \"INIT_DOCUMENT\",\n",
+       "      \"lastOperationStatus\": \"OK\",\n",
+       "      \"errorMessages\": null,\n",
+       "      \"warningMessages\": null\n",
+       "    }\n",
+       "  ],\n",
+       "  \"_notes\": null\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_phase\"\u001b[0m: \u001b[32m\"DRAFT\"\u001b[0m,\n", + " \u001b[1;34m\"_lastInvokedStep\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_lastOperationStatus\"\u001b[0m: \u001b[32m\"OK\"\u001b[0m,\n", + " \u001b[1;34m\"_errorMessages\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_warningMessages\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_triggeredEvents\"\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"event\"\u001b[0m: \u001b[32m\"INIT_DOCUMENT\"\u001b[0m,\n", + " \u001b[1;34m\"lastOperationStatus\"\u001b[0m: \u001b[32m\"OK\"\u001b[0m,\n", + " \u001b[1;34m\"errorMessages\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"warningMessages\"\u001b[0m: \u001b[3;35mnull\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_notes\"\u001b[0m: \u001b[3;35mnull\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "print_json(data=project[\"_lifecycleInformation\"])" ] @@ -370,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "4323986d-218f-4997-9fe0-c9ba9e3e3c84", "metadata": {}, "outputs": [], @@ -384,10 +647,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "6123e5e5-9150-47bd-a49a-b2bc21915d34", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GOING TO SEND PUT REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/basic/625042b202ad3d6126dfe5b5\n", + "Data is {\"myTitle\": \"My newer edited title\", \"section\": {\"sectionTitle\": \"My new SubSection\"}}\n", + "RESPONSE STATUS 200\n" + ] + }, + { + "data": { + "text/html": [ + "
{\n",
+       "  \"myTitle\": \"My newer edited title\",\n",
+       "  \"section\": {\n",
+       "    \"sectionTitle\": \"My new SubSection\"\n",
+       "  }\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"myTitle\"\u001b[0m: \u001b[32m\"My newer edited title\"\u001b[0m,\n", + " \u001b[1;34m\"section\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"sectionTitle\"\u001b[0m: \u001b[32m\"My new SubSection\"\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# NB uncomment to actually perform edit\n", "project = send(method=\"PUT\",data=json.dumps(doc),dest=projects_endpoint+\"/\"+str(project[\"_id\"]))\n", @@ -437,7 +733,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "07965581-532d-45e8-bbf8-0bbec1a15273", "metadata": {}, "outputs": [], @@ -463,10 +759,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "832e043c-870b-4509-be92-d90865cfd105", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/basic/registerFiles/625042b202ad3d6126dfe5b5\n", + "Data is {\"fieldDefinitionPath\": \"$.section._children[?(@.fileset)]\", \"parentPath\": \"$.section\", \"fieldName\": \"fileset\", \"streams\": [{\"url\": \"https://www.cnr.it/sites/all/themes/custom/cnr03_theme/img/cnrlogo.svg\", \"filename\": \"myLogo.svg\"}]}\n", + "RESPONSE STATUS 500\n", + "CAUSE \n", + "HTTP Status 500 – Internal Server Error

HTTP Status 500 – Internal Server Error


Type Status Report

Message Internal Server Error

Description The server encountered an unexpected condition that prevented it from fulfilling the request.


Apache Tomcat/8.5.39 (Ubuntu)

\n" + ] + }, + { + "ename": "JSONDecodeError", + "evalue": "Expecting value: line 1 column 1 (char 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [11]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m project \u001b[38;5;241m=\u001b[39m \u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mPOST\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43mdest\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mprojects_endpoint\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m/registerFiles/\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mproject\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m_id\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdumps\u001b[49m\u001b[43m(\u001b[49m\u001b[43mregisterFilesetRequest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mOur Registered FileSet\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 4\u001b[0m print_json(data\u001b[38;5;241m=\u001b[39mproject[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_theDocument\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msection\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfileset\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n", + "Input \u001b[0;32mIn [1]\u001b[0m, in \u001b[0;36msend\u001b[0;34m(dest, data, method, params)\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCAUSE \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m+\u001b[39m\u001b[38;5;28mstr\u001b[39m(response\u001b[38;5;241m.\u001b[39mreason))\n\u001b[1;32m 39\u001b[0m \u001b[38;5;28mprint\u001b[39m(response\u001b[38;5;241m.\u001b[39mtext)\n\u001b[0;32m---> 40\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/json/__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 341\u001b[0m s \u001b[38;5;241m=\u001b[39m s\u001b[38;5;241m.\u001b[39mdecode(detect_encoding(s), \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msurrogatepass\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[0;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;241m=\u001b[39m JSONDecoder\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/json/decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdecode\u001b[39m(\u001b[38;5;28mself\u001b[39m, s, _w\u001b[38;5;241m=\u001b[39mWHITESPACE\u001b[38;5;241m.\u001b[39mmatch):\n\u001b[1;32m 333\u001b[0m \u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;124;03m containing a JSON document).\u001b[39;00m\n\u001b[1;32m 335\u001b[0m \n\u001b[1;32m 336\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m end \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28mlen\u001b[39m(s):\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/json/decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 353\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscan_once(s, idx)\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", + "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" + ] + } + ], "source": [ "project = send(method=\"POST\",dest=projects_endpoint+\"/registerFiles/\"+str(project[\"_id\"]),data=json.dumps(registerFilesetRequest))\n", "\n", @@ -519,11 +842,10 @@ "id": "e288d77d-70f6-48bc-b78b-16e673d38100", "metadata": {}, "source": [ - "Once our request is ready we can send it to server with a POST request at SERVICE_BASE_ENDPOINT/projects/UCID/step/STEPID/<\\strong>ID where:\\\n", + "Once our request is ready we can send it to server with a POST request at SERVICE_BASE_ENDPOINT/projects/UCID/step/ID where:\\\n", "- SERVICE_BASE_ENDPOINT should be discovered from the infrastructure's Information System\n", "- UCID is the ID of the Use Case Descriptor to be used with this project\n", "- ID is our project Unique Identifier\n", - "- ID is our project Unique Identifier\n", "\n", "Depending on implementations and configurations, invoked STEP may expect/require some additional parameters.\\\n", "These can be specified in the request body as a simple JSON object.\n", @@ -997,7 +1319,6 @@ "cell_type": "markdown", "id": "4e9068c1-2a16-4890-8f4d-9966c0352f0c", "metadata": { - "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ @@ -1024,7 +1345,6 @@ "cell_type": "markdown", "id": "13fe4942-e7cb-4590-b76d-5d8448041eae", "metadata": { - "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ @@ -1302,6 +1622,8 @@ "version": "3.9.10" }, "toc-autonumbering": true, + "toc-showcode": false, + "toc-showmarkdowntxt": false, "toc-showtags": false }, "nbformat": 4, diff --git a/use-cases/notebooks/gna/MOSI read from csv row.json b/use-cases/notebooks/gna/MOSI read from csv row.json new file mode 100644 index 0000000..3ac4fc6 --- /dev/null +++ b/use-cases/notebooks/gna/MOSI read from csv row.json @@ -0,0 +1,169 @@ +{ + "CD" : { + "TSK" : row.TSK, + "CMD" : row.CMD, + "ESC" : row.ESC, + "ECP" : row.ECP, + "CBC" : row.CBC, + "ACC" : { + "ACCE" : row.ACCE, + "ACCC" : row.ACCC, + "ACCS" : row.ACCS + } + }, + "OG" : { + "AMB" : row.AMB, + "AMA" : row.AMA, + "OGD": row.OGD, + "OGT" : row.OGT, + "OGN" : row.OGN + }, + "LC" : { + "LCS" : row.LCS, + "LCR" : row.LCR, + "LCP" : row.LCP, + "LCC" : row.LCC, + "LCI" : row.LCI, + "PVL" : row.PVL, + "PVZ" : row.PVZ, + "ACB" : { + "ACBA" : row.ACBA, + "ACBS" : row.ACBS + } + }, + "DT" : { + "DTR" : row.DTR, + "DTT" : row.DTT + }, + "DA" : { + "DES" : row.DES, + "OGM": row.OGM + }, + "GE" : { + "GEL" : row.GEL, + "GET" : row.GET, + "GEP" : row.GEP, + "GEC" : { + "GECX" : row.GECX, + "GECY" : row.GECY + }, + "GPT": row.GPT, + "GPM": row.GPM, + "GPB" : { + "GPBB" : row.GPBB + } + }, + "TU" : { + "CDG": { + "CDGG": row.CDGG + }, + "BPT" : row.BPT, + "NVC": { + "NVCT" : row.NVCT, + "NVCM" : row.NVCM, + "NVCE" : row.NVCE, + "NVCP" : row.NVCP, + "NWCN" : row.NWCN + }, + "STU":{ + "STUE" : row.STUE, + "STUT" : row.STUT, + "STUS" : row.STUS + } + }, + "RE" : { + "RCG": { + "RCGV" : row.RCGV, + "RCGD" : row.RCGD, + "RCGT" : row.RCGT, + "RCGE" : row.RCGE + }, + "MTP" : { + "MTPC": row.MTPC, + "MTPZ" : row.MTPZ + }, + "MTZ" : row.MTZ, + "FOI" : { + "FOIT" : row.FOIT, + "FOIR" : row.FOIR, + "FOIA" : row.FOIA, + "FOIQ" : row.FOIQ, + "FOIF" : row.FOIF, + "FOIO" : row.FOIO, + "FOIN" : row.FOIN + } + }, + "IP" : { + "IAP" : { + "IAPN" : row.IAPN, + "IAPR" : row.IAPR, + "IAPI" : row.IAPI, + "IAPS" : row.IAPS + } + }, + "MT" : { + "MIS" : { + "MISZ" : row.MISZ, + "MISU" : row.MISU, + "MISM" : row.MISM + }, + "MTA" : { + "MTAP" : row.MTAP, + "MTAM" : row.MTAM, + "MTAX" : row.MTAX, + "MTAR" : row.MTAR, + "MTAS" : row.MTAS + } + }, + "VR" : { + "VRP" : { + "VRPI" : row.VRPI, + "VRPA" : row.VRPA, + "VRPV" : row.VRPV, + "VRPS" : row.VRPS, + "VRPN" : row.VRPN + }, + "VRR" : { + "VRRP" : row.VRRP, + "VRRO" : row.VRRO, + "VRRR" : row.VRRR, + "VRRS" : row.VRRS, + "VRRN" : row.VRRN + } + }, + "DO" : { + "FTA" : { + "FTAN" : row.FTAN, + "FTAX" : row.FTAX, + "FTAP" : row.FTAP, + "FTAC" : row.FTAC + }, + "DRA" : { + "DRAN" : row.DRAN, + "DRAX" : row.DRAX, + "DRAT" : row.DRAT, + "DRAC" : row.DRAC, + "DRAK" : row.DRAK + }, + "FNT" : { + "FNTI" : row.FNTI, + "FNTX" : row.FNTX, + "FNTP" : row.FNTP, + "FNTS" : row.FNTS, + "FNTK" : row.FNTK + }, + "BIB" : { + "BIBR" : row.BIBR, + "BIBX" : row.BIBX, + "BIBM" : row.BIBM, + "BIBN" : row.BIBN + } + }, + "CM" : { + "FUR" : row.FUR, + "CMR" : row.CMR, + "CMC" : row.CMC, + "CMA" : row.CMA, + "ADP" : row.ADP + } +} \ No newline at end of file diff --git a/use-cases/notebooks/gna/MOSI.ipynb b/use-cases/notebooks/gna/MOSI.ipynb index 5e95d58..41d1752 100644 --- a/use-cases/notebooks/gna/MOSI.ipynb +++ b/use-cases/notebooks/gna/MOSI.ipynb @@ -5,19 +5,33 @@ "id": "ad36ae4c-6359-41f6-b9c5-971c96a678f0", "metadata": {}, "source": [ - "# MOSI UseCase\n", + "# GNA : MOSI UseCase\n", "\n", - "This notebooks :\n", + "This notebooks provides a testing bed and configuration utility for GNA - MOSI use case served by gCube CMS Suite, by:\n", "\n", - "- Creates UCD\n", - "- Creates UCD Schema \n", - "- Insert MOSI Record\n", - "- Publishes" + "- Creating UCD from schema URL\n", + "- Registering MOSI UCD in corrent gCube Context\n", + "- Parsing and registration of MOSI records from CSV (if provided)\n", + "- Publication of registered MOSI records\n", + "- Deletion of registered MOSI records\n", + "\n", + "NB This notebook relies on commons.ipynb distributed along with gCube CMS Suite" + ] + }, + { + "cell_type": "markdown", + "id": "f82576d0-5896-4c6f-ad55-bef0bff21fdb", + "metadata": { + "jp-MarkdownHeadingCollapsed": true, + "tags": [] + }, + "source": [ + "## Parameters Initialization" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 32, "id": "ca65023e-ae07-45de-ba75-4d39d66df53b", "metadata": { "tags": [] @@ -27,75 +41,74 @@ "name": "stdout", "output_type": "stream", "text": [ + "Requirement already satisfied: simplejson in /opt/conda/lib/python3.9/site-packages (3.17.6)\n", "Requirement already satisfied: rich[jupyter] in /opt/conda/lib/python3.9/site-packages (12.2.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (2.11.2)\n", "Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (0.9.1)\n", "Requirement already satisfied: ipywidgets<8.0.0,>=7.5.1 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (7.7.0)\n", - "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.6.0)\n", - "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", - "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.11.0)\n", "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.1.0)\n", - "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (8.2.0)\n", - "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.2.0)\n", + "Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", "Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", - "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.3)\n", - "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.5)\n", - "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (7.2.1)\n", + "Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.6.0)\n", + "Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (8.2.0)\n", + "Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.11.0)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.2.0)\n", "Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.1)\n", - "Requirement already satisfied: psutil in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.9.0)\n", "Requirement already satisfied: setuptools>=60 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (61.3.1)\n", + "Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.5)\n", + "Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.3)\n", + "Requirement already satisfied: psutil in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.9.0)\n", + "Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (7.2.1)\n", "Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.1)\n", - "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.8.0)\n", - "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.5)\n", - "Requirement already satisfied: decorator in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", "Requirement already satisfied: backcall in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", - "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.27)\n", "Requirement already satisfied: stack-data in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n", "Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.27)\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.5)\n", + "Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.8.0)\n", + "Requirement already satisfied: decorator in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n", "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.4.0)\n", "Requirement already satisfied: jupyter-core in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.9.2)\n", "Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.9/site-packages (from widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.10)\n", "Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.9/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n", "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n", "Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.4.0)\n", - "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (22.3.0)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.8.2)\n", + "Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (22.3.0)\n", "Requirement already satisfied: entrypoints in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.4)\n", - "Requirement already satisfied: Send2Trash>=1.8.0 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.8.0)\n", "Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3.0)\n", - "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.1.1)\n", "Requirement already satisfied: nbconvert>=5 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.5)\n", + "Requirement already satisfied: Send2Trash>=1.8.0 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.8.0)\n", "Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.3)\n", + "Requirement already satisfied: jinja2 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.1.1)\n", "Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.1)\n", "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.9/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.0)\n", "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.5)\n", - "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.2)\n", "Requirement already satisfied: asttokens in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.0.5)\n", "Requirement already satisfied: executing in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n", - "Requirement already satisfied: testpath in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.6.0)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.1.1)\n", + "Requirement already satisfied: pure-eval in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.2)\n", "Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.4)\n", + "Requirement already satisfied: testpath in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.6.0)\n", "Requirement already satisfied: defusedxml in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.1)\n", - "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.13)\n", - "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.0)\n", "Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.10.0)\n", - "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.2)\n", "Requirement already satisfied: bleach in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.1.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.1.1)\n", + "Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.2)\n", + "Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.0)\n", + "Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.13)\n", "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.16.0)\n", "Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.9/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.2.0)\n", "Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.9/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.15.0)\n", "Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.9/site-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.3.1)\n", - "Requirement already satisfied: packaging in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3)\n", "Requirement already satisfied: webencodings in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.1)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3)\n", "Requirement already satisfied: pycparser in /opt/conda/lib/python3.9/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.21)\n", "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.9/site-packages (from packaging->bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.7)\n" ] } ], "source": [ - "import requests\n", - "import json\n", - "\n", + "%run commons.ipynb\n", "# These parameters should be discovered / initialized by common gcube libraries. \n", "gcube_token = \"3aa85bbf-d5f3-4df4-ad03-4f8f788eba3d-98187548\"\n", "service_base_endpoint =\"https://geoportal.dev.int.d4science.net/geoportal-service/srv\"\n", @@ -103,55 +116,18 @@ "# Actual customizable parameters\n", "ucid = \"GNA-MOSI\"\n", "gpkgFile = \"templateItalia.gpkg\"\n", - "\n", + "verbose=False\n", "\n", "#NB The following should not be changed \n", "projects_endpoint = service_base_endpoint + \"/projects/\"+ucid\n", - "ucd_endpoint = service_base_endpoint + \"/ucd/\"\n", - "plugins_endpoint=service_base_endpoint + \"/plugins/\"\n", - "\n", - "\n", - "## Import Rich text support for pretty json \n", - "!pip install rich[jupyter]\n", - "import rich\n", - "from rich import print_json\n", - "\n", - "## Define utility function for HTTP requests logging\n", - "def send(dest,data=None,method=\"GET\",params={}):\n", - " print(\"GOING TO SEND \"+method+\" REQUEST TO \"+dest)\n", - " headers={\n", - " 'Content-type':'application/json', \n", - " 'Accept':'*/*',\n", - " 'gcube-token':gcube_token\n", - " }\n", - " if data is not None : print(\"Data is \"+str(data))\n", - " if method == \"GET\" : response = requests.get(url=dest,params=params,headers=headers)\n", - " if method == \"PUT\" : response = requests.put(url=dest,data=data,params=params,headers=headers)\n", - " if method == \"POST\" : response = requests.post(url=dest,data=data,params=params,headers=headers)\n", - " if method == \"DELETE\" : response = requests.delete(url=dest,data=data,params=params,headers=headers)\n", - " print(\"RESPONSE STATUS \"+str(response.status_code)) \n", - " if response.status_code<200 or response.status_code>=300 : \n", - " print(\"CAUSE \"+str(response.reason))\n", - " print(response.text)\n", - " return json.loads(response.text)\n", - "\n", - "#print(send(method=\"GET\",dest=\"http://geoportal.dev.int.d4science.net/geoportal-service/srv/mongo-concessioni/\"))" + "ucds_endpoint = service_base_endpoint + \"/ucd/\"\n", + "ucd_endpoint = ucds_endpoint+ucid\n", + "plugins_endpoint=service_base_endpoint + \"/plugins/\"" ] }, { "cell_type": "code", - "execution_count": null, - "id": "047cf782-73d4-4d8c-9275-69eba2573e67", - "metadata": {}, - "outputs": [], - "source": [ - "# GPKG support\n", - "import fiona\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "id": "a3fae252-963e-4a20-9968-e906d3709681", "metadata": {}, "outputs": [], @@ -159,84 +135,96 @@ "# Init parameters\n", "UCD = {\n", " \"_id\" : ucid,\n", + " \"_mongoId\":None,\n", " \"_version\" : \"1.0.0\",\n", " \"_name\" : \"GNA : MOSI\",\n", - "\n", " \"_description\" : \"Modulistica siti\",\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \"_handlers\" : [\n", - " ,\n", - " \n", - " ]\n", + " \"_handlers\" : []\n", "}" ] }, { "cell_type": "markdown", "id": "c43579c9-0c2c-4e30-a1c6-0565f27f9a55", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true, + "tags": [] + }, "source": [ - "## UCD" + "## UCD Definition and Registration" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 25, + "id": "5e591ce5-0341-4d77-a6ff-08cdfd90b566", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'_mongoId': '626a972102ad3d3b47050dfd',\n", + " '_id': 'GNA-MOSI',\n", + " '_version': '1.0.0',\n", + " '_name': 'GNA : MOSI',\n", + " '_description': 'Modulistica siti',\n", + " '_creationInfo': None,\n", + " '_schema': None,\n", + " '_handlers': [{'_id': 'DEFAULT-SINGLE-STEP',\n", + " '_type': 'LifecycleManagement',\n", + " '_configuration': {'step_access': [{'STEP': 'PUBLISH', 'roles': []}]}},\n", + " {'_id': 'SDI-Indexer-Plugin',\n", + " '_type': 'Indexer',\n", + " '_configuration': {'explicitFieldMapping': [],\n", + " 'additionalLayers': [{'source': {'url': '...'}, 'toSetTitle': ''}]}}],\n", + " '_dataAccessPolicies': [{'_policy': {'_write': 'own', '_read': 'any'},\n", + " '_roles': [],\n", + " '_enforcer': None}]}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Check if already existing\n", + "send(method=\"GET\",dest=ucd_endpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, "id": "7c0a9d27-86d3-4a9c-a51a-c47a80f2cadc", "metadata": {}, "outputs": [], "source": [ - "schema={\n", - " \"CD\" : {\"_min\":1, \"label\" : \"Identificazione\",\"_children\" :[\n", - " {\"TSK\" : {\"_min\":1,\"_type\" : \"STRING-CONSTANT\", \"value\":{\"MOSI\"},\"label\":\"Tipo modulo\"}},\n", - " {\"CMD\" : {\"_min\":1,\"label\":\"Codice modulo\"}}, # ?? Auto generate\n", - " {\"ESC\" : {\"_min\":1,\"label\":\"Ente schedatore\"}}, # ?? Auto generate\n", - " {\"ECP\" : {\"_min\":1,\"label\":\"Ente competente per tutela\"}}, # ?? Auto generate\n", - " {\"CBC\" : {\"label\":\"Identificativo scheda bene culturale\"}},\n", - " {\"ACC\" : {\"_max\":-1,\"label\":\"Altro codice\", \"_children\"}}\n", - " \n", - " ]\n", - " }\n", - "}\n", + "# should read schema from git repo\n", + "schema_url=\"https://code-repo.d4science.org/gCubeSystem/gcube-cms-suite/raw/branch/%2322686/test-data/profiledDocuments/schemas/MOSI-schema.json\"\n", + "schema=send(method=\"GET\",dest=schema_url)\n", "#NB Cannot set schema from gpkg.MOSI if we want it structured\n", "#with fiona.open(gpkgFile, layer='MOSI_multipolygon') as layer:\n", "# feature = layer[0]\n", " #feature is GeoJSON\n", - "\n", - "\n", - "\n", - "\n", - "# SET GEOMETR \n", - "schema.update(\"multipolygonGeometries\":{\"_max\":-1})\n", - "schema.update(\"points\":{\"_max\":-1})\n", - "schema.update(\"multipolygonGeometries\":{\"_max\":-1})\n", - "\n", - "\n", - "\n", - "\n", "UCD.update({\"_schema\" :schema})" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "id": "44280c2e-e513-4aec-825a-b4f9504ad35b", "metadata": {}, "outputs": [], "source": [ "#TODO DEFINE ROLES\n", "UCD.update({\"_dataAccessPolicies\" : [\n", - " {\"_policy\" : {\"_read\" : \"own\", \"_write\" : \"own\"}, \"_roles\":[]},\n", + " {\"_policy\" : {\"_read\" : \"any\", \"_write\" : \"own\"}, \"_roles\":[]},\n", " ]})" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "id": "9e3afe4a-a301-4eea-acd3-95cb03dd26b1", "metadata": {}, "outputs": [], @@ -255,19 +243,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "id": "c6ce3205-38e7-4531-9a46-bea2d48a9321", "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "closing parenthesis '}' does not match opening parenthesis '(' on line 2 (3773975152.py, line 17)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m Input \u001b[0;32mIn [6]\u001b[0;36m\u001b[0m\n\u001b[0;31m })\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m closing parenthesis '}' does not match opening parenthesis '(' on line 2\n" - ] - } - ], + "outputs": [], "source": [ "# UPDATE Lifecycle Settings\n", "UCD[\"_handlers\"].append({\n", @@ -285,13 +264,534 @@ " ]\n", " }\n", " }\n", - " })" + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "3e32f361-31f0-4fb7-a0dd-f4b730c94ac4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+       "  \"_id\": \"GNA-MOSI\",\n",
+       "  \"_mongoId\": null,\n",
+       "  \"_version\": \"1.0.0\",\n",
+       "  \"_name\": \"GNA : MOSI\",\n",
+       "  \"_description\": \"Modulistica siti\",\n",
+       "  \"_handlers\": [\n",
+       "    {\n",
+       "      \"_id\": \"DEFAULT-SINGLE-STEP\",\n",
+       "      \"_type\": \"LifecycleManagement\",\n",
+       "      \"_configuration\": {\n",
+       "        \"step_access\": [\n",
+       "          {\n",
+       "            \"STEP\": \"PUBLISH\",\n",
+       "            \"roles\": []\n",
+       "          }\n",
+       "        ]\n",
+       "      }\n",
+       "    },\n",
+       "    {\n",
+       "      \"_id\": \"SDI-Indexer-Plugin\",\n",
+       "      \"_type\": \"Indexer\",\n",
+       "      \"_configuration\": {\n",
+       "        \"explicitFieldMapping\": [],\n",
+       "        \"additionalLayers\": [\n",
+       "          {\n",
+       "            \"source\": {\n",
+       "              \"url\": \"...\"\n",
+       "            },\n",
+       "            \"toSetTitle\": \"\"\n",
+       "          }\n",
+       "        ]\n",
+       "      }\n",
+       "    }\n",
+       "  ],\n",
+       "  \"_dataAccessPolicies\": [\n",
+       "    {\n",
+       "      \"_policy\": {\n",
+       "        \"_read\": \"any\",\n",
+       "        \"_write\": \"own\"\n",
+       "      },\n",
+       "      \"_roles\": []\n",
+       "    }\n",
+       "  ]\n",
+       "}\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_id\"\u001b[0m: \u001b[32m\"GNA-MOSI\"\u001b[0m,\n", + " \u001b[1;34m\"_mongoId\"\u001b[0m: \u001b[3;35mnull\u001b[0m,\n", + " \u001b[1;34m\"_version\"\u001b[0m: \u001b[32m\"1.0.0\"\u001b[0m,\n", + " \u001b[1;34m\"_name\"\u001b[0m: \u001b[32m\"GNA : MOSI\"\u001b[0m,\n", + " \u001b[1;34m\"_description\"\u001b[0m: \u001b[32m\"Modulistica siti\"\u001b[0m,\n", + " \u001b[1;34m\"_handlers\"\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_id\"\u001b[0m: \u001b[32m\"DEFAULT-SINGLE-STEP\"\u001b[0m,\n", + " \u001b[1;34m\"_type\"\u001b[0m: \u001b[32m\"LifecycleManagement\"\u001b[0m,\n", + " \u001b[1;34m\"_configuration\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"step_access\"\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"STEP\"\u001b[0m: \u001b[32m\"PUBLISH\"\u001b[0m,\n", + " \u001b[1;34m\"roles\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_id\"\u001b[0m: \u001b[32m\"SDI-Indexer-Plugin\"\u001b[0m,\n", + " \u001b[1;34m\"_type\"\u001b[0m: \u001b[32m\"Indexer\"\u001b[0m,\n", + " \u001b[1;34m\"_configuration\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"explicitFieldMapping\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"additionalLayers\"\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"source\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"url\"\u001b[0m: \u001b[32m\"...\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"toSetTitle\"\u001b[0m: \u001b[32m\"\"\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[1;34m\"_dataAccessPolicies\"\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_policy\"\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[1;34m\"_read\"\u001b[0m: \u001b[32m\"any\"\u001b[0m,\n", + " \u001b[1;34m\"_write\"\u001b[0m: \u001b[32m\"own\"\u001b[0m\n", + " \u001b[1m}\u001b[0m,\n", + " \u001b[1;34m\"_roles\"\u001b[0m: \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/ucd/\n", + "Data is {'_id': 'GNA-MOSI', '_mongoId': None, '_version': '1.0.0', '_name': 'GNA : MOSI', '_description': 'Modulistica siti', '_handlers': [{'_id': 'DEFAULT-SINGLE-STEP', '_type': 'LifecycleManagement', '_configuration': {'step_access': [{'STEP': 'PUBLISH', 'roles': []}]}}, {'_id': 'SDI-Indexer-Plugin', '_type': 'Indexer', '_configuration': {'explicitFieldMapping': [], 'additionalLayers': [{'source': {'url': '...'}, 'toSetTitle': ''}]}}], '_dataAccessPolicies': [{'_policy': {'_read': 'any', '_write': 'own'}, '_roles': []}]}\n", + "RESPONSE STATUS 500\n", + "CAUSE \n", + "HTTP Status 500 ? Internal Server Error

HTTP Status 500 ? Internal Server Error


Type Status Report

Message Request failed.

Description The server encountered an unexpected condition that prevented it from fulfilling the request.


Apache Tomcat/8.5.39 (Ubuntu)

\n" + ] + }, + { + "ename": "JSONDecodeError", + "evalue": "Expecting value: line 1 column 1 (char 0)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [11]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Update in context\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m#UCD.update({\"_id\":\"1234\",\"_schema\":{}})\u001b[39;00m\n\u001b[1;32m 4\u001b[0m print_json(data\u001b[38;5;241m=\u001b[39mUCD)\n\u001b[0;32m----> 7\u001b[0m \u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mPOST\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mUCD\u001b[49m\u001b[43m,\u001b[49m\u001b[43mdest\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mucds_endpoint\u001b[49m\u001b[43m)\u001b[49m\n", + "Input \u001b[0;32mIn [1]\u001b[0m, in \u001b[0;36msend\u001b[0;34m(dest, data, method, params)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCAUSE \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m+\u001b[39m\u001b[38;5;28mstr\u001b[39m(response\u001b[38;5;241m.\u001b[39mreason))\n\u001b[1;32m 42\u001b[0m \u001b[38;5;28mprint\u001b[39m(response\u001b[38;5;241m.\u001b[39mtext)\n\u001b[0;32m---> 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/json/__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 341\u001b[0m s \u001b[38;5;241m=\u001b[39m s\u001b[38;5;241m.\u001b[39mdecode(detect_encoding(s), \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msurrogatepass\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[0;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;241m=\u001b[39m JSONDecoder\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/json/decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdecode\u001b[39m(\u001b[38;5;28mself\u001b[39m, s, _w\u001b[38;5;241m=\u001b[39mWHITESPACE\u001b[38;5;241m.\u001b[39mmatch):\n\u001b[1;32m 333\u001b[0m \u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;124;03m containing a JSON document).\u001b[39;00m\n\u001b[1;32m 335\u001b[0m \n\u001b[1;32m 336\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m end \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28mlen\u001b[39m(s):\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/json/decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 353\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mscan_once(s, idx)\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", + "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" + ] + } + ], + "source": [ + "# Update in context\n", + "\n", + "#UCD.update({\"_id\":\"1234\",\"_schema\":{}})\n", + "print_json(data=UCD)\n", + "\n", + "\n", + "send(method=\"POST\",data=json.dumps(UCD),dest=ucds_endpoint)" + ] + }, + { + "cell_type": "markdown", + "id": "56d75049-c5e0-4daf-b42d-eadad7df9408", + "metadata": { + "tags": [] + }, + "source": [ + "# MOSI Records parsing and registration" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "047cf782-73d4-4d8c-9275-69eba2573e67", + "metadata": {}, + "outputs": [], + "source": [ + "# GPKG support\n", + "# import fiona\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "bbbcce95-d413-490f-870f-f0442c708987", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in /opt/conda/lib/python3.9/site-packages (1.4.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /opt/conda/lib/python3.9/site-packages (from pandas) (2022.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.1 in /opt/conda/lib/python3.9/site-packages (from pandas) (2.8.2)\n", + "Requirement already satisfied: numpy>=1.18.5 in /opt/conda/lib/python3.9/site-packages (from pandas) (1.22.3)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)\n" + ] + } + ], + "source": [ + "!pip install pandas\n", + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "098283ae-7e1a-4c30-bbdd-2ffe26147b7c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['fid', 'TSK', 'CBC', 'ACCE', 'ACCC', 'ACCS', 'AMB', 'AMA', 'OGD', 'OGT',\n", + " ...\n", + " 'FUR', 'CMR', 'CMC', 'CMA', 'ADP', 'NOTE_INT', 'BIBM', 'DOZ', 'GECS',\n", + " 'APED'],\n", + " dtype='object', length=106)\n", + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/GNA-MOSI\n", + "Data is {\"CD\": {\"TSK\": \"MOSI\", \"CBC\": null, \"ACC\": {\"ACCE\": null, \"ACCC\": \"SABAP-TO_2019_107_0006_a_b\", \"ACCS\": null}}, \"OG\": {\"AMB\": \"archeologico\", \"AMA\": \"archeologia preventiva\", \"OGD\": \"sito pluristratificato\", \"OGT\": \"{}\", \"OGN\": \"a) Belmonte (Valperga-Pertusio-Prascorsano),\\nVersante N (B1), alto versante SE (BE2), sommit\\u00e0 Campass (BE3, BE6), alto versan- te S (BE4), riparo da stacco graniti (?, BE5), estremit\\u00e0 W del colle (BE7); b-c) Belmonte (Valperga-Pertusio-Prascorsano)\"}, \"LC\": {\"LCS\": \"Italia\", \"LCR\": \"Piemonte\", \"LCP\": \"TO\", \"LCC\": \"Valperga\", \"LCI\": null, \"PVL\": \"Belmonte (Valperga-Pertusio-Prascorsano)\\n\", \"PVZ\": null, \"ACB\": {\"ACBA\": null, \"ACBS\": null}}, \"DT\": {\"DTR\": \"a) Et\\u00e0 del Bronzo medio, fase finale-media Et\\u00e0 del Ferro; b) Et\\u00e0 romana; c) Et\\u00e0 Altomedievale\", \"DTT\": null}, \"DA\": {\"DES\": \"a) Et\\u00e0 del Bronzo medio, fase finale-media Et\\u00e0 del Ferro\\nIl quadro generale che emerge dall\\u2019analisi della distribuzione dei rinvenimenti appare piuttosto articolato, anche considerando che tutti i siti osservati hanno restituito materiali riferibili a un\\u2019unica fase culturale Bronzo Finale - Primo Ferro. I siti BE.1, BE5, BE.6 e parzialmente BE.2 si riferiscono a un villaggio di considerevoli dimensioni localizzato sulla sommit\\u00e0 del colle. Questo, data la morfologia aspra dell\\u2019intera area, appare formato da un agglomerato di gruppi di capanne situate nei numerosi piccoli ripiani della sommit\\u00e0. I due ripari sotto roccia dei siti BE.2 e BE.5 risultano inseriti nell\\u2019abitato e impiegati probabilmente come strutture secondarie per il ricovero di animali, derrate e attrezzi. I depositi dei siti BE.3 e BE.4 sono riferibili ad aree marginali all\\u2019insediamento e contengono livelli consistenti derivanti da discariche di materiali di ogni genere dall\\u2019abitato. Pare significativo che i livelli generati dalle discariche siano contenuti entro vallette e piccoli alvei. Ci\\u00f2 pu\\u00f2 forse sottolineare un massiccio uso di tutti gli spazi utili e la volont\\u00e0 di recuperarne dei nuovi mediante azioni di bonifica. Le ceramiche di Belmonte si riconoscono in un\\u2019unica facies culturale sebbene provengano da siti differenti.\\nTra le forme vascolari, ricorrono con frequenza i vasi a situla con ordini di tacche incise sulla spalla o sul bordo, oppure ordini di impressioni digitali. Cos\\u00ec pure le olle o ollette a gola con decorazioni sul bordo a ordini di tacche incise o impressioni digitali; pi\\u00f9 raramente con linee incise in prossimit\\u00e0 del collo. Inoltre si sono riconosciute ciotole carenate con breve collo a bordo lineare o ciotole emisferiche talvolta con impressioni di tacche incise oppure serie di linee in prossimit\\u00e0 del collo. Frequenti sono anche i vasi biconici con gola e bocca svasata, talvolta finiti molto bene e abbondantemente decorati. Si riscontrano indifferentemente fondi piatti o concavi, mentre i bordi sono di preferenza lineari, praticamente assenti le anse e rarissime le bugne. Gli impasti sono per larga misura rossi o marroni, pi\\u00f9 raramente chiari (grigi o gialli), con degrassante eterometrico abbondante. Le finiture superficiali realizzate mediante lisciatoio rigido sono spesso sommarie. Un piccolo quantitativo di reperti presenta un impasto pi\\u00f9 fine con degrassante omometrico raro e finitura superficiale (lucidatura) particolarmente curata. Sono pure presenti due figurine fittili di suidi sommariamente modellate, numerose fusaiole e pesi da telaio di varie dimensioni.\\nI reperti litici comprendono numerose macine a sella e macinelli, nonch\\u00e9 un\\u2019industria su quarzite e due perline di collana. Particolarmente scarsi i reperti metallici, com- prendono una fibula del tipo \\u00abCertosa\\u00bb e un frammento di lama di falcetto in bronzo. Il repertorio di Belmonte, particolarmente quello riguardante i materiali ceramici, trova confronti significativi con la cultura \\u00abCampi d\\u2019Urne\\u00bb tarda della Fossa del Rodano e del Massiccio Centrale e particolarmente con i siti del lago di Bourget (Savoia), la Grotta des Sarasins, l\\u2019Eschaillon Saint Quentin e Barne Bigou Fontaine (Is\\u00e8re), Chalucet e Fosse de Sous-Clan (Vienne), La Roque Saint Cristophe e Castel R\\u00e9aI (P\\u00e9rigord), les Agnielles (Gap). Nell\\u2019ambiente padano, confronti sono possibili con siti riconoscibili nell\\u2019orizzonte Protogolasecca e Golasecca I (Varese), Chiusa Pesio e Bec Bergiassa (Cuneo), Castellaro di Zignago (La Spezia), La Bessa (Vercelli).\\nSulla base dei confronti \\u00e8 possibile inquadrare il sito di Belmonte nel quadro delle culture del Bronzo Finale alpino, con consistenti riferimenti all\\u2019ambiente francese oltre a quelle con la Padania. Pare altres\\u00ec presente la transizione all\\u2019Et\\u00e0 del Ferro e l\\u2019antica Et\\u00e0 del Ferro con i materiali riconducibili all\\u2019ambito Protogolasecca e Golasecca.\\nL\\u2019abitato di Belmonte sorto nell\\u2019XI secolo a.C., cresce e si sviluppa per 4-5 secoli, quindi inspiegabilmente scompare o si riduce drasticamente, al punto da non lasciare tracce significative della sua esistenza oltre il V secolo a.C. Si esclude infatti la presenza di un grande insediamento nella seconda Et\\u00e0 del Ferro, analogo a quello del Bronzo Finale.\\n\\nb) Aprile 1919) durante escursione al santuario scoperte tombe accanto ad un muricciolo; una di esse era coperta da un tegolone con iscrizione in corsivo Orsicinus; altre tre tombe erano a NW della VI stazione della Via crucis, rivestite di laterizi. Agli inizi di giugno un contadino trov\\u00f2 una pietra iscritta, poi dispersa (rotolata gi\\u00f9 dal monte). cora nel 1919 (?): vari frr. di tegole di cui uno con bollo PRV, entro cartiglio rettango- lare.\\nEstate 1970) scavo di fronte alla cappella del \\\"Cireneo\\\": rinvenuti numerosi ambienti a S e a N di un muro largo 60 cm. A N due ambienti, uno molto grande a W e l'altro in parte scoperto, divisi da un corridoio di m 1,50; nel vano molto grande numerosi frr. ceramici e di pietra ollare e una fossa con molti oggetti di ferro. Rimuovendo il ceppo di castagno affiorarono alcuni oggetti tardo romani.\\nDal grande vano scavato nel 1970: tre monete di Et\\u00e0 costantiniana, un manico di specchio in bronzo, molti frammenti di embrici con decorazione impressa, una fibula di bronzo e una pietra dura (corniola) incisa. Rinvenuta anche numerosa ceramica barbarica.\\n\\nc) Et\\u00e0 Altomedievale (Met\\u00e0 V-VII secolo d.C) \\nRinvenute le strutture di un castrum, racchiuso in un\\u2019area di 2,5 ettari da una cinta muraria articolata in pi\\u00f9 fasi, relative ad un esteso abitato con edifici, perlopi\\u00f9 a pianta rettangolare in pietra e legno, all\\u2019interno dei quali si sono recuperate cospicue quantit\\u00e0 di reperti metallici. Il rinvenimento di un capitello databile all\\u2019VIII d.C. farebbe presumere l\\u2019esistenza di una chiesa collegata ad un insediamento ancora vitale.\\n\\n\\n\", \"OGM\": \"{dati bibliografici, dati di archivio}\"}, \"GE\": {\"GEL\": \"localizzazione fisica\", \"GET\": \"georeferenziazione puntuale\", \"GEP\": \"WGS84\", \"GEC\": {\"GECX\": null, \"GECY\": null}, \"GPT\": \"(rilievo da cartografia senza sopralluogo)\", \"GPM\": \"posizionamento esatto\", \"GPB\": {\"GPBB\": null}}, \"TU\": {\"CDG\": {\"CDGG\": \"dato non disponibile\"}, \"BPT\": \"dato non disponibile\", \"NVC\": {\"NVCT\": null, \"NVCM\": null, \"NVCE\": null, \"NVCP\": null}, \"STU\": {\"STUE\": null, \"STUT\": null, \"STUS\": null}}, \"RE\": {\"RCG\": {\"RCGV\": \"dato non disponibile\", \"RCGD\": \"dato non disponibile\", \"RCGT\": null, \"RCGE\": \"archeologia preventiva\"}, \"MTP\": {\"MTPC\": \"{}\", \"MTPZ\": null}, \"MTZ\": null, \"FOI\": {\"FOIT\": null, \"FOIR\": null, \"FOIA\": null, \"FOIQ\": null, \"FOIF\": null, \"FOIO\": null, \"FOIN\": null}}, \"IP\": {\"IAP\": {\"IAPN\": null, \"IAPR\": null, \"IAPI\": null, \"IAPS\": null}}, \"MT\": {\"MIS\": {\"MISZ\": \"area\", \"MISU\": \"mq\", \"MISM\": 290343.01953125}, \"MTA\": {\"MTAP\": null, \"MTAM\": null, \"MTAX\": null, \"MTAR\": null, \"MTAS\": null}}, \"VR\": {\"VRP\": {\"VRPI\": \"sito pluristratificato di Belmonte\", \"VRPA\": \"buona\", \"VRPV\": null, \"VRPS\": \"potenziale non valutabile\", \"VRPN\": null}, \"VRR\": {\"VRRP\": \"SABAP-TO_2019_107\", \"VRRO\": \"dato non disponibile\", \"VRRR\": null, \"VRRS\": \"dato non disponibile\", \"VRRN\": null}}, \"DO\": {\"FTA\": {\"FTAN\": null, \"FTAX\": \"documentazione allegata\", \"FTAP\": \"fotografia digitale (file)\", \"FTAC\": null}, \"DRA\": {\"DRAN\": null, \"DRAX\": \"documentazione allegata\", \"DRAT\": null, \"DRAC\": null, \"DRAK\": null}, \"FNT\": {\"FNTI\": null, \"FNTX\": \"documentazione allegata\", \"FNTP\": null, \"FNTS\": \"SABAP-TO, fasc. Parco Belmonte, IV, 2\", \"FNTK\": null}, \"BIB\": {\"BIBR\": \"CIMA-FOZZATI-NISBET 1983; CIMA 1984; PEJRANI BARICCO 1986; MICHELETTO 1998, p. 58\", \"BIBX\": \"bibliografia specifica\", \"BIBM\": \"Carta Archeologica SAP, n. 1287073; CIMA M. \\u2013 FOZZATI L. - NISBET R. 1983, Pertusio, Prascorsano, Valperga, loc. Belmonte. Insediamenti del Bron- zo finale e della prima Et\\u00e0 del Ferro, in QuadSAP 1983, 3, pp.174-176; CIMA M. 1984, Pertusio, Prascorsano, Valperga, loc. Belmonte. Insediamenti del Bronzo finale e della prima Et\\u00e0 del Ferro, in QuadSAP 1984, 4, pp.276-279; PEJRANI BARICCO L. 1986, Pertusio - Prascorsano - Valperga (TO), loc. Belmonte. Insediamento di Et\\u00e0 longobarda, in QuadSAP 1986, 5, p.229; MICHELETTO E. 1998, Forme di insediamento tra V e XIII secolo: il contributo dell\\u2019archeologia, in a c. di L. Mercando ed E. Micheletto, Archeologia in Piemonte. L\\u2019Et\\u00e0 medievale, III, Torino, pp. 51-80\\n\\n\", \"BIBN\": null}}, \"CM\": {\"FUR\": \"Ratto, Stefania\", \"CMR\": \"Leonardi, Micaela\", \"CMC\": \"Nardi, Rosanna\", \"CMA\": 2019, \"ADP\": 1}}\n", + "RESPONSE STATUS 200\n", + "Registered 626a99c502ad3d3b47050e00\n", + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/GNA-MOSI\n", + "Data is {\"CD\": {\"TSK\": \"MOSI\", \"CBC\": null, \"ACC\": {\"ACCE\": null, \"ACCC\": \"SABAP-TO_2019_107_00014\", \"ACCS\": null}}, \"OG\": {\"AMB\": \"archeologico\", \"AMA\": \"archeologia preventiva\", \"OGD\": \"insediamento\", \"OGT\": \"{insediamento urbano}\", \"OGN\": \"via Peradotto, F. VIII cat. di Valperga\"}, \"LC\": {\"LCS\": \"Italia\", \"LCR\": \"Piemonte\", \"LCP\": \"TO\", \"LCC\": \"Valperga\", \"LCI\": \"via Peradotto, F. VIII cat. di Valperga\", \"PVL\": null, \"PVZ\": null, \"ACB\": {\"ACBA\": null, \"ACBS\": null}}, \"DT\": {\"DTR\": \"fine Et\\u00e0 del Ferro-inizi Impero\", \"DTT\": null}, \"DA\": {\"DES\": \"Durante i lavori per la costruzione di un edificio, tra i materiali di risulta si scoprirono alcuni reperti fittili. L'ispezione accurata di tutti i fronti di sbancamento port\\u00f2 all'individuazione di depositi antropici dovuti ad una prolungata fase insediativa. Si effettuarono prospezioni che permisero di recuperare frr. di vasi non torniti di impasto grigio, frammenti di argilla depurata chiara, pareti sottili.\", \"OGM\": \"{dati bibliografici, dati di archivio}\"}, \"GE\": {\"GEL\": \"localizzazione fisica\", \"GET\": \"georeferenziazione puntuale\", \"GEP\": \"WGS84\", \"GEC\": {\"GECX\": null, \"GECY\": null}, \"GPT\": \"(rilievo da cartografia senza sopralluogo)\", \"GPM\": \"posizionamento esatto\", \"GPB\": {\"GPBB\": null}}, \"TU\": {\"CDG\": {\"CDGG\": \"dato non disponibile\"}, \"BPT\": \"dato non disponibile\", \"NVC\": {\"NVCT\": null, \"NVCM\": null, \"NVCE\": null, \"NVCP\": null}, \"STU\": {\"STUE\": null, \"STUT\": null, \"STUS\": null}}, \"RE\": {\"RCG\": {\"RCGV\": \"dato non disponibile\", \"RCGD\": \"dato non disponibile\", \"RCGT\": null, \"RCGE\": \"archeologia preventiva\"}, \"MTP\": {\"MTPC\": \"{}\", \"MTPZ\": null}, \"MTZ\": null, \"FOI\": {\"FOIT\": null, \"FOIR\": null, \"FOIA\": null, \"FOIQ\": null, \"FOIF\": null, \"FOIO\": null, \"FOIN\": null}}, \"IP\": {\"IAP\": {\"IAPN\": null, \"IAPR\": null, \"IAPI\": null, \"IAPS\": null}}, \"MT\": {\"MIS\": {\"MISZ\": \"area\", \"MISU\": \"mq\", \"MISM\": 13229.884765625}, \"MTA\": {\"MTAP\": null, \"MTAM\": null, \"MTAX\": null, \"MTAR\": null, \"MTAS\": null}}, \"VR\": {\"VRP\": {\"VRPI\": \"insediamento urbano\", \"VRPA\": \"discreta\", \"VRPV\": null, \"VRPS\": \"potenziale non valutabile\", \"VRPN\": null}, \"VRR\": {\"VRRP\": \"SABAP-TO_2019_107\", \"VRRO\": \"dato non disponibile\", \"VRRR\": null, \"VRRS\": \"dato non disponibile\", \"VRRN\": null}}, \"DO\": {\"FTA\": {\"FTAN\": null, \"FTAX\": \"documentazione allegata\", \"FTAP\": \"fotografia digitale (file)\", \"FTAC\": null}, \"DRA\": {\"DRAN\": null, \"DRAX\": \"documentazione allegata\", \"DRAT\": null, \"DRAC\": null, \"DRAK\": null}, \"FNT\": {\"FNTI\": null, \"FNTX\": \"documentazione allegata\", \"FNTP\": null, \"FNTS\": \"NULLSAP, V, 6 (Valperga), fasc. 5\", \"FNTK\": null}, \"BIB\": {\"BIBR\": \"Carta Archeologica SAP, n. 1287065; CIMA 1988, pp. 97-98 n.4\", \"BIBX\": \"bibliografia specifica\", \"BIBM\": \"CIMA M. 1988, I materiali. Il territorio a N delle Vaude, in Per pagos vicosque 1988, pp. 95-150.\", \"BIBN\": null}}, \"CM\": {\"FUR\": \"Ratto, Stefania\", \"CMR\": \"Leonardi, Micaela\", \"CMC\": \"Nardi, Rosanna\", \"CMA\": 2019, \"ADP\": 1}}\n", + "RESPONSE STATUS 200\n", + "Registered 626a99c602ad3d3b47050e01\n", + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/GNA-MOSI\n", + "Data is {\"CD\": {\"TSK\": \"MOSI\", \"CBC\": null, \"ACC\": {\"ACCE\": null, \"ACCC\": \"LU_MBAC_SBATOS_3524_05/03/2013_061\", \"ACCS\": null}}, \"OG\": {\"AMB\": \"archeologico\", \"AMA\": \"archeologia preventiva\", \"OGD\": \"infrastruttura viaria\", \"OGT\": \"{}\", \"OGN\": \"Tempagnano - Valdottavo\"}, \"LC\": {\"LCS\": \"Italia\", \"LCR\": \"Toscana\", \"LCP\": \"LU\", \"LCC\": \"Lucca\", \"LCI\": null, \"PVL\": null, \"PVZ\": \"(contesto territoriale)\", \"ACB\": {\"ACBA\": \"dato non disponibile\", \"ACBS\": null}}, \"DT\": {\"DTR\": \"et\\u00e0 preromana\", \"DTT\": \"VI-V a.C.\"}, \"DA\": {\"DES\": \"Ad est dell'abitato \\u00e8 stato messo in luce un tratto di massicciata stradale larga m\\n1,50, accuratamente realizzata con ciottoli e frammenti laterizi compattati.\", \"OGM\": \"{dati bibliografici}\"}, \"GE\": {\"GEL\": \"localizzazione fisica\", \"GET\": \"georeferenziazione puntuale\", \"GEP\": \"WGS84\", \"GEC\": {\"GECX\": null, \"GECY\": null}, \"GPT\": \"(rilievo da cartografia senza sopralluogo)\", \"GPM\": null, \"GPB\": {\"GPBB\": null}}, \"TU\": {\"CDG\": {\"CDGG\": \"dato non disponibile\"}, \"BPT\": \"dato non disponibile\", \"NVC\": {\"NVCT\": null, \"NVCM\": null, \"NVCE\": null, \"NVCP\": null}, \"STU\": {\"STUE\": null, \"STUT\": null, \"STUS\": null}}, \"RE\": {\"RCG\": {\"RCGV\": \"dato non disponibile\", \"RCGD\": \"dato non disponibile\", \"RCGT\": null, \"RCGE\": \"archeologia preventiva\"}, \"MTP\": {\"MTPC\": \"{}\", \"MTPZ\": null}, \"MTZ\": null, \"FOI\": {\"FOIT\": null, \"FOIR\": null, \"FOIA\": null, \"FOIQ\": null, \"FOIF\": null, \"FOIO\": null, \"FOIN\": null}}, \"IP\": {\"IAP\": {\"IAPN\": null, \"IAPR\": null, \"IAPI\": null, \"IAPS\": null}}, \"MT\": {\"MIS\": {\"MISZ\": \"area\", \"MISU\": \"mq\", \"MISM\": 976.1494140625}, \"MTA\": {\"MTAP\": null, \"MTAM\": null, \"MTAX\": null, \"MTAR\": null, \"MTAS\": null}}, \"VR\": {\"VRP\": {\"VRPI\": null, \"VRPA\": null, \"VRPV\": null, \"VRPS\": \"potenziale non valutabile\", \"VRPN\": null}, \"VRR\": {\"VRRP\": null, \"VRRO\": \"dato non disponibile\", \"VRRR\": null, \"VRRS\": \"dato non disponibile\", \"VRRN\": null}}, \"DO\": {\"FTA\": {\"FTAN\": null, \"FTAX\": \"documentazione allegata\", \"FTAP\": \"fotografia digitale (file)\", \"FTAC\": null}, \"DRA\": {\"DRAN\": \"T00SG02AMBPL01A\", \"DRAX\": \"documentazione allegata\", \"DRAT\": \"posizionamento topografico\", \"DRAC\": \"LU_MBAC_SABAP_LU_3524_05/03/2013\", \"DRAK\": \"pdf\"}, \"FNT\": {\"FNTI\": \"T00SG02AMBRE01A\", \"FNTX\": \"documentazione allegata\", \"FNTP\": null, \"FNTS\": null, \"FNTK\": \"ALLEGATI/LU_AutostradaA11_Frizzone/T00SG02AMBRE01A.pdf\"}, \"BIB\": {\"BIBR\": null, \"BIBX\": \"bibliografia specifica\", \"BIBM\": null, \"BIBN\": null}}, \"CM\": {\"FUR\": \"Chiarenza, Neva\", \"CMR\": \"De Angeli, Stefano\", \"CMC\": \"Palchetti, Alessandro\", \"CMA\": 2019, \"ADP\": 1}}\n", + "RESPONSE STATUS 200\n", + "Registered 626a99c702ad3d3b47050e02\n", + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/GNA-MOSI\n", + "Data is {\"CD\": {\"TSK\": \"MOSI\", \"CBC\": null, \"ACC\": {\"ACCE\": null, \"ACCC\": \"LU_MBAC_SBATOS_3524_05/03/2013_044\", \"ACCS\": null}}, \"OG\": {\"AMB\": \"archeologico\", \"AMA\": \"archeologia preventiva\", \"OGD\": \"infrastruttura viaria\", \"OGT\": \"{}\", \"OGN\": \"Frizzone\"}, \"LC\": {\"LCS\": \"Italia\", \"LCR\": \"Toscana\", \"LCP\": \"LU\", \"LCC\": \"Capannori\", \"LCI\": null, \"PVL\": null, \"PVZ\": \"(contesto territoriale)\", \"ACB\": {\"ACBA\": \"dato non disponibile\", \"ACBS\": null}}, \"DT\": {\"DTR\": \"et\\u00e0 preistorica-et\\u00e0 romana\", \"DTT\": \"et\\u00e0 del Bronzo-et\\u00e0 tardoantica\"}, \"DA\": {\"DES\": \"Le indagine archeologiche eseguite tra il 2004 e il 2005 hanno permesso l\\u2019individuazione\\ndi due strade glareate, fortemente compromesse dalle opere di bonifica romane e\\nmedievali.\\nBibliografia\", \"OGM\": \"{dati bibliografici}\"}, \"GE\": {\"GEL\": \"localizzazione fisica\", \"GET\": \"georeferenziazione puntuale\", \"GEP\": \"WGS84\", \"GEC\": {\"GECX\": null, \"GECY\": null}, \"GPT\": \"(rilievo da cartografia senza sopralluogo)\", \"GPM\": null, \"GPB\": {\"GPBB\": null}}, \"TU\": {\"CDG\": {\"CDGG\": \"dato non disponibile\"}, \"BPT\": \"dato non disponibile\", \"NVC\": {\"NVCT\": null, \"NVCM\": null, \"NVCE\": null, \"NVCP\": null}, \"STU\": {\"STUE\": null, \"STUT\": null, \"STUS\": null}}, \"RE\": {\"RCG\": {\"RCGV\": \"dato non disponibile\", \"RCGD\": \"dato non disponibile\", \"RCGT\": null, \"RCGE\": \"archeologia preventiva\"}, \"MTP\": {\"MTPC\": \"{}\", \"MTPZ\": null}, \"MTZ\": null, \"FOI\": {\"FOIT\": null, \"FOIR\": null, \"FOIA\": null, \"FOIQ\": null, \"FOIF\": null, \"FOIO\": null, \"FOIN\": null}}, \"IP\": {\"IAP\": {\"IAPN\": null, \"IAPR\": null, \"IAPI\": null, \"IAPS\": null}}, \"MT\": {\"MIS\": {\"MISZ\": \"area\", \"MISU\": \"mq\", \"MISM\": 624.7353515625}, \"MTA\": {\"MTAP\": null, \"MTAM\": null, \"MTAX\": null, \"MTAR\": null, \"MTAS\": null}}, \"VR\": {\"VRP\": {\"VRPI\": null, \"VRPA\": null, \"VRPV\": null, \"VRPS\": \"potenziale non valutabile\", \"VRPN\": null}, \"VRR\": {\"VRRP\": null, \"VRRO\": \"dato non disponibile\", \"VRRR\": null, \"VRRS\": \"dato non disponibile\", \"VRRN\": null}}, \"DO\": {\"FTA\": {\"FTAN\": null, \"FTAX\": \"documentazione allegata\", \"FTAP\": \"fotografia digitale (file)\", \"FTAC\": null}, \"DRA\": {\"DRAN\": \"T00SG02AMBPL01A\", \"DRAX\": \"documentazione allegata\", \"DRAT\": \"posizionamento topografico\", \"DRAC\": \"LU_MBAC_SABAP_LU_3524_05/03/2013\", \"DRAK\": \"pdf\"}, \"FNT\": {\"FNTI\": \"T00SG02AMBRE01A\", \"FNTX\": \"documentazione allegata\", \"FNTP\": null, \"FNTS\": null, \"FNTK\": \"ALLEGATI/LU_AutostradaA11_Frizzone/T00SG02AMBRE01A.pdf\"}, \"BIB\": {\"BIBR\": null, \"BIBX\": \"bibliografia specifica\", \"BIBM\": \"Ciampoltrini G., \\u201cAspetti dell'insediamento etrusco nella valle del Serchio: il V sec. a.C.\\u201d,\\nin Studi Etruschi LIX, 1994\\nZecchini M., Lucca etrusca. Abitati, necropoli, luoghi di culto, Lucca 1999\\nAndreotti A., Zanini A., \\u201cL'insediamento di Fossa Ne\", \"BIBN\": null}}, \"CM\": {\"FUR\": \"Chiarenza, Neva\", \"CMR\": \"De Angeli, Stefano\", \"CMC\": \"Palchetti, Alessandro\", \"CMA\": 2019, \"ADP\": 1}}\n", + "RESPONSE STATUS 200\n", + "Registered 626a99c702ad3d3b47050e03\n", + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/GNA-MOSI\n", + "Data is {\"CD\": {\"TSK\": \"MOSI\", \"CBC\": null, \"ACC\": {\"ACCE\": null, \"ACCC\": \"LU_MBAC_SBATOS_3524_05/03/2013_039\", \"ACCS\": null}}, \"OG\": {\"AMB\": \"archeologico\", \"AMA\": \"archeologia preventiva\", \"OGD\": \"ritrovamento sporadico\", \"OGT\": \"{epigrafe}\", \"OGN\": \"Castelvecchio - Villa Ravano\"}, \"LC\": {\"LCS\": \"Italia\", \"LCR\": \"Toscana\", \"LCP\": \"LU\", \"LCC\": \"Capannori\", \"LCI\": null, \"PVL\": null, \"PVZ\": \"(contesto suburbano)\", \"ACB\": {\"ACBA\": \"dato non disponibile\", \"ACBS\": null}}, \"DT\": {\"DTR\": \"et\\u00e0 romana \", \"DTT\": \"I d.C.\"}, \"DA\": {\"DES\": \"Circa a 1km a N di Castelvecchio nel 1953 fu scoperta casualmente nel giardino della villa una stele (147x58x11) funeraria in marmo con iscrizione del I d.C.\", \"OGM\": \"{dati bibliografici}\"}, \"GE\": {\"GEL\": \"localizzazione fisica\", \"GET\": \"georeferenziazione puntuale\", \"GEP\": \"WGS84\", \"GEC\": {\"GECX\": null, \"GECY\": null}, \"GPT\": \"(rilievo da cartografia senza sopralluogo)\", \"GPM\": \"posizionamento approssimato\", \"GPB\": {\"GPBB\": null}}, \"TU\": {\"CDG\": {\"CDGG\": \"dato non disponibile\"}, \"BPT\": \"dato non disponibile\", \"NVC\": {\"NVCT\": null, \"NVCM\": null, \"NVCE\": null, \"NVCP\": null}, \"STU\": {\"STUE\": null, \"STUT\": null, \"STUS\": null}}, \"RE\": {\"RCG\": {\"RCGV\": \"dato non disponibile\", \"RCGD\": \"dato non disponibile\", \"RCGT\": null, \"RCGE\": \"archeologia preventiva\"}, \"MTP\": {\"MTPC\": \"{}\", \"MTPZ\": null}, \"MTZ\": null, \"FOI\": {\"FOIT\": null, \"FOIR\": null, \"FOIA\": null, \"FOIQ\": null, \"FOIF\": null, \"FOIO\": null, \"FOIN\": null}}, \"IP\": {\"IAP\": {\"IAPN\": null, \"IAPR\": null, \"IAPI\": null, \"IAPS\": null}}, \"MT\": {\"MIS\": {\"MISZ\": \"area\", \"MISU\": \"mq\", \"MISM\": 11996.62890625}, \"MTA\": {\"MTAP\": null, \"MTAM\": null, \"MTAX\": null, \"MTAR\": null, \"MTAS\": null}}, \"VR\": {\"VRP\": {\"VRPI\": \"sito non interpretabile\", \"VRPA\": \"scarsa\", \"VRPV\": null, \"VRPS\": \"potenziale non valutabile\", \"VRPN\": null}, \"VRR\": {\"VRRP\": \"LU_MBAC_SBATOS_3524_05/03/2013\", \"VRRO\": \"dato non disponibile\", \"VRRR\": null, \"VRRS\": \"dato non disponibile\", \"VRRN\": null}}, \"DO\": {\"FTA\": {\"FTAN\": null, \"FTAX\": \"documentazione allegata\", \"FTAP\": \"fotografia digitale (file)\", \"FTAC\": null}, \"DRA\": {\"DRAN\": null, \"DRAX\": \"documentazione allegata\", \"DRAT\": null, \"DRAC\": \"LU_MBAC_SABAP_LU_3524_05/03/2013\", \"DRAK\": null}, \"FNT\": {\"FNTI\": \"T00SG02AMBRE01A\", \"FNTX\": \"documentazione allegata\", \"FNTP\": null, \"FNTS\": null, \"FNTK\": \"ALLEGATI/LU_AutostradaA11_Frizzone/T00SG02AMBRE01A.pdf\"}, \"BIB\": {\"BIBR\": null, \"BIBX\": \"bibliografia specifica\", \"BIBM\": \"Mencacci P., Zecchini M., Lucca romana, Lucca, 1981, p. 200.\", \"BIBN\": null}}, \"CM\": {\"FUR\": \"Chiarenza, Neva\", \"CMR\": \"De Angeli, Stefano\", \"CMC\": \"Palchetti, Alessandro\", \"CMA\": 2019, \"ADP\": 1}}\n", + "RESPONSE STATUS 200\n", + "Registered 626a99c702ad3d3b47050e04\n", + "GOING TO SEND POST REQUEST TO https://geoportal.dev.int.d4science.net/geoportal-service/srv/projects/GNA-MOSI\n", + "Data is {\"CD\": {\"TSK\": \"MOSI\", \"CBC\": null, \"ACC\": {\"ACCE\": null, \"ACCC\": \"LU_MBAC_SBATOS_3524_05/03/2013_045\", \"ACCS\": null}}, \"OG\": {\"AMB\": \"archeologico\", \"AMA\": \"archeologia preventiva\", \"OGD\": \"sito pluristratificato\", \"OGT\": \"{}\", \"OGN\": \"Pozzuolo\"}, \"LC\": {\"LCS\": \"Italia\", \"LCR\": \"Toscana\", \"LCP\": \"LU\", \"LCC\": \"Lucca\", \"LCI\": null, \"PVL\": null, \"PVZ\": \"(contesto territoriale)\", \"ACB\": {\"ACBA\": \"dato non disponibile\", \"ACBS\": null}}, \"DT\": {\"DTR\": \"et\\u00e0 preromana\", \"DTT\": \"VI-III a.C.\"}, \"DA\": {\"DES\": \"L'abitato etrusco \\u00e8 stato individuato casualmente nel 1984, in occasione di lavori di scavo per un acquedotto. L'azione dei mezzi meccanici, che aprirono un profondo scavo sulla cima del rilievo, provoc\\u00f2 la distruzione di gran parte dei sedimenti archeologici relativi all'insediamento pi\\u00f9 antico, dell'et\\u00e0 tardo arcaica e classica, documentato dai reperti ceramici recuperati in seguito. Un saggio di scavo, effettuato nell'autunno 1985, permise invece di indagare una porzione del successivo abitato di et\\u00e0 ellenistica. L'insediamento pi\\u00f9 antico (fine VI V sec. a.C.) venne impiantato su un versante della collina regolarizzato con tagli e livellamenti artificiali della roccia scistosa di base. Le abitazioni dovevano essere semplici capanne con struttura lignea e rivestimento di argilla impastata con pietrisco. Tra i reperti recuperati, sono presenti frammenti ceramici con brevi iscrizioni in caratteri etruschi, indizio di una certa diffusione della scrittura che, in questa epoca, nell'area lucchese, pare caratterizzare solo gli insediamenti di altura. Agli inizi del III secolo a.C., con un'ampia opera di livellamento, il sito venne nuovamente occupato. Le abitazioni erano realizzate ancora con legno e argilla impastata, ma nelle coperture comincia a diffondersi anche l'uso di laterizi. Di notevole interesse \\u00e8 il ritrovamento di un tesoretto di otto monete d'argento che furono perdute, o deliberatamente nascoste, nell'abitato: tre esemplari con la raffigurazione dell'ippocampo che nuota tra delfini, e quattro con la raffigurazione del cigno, che potrebbe alludere alle lagune costiere\", \"OGM\": \"{dati bibliografici}\"}, \"GE\": {\"GEL\": \"localizzazione fisica\", \"GET\": \"georeferenziazione puntuale\", \"GEP\": \"WGS84\", \"GEC\": {\"GECX\": null, \"GECY\": null}, \"GPT\": \"(rilievo da cartografia senza sopralluogo)\", \"GPM\": \"posizionamento approssimato\", \"GPB\": {\"GPBB\": null}}, \"TU\": {\"CDG\": {\"CDGG\": \"dato non disponibile\"}, \"BPT\": \"dato non disponibile\", \"NVC\": {\"NVCT\": null, \"NVCM\": null, \"NVCE\": null, \"NVCP\": null}, \"STU\": {\"STUE\": null, \"STUT\": null, \"STUS\": null}}, \"RE\": {\"RCG\": {\"RCGV\": \"dato non disponibile\", \"RCGD\": \"dato non disponibile\", \"RCGT\": null, \"RCGE\": \"archeologia preventiva\"}, \"MTP\": {\"MTPC\": \"{}\", \"MTPZ\": null}, \"MTZ\": null, \"FOI\": {\"FOIT\": null, \"FOIR\": null, \"FOIA\": null, \"FOIQ\": null, \"FOIF\": null, \"FOIO\": null, \"FOIN\": null}}, \"IP\": {\"IAP\": {\"IAPN\": null, \"IAPR\": null, \"IAPI\": null, \"IAPS\": null}}, \"MT\": {\"MIS\": {\"MISZ\": \"area\", \"MISU\": \"mq\", \"MISM\": 24036.017578125}, \"MTA\": {\"MTAP\": null, \"MTAM\": null, \"MTAX\": null, \"MTAR\": null, \"MTAS\": null}}, \"VR\": {\"VRP\": {\"VRPI\": \"abitato etrusco\", \"VRPA\": \"discreta\", \"VRPV\": null, \"VRPS\": \"potenziale non valutabile\", \"VRPN\": null}, \"VRR\": {\"VRRP\": \"LU_MBAC_SBATOS_3524_05/03/2013\", \"VRRO\": \"dato non disponibile\", \"VRRR\": null, \"VRRS\": \"dato non disponibile\", \"VRRN\": null}}, \"DO\": {\"FTA\": {\"FTAN\": null, \"FTAX\": \"documentazione allegata\", \"FTAP\": \"fotografia digitale (file)\", \"FTAC\": null}, \"DRA\": {\"DRAN\": \"T00SG02AMBPL01A\", \"DRAX\": \"documentazione allegata\", \"DRAT\": \"posizionamento topografico\", \"DRAC\": \"LU_MBAC_SABAP_LU_3524_05/03/2013\", \"DRAK\": \"pdf\"}, \"FNT\": {\"FNTI\": \"T00SG02AMBRE01A\", \"FNTX\": \"documentazione allegata\", \"FNTP\": null, \"FNTS\": null, \"FNTK\": \"ALLEGATI/LU_AutostradaA11_Frizzone/T00SG02AMBRE01A.pdf\"}, \"BIB\": {\"BIBR\": null, \"BIBX\": \"bibliografia specifica\", \"BIBM\": \"Ciampoltrini G., \\u201cAspetti dell'insediamento etrusco nella valle del Serchio: il V sec. a.C.\\u201d, in Studi Etruschi LIX, 1994; Ciampoltrini G., Zecchini M., \\u201cUn insediamento etrusco di et\\u00e0 ellenistica sul versante lucchese\\u201d, in Paribeni E. (a cura di), Et\", \"BIBN\": null}}, \"CM\": {\"FUR\": \"Chiarenza, Neva\", \"CMR\": \"De Angeli, Stefano\", \"CMC\": \"Palchetti, Alessandro\", \"CMA\": 2019, \"ADP\": 1}}\n", + "RESPONSE STATUS 200\n", + "Registered 626a99c802ad3d3b47050e05\n" + ] + } + ], + "source": [ + "# creating a data frame\n", + "df = pd.read_csv(\"MOSI_multipolygon_templateIta.csv\",delimiter = \",\") \n", + "for row in df.itertuples():\n", + " mosi={\n", + " \"CD\" : {\n", + " \"TSK\" : row.TSK,\n", + " #SIGEC Web fields... ask Mibac\n", + "# \"CMD\" : row.CMD,\n", + "# \"ESC\" : row.ESC,\n", + "# \"ECP\" : row.ECP,\n", + " \"CBC\" : row.CBC,\n", + " \"ACC\" : {\n", + " \"ACCE\" : row.ACCE,\n", + " \"ACCC\" : row.ACCC,\n", + " \"ACCS\" : row.ACCS\n", + " }\n", + " },\n", + " \"OG\" : {\n", + " \"AMB\" : row.AMB,\n", + " \"AMA\" : row.AMA,\n", + " \"OGD\": row.OGD,\n", + " \"OGT\" : row.OGT,\n", + " \"OGN\" : row.OGN\n", + " },\n", + " \"LC\" : {\n", + " \"LCS\" : row.LCS,\n", + " \"LCR\" : row.LCR,\n", + " \"LCP\" : row.LCP,\n", + " \"LCC\" : row.LCC,\n", + " \"LCI\" : row.LCI,\n", + " \"PVL\" : row.PVL,\n", + " \"PVZ\" : row.PVZ,\n", + " \"ACB\" : {\n", + " \"ACBA\" : row.ACBA,\n", + " \"ACBS\" : row.ACBS\n", + " }\n", + " },\n", + " \"DT\" : {\n", + " \"DTR\" : row.DTR,\n", + " \"DTT\" : row.DTT\n", + " },\n", + " \"DA\" : {\n", + " \"DES\" : row.DES,\n", + " \"OGM\": row.OGM\n", + " },\n", + " \"GE\" : {\n", + " \"GEL\" : row.GEL,\n", + " \"GET\" : row.GET,\n", + " \"GEP\" : row.GEP,\n", + " \"GEC\" : {\n", + " \"GECX\" : row.GECX,\n", + " \"GECY\" : row.GECY\n", + " },\n", + " \"GPT\": row.GPT,\n", + " \"GPM\": row.GPM,\n", + " \"GPB\" : {\n", + " \"GPBB\" : row.GPBB\n", + " }\n", + " },\n", + " \"TU\" : {\n", + " \"CDG\": {\n", + " \"CDGG\": row.CDGG\n", + " },\n", + " \"BPT\" : row.BPT,\n", + " \"NVC\": {\n", + " \"NVCT\" : row.NVCT,\n", + " \"NVCM\" : row.NVCM,\n", + " \"NVCE\" : row.NVCE,\n", + " \"NVCP\" : row.NVCP,\n", + " \n", + " # Not found in csv\n", + "# \"NWCN\" : row.NWCN\n", + " },\n", + " \"STU\":{\n", + " \"STUE\" : row.STUE,\n", + " \"STUT\" : row.STUT,\n", + " \"STUS\" : row.STUS\n", + " }\n", + " },\n", + " \"RE\" : {\n", + " \"RCG\": {\n", + " \"RCGV\" : row.RCGV,\n", + " \"RCGD\" : row.RCGD,\n", + " \"RCGT\" : row.RCGT,\n", + " \"RCGE\" : row.RCGE\n", + " },\n", + " \"MTP\" : {\n", + " \"MTPC\": row.MTPC,\n", + " \"MTPZ\" : row.MTPZ\n", + " },\n", + " \"MTZ\" : row.MTZ,\n", + " \"FOI\" : {\n", + " \"FOIT\" : row.FOIT,\n", + " \"FOIR\" : row.FOIR,\n", + " \"FOIA\" : row.FOIA,\n", + " \"FOIQ\" : row.FOIQ,\n", + " \"FOIF\" : row.FOIF,\n", + " \"FOIO\" : row.FOIO,\n", + " \"FOIN\" : row.FOIN\n", + " }\n", + " },\n", + " \"IP\" : {\n", + " \"IAP\" : {\n", + " \"IAPN\" : row.IAPN,\n", + " \"IAPR\" : row.IAPR,\n", + " \"IAPI\" : row.IAPI,\n", + " \"IAPS\" : row.IAPS\n", + " }\n", + " },\n", + " \"MT\" : {\n", + " \"MIS\" : {\n", + " \"MISZ\" : row.MISZ,\n", + " \"MISU\" : row.MISU,\n", + " \"MISM\" : row.MISM\n", + " },\n", + " \"MTA\" : {\n", + " \"MTAP\" : row.MTAP,\n", + " \"MTAM\" : row.MTAM,\n", + " \"MTAX\" : row.MTAX,\n", + " \"MTAR\" : row.MTAR,\n", + " \"MTAS\" : row.MTAS\n", + " }\n", + " },\n", + " \"VR\" : {\n", + " \"VRP\" : {\n", + " \"VRPI\" : row.VRPI,\n", + " \"VRPA\" : row.VRPA,\n", + " \"VRPV\" : row.VRPV,\n", + " \"VRPS\" : row.VRPS,\n", + " \"VRPN\" : row.VRPN\n", + " },\n", + " \"VRR\" : {\n", + " \"VRRP\" : row.VRRP,\n", + " \"VRRO\" : row.VRRO,\n", + " \"VRRR\" : row.VRRR,\n", + " \"VRRS\" : row.VRRS,\n", + " \"VRRN\" : row.VRRN\n", + " }\n", + " },\n", + " \"DO\" : {\n", + " \"FTA\" : {\n", + " \"FTAN\" : row.FTAN,\n", + " \"FTAX\" : row.FTAX,\n", + " \"FTAP\" : row.FTAP,\n", + " \"FTAC\" : row.FTAC\n", + " },\n", + " \"DRA\" : {\n", + " \"DRAN\" : row.DRAN,\n", + " \"DRAX\" : row.DRAX,\n", + " \"DRAT\" : row.DRAT,\n", + " \"DRAC\" : row.DRAC,\n", + " \"DRAK\" : row.DRAK\n", + " },\n", + " \"FNT\" : {\n", + " \"FNTI\" : row.FNTI,\n", + " \"FNTX\" : row.FNTX,\n", + " \"FNTP\" : row.FNTP,\n", + " \"FNTS\" : row.FNTS,\n", + " \"FNTK\" : row.FNTK\n", + " },\n", + " \"BIB\" : {\n", + " \"BIBR\" : row.BIBR,\n", + " \"BIBX\" : row.BIBX,\n", + " \"BIBM\" : row.BIBM,\n", + " \"BIBN\" : row.BIBN\n", + " }\n", + " },\n", + " \"CM\" : {\n", + " \"FUR\" : row.FUR,\n", + " \"CMR\" : row.CMR,\n", + " \"CMC\" : row.CMC,\n", + " \"CMA\" : row.CMA,\n", + " \"ADP\" : row.ADP\n", + " }\n", + " }\n", + " mosi = send(method=\"POST\",data=json.dumps(mosi,ignore_nan=True),dest=projects_endpoint)\n", + " print(\"Registered \"+mosi[\"_id\"])\n" + ] + }, + { + "cell_type": "markdown", + "id": "7524bde6-b944-4cbc-af96-1b99b5f007a9", + "metadata": {}, + "source": [ + "## MOSI Record publication\n", + "\n", + "Set PUBLISHING = True below to activate this section." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "d7ba9d88-4ee3-41ff-9a28-147ad320954e", + "metadata": {}, + "outputs": [], + "source": [ + "PUBLISH=True" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "fe62e187-22a0-4f77-9162-f42545329462", + "metadata": {}, + "outputs": [], + "source": [ + "#Get all existing MOSI\n", + "existing=send(method=\"GET\",dest=projects_endpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "16cbb048-05f0-490d-8546-7b53d29773b8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "626a99c502ad3d3b47050e00 a) Belmonte (Valperga-Pertusio-Prascorsano),\n", + "Versante N (B1), alto versante SE (BE2), sommità Campass (BE3, BE6), alto versan- te S (BE4), riparo da stacco graniti (?, BE5), estremità W del colle (BE7); b-c) Belmonte (Valperga-Pertusio-Prascorsano)\n", + "626a99c602ad3d3b47050e01 via Peradotto, F. VIII cat. di Valperga\n", + "626a99c702ad3d3b47050e02 Tempagnano - Valdottavo\n", + "626a99c702ad3d3b47050e03 Frizzone\n", + "626a99c702ad3d3b47050e04 Castelvecchio - Villa Ravano\n", + "626a99c802ad3d3b47050e05 Pozzuolo\n" + ] + } + ], + "source": [ + "for r in existing :\n", + " print(r['_id']+\" \"+r['_theDocument']['OG']['OGN'])" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "9bb1a25c-606d-4094-b91f-757bf06260d1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Data is {\"stepID\": \"PUBLISH\"}\n", + "Data is {\"stepID\": \"PUBLISH\"}\n", + "Data is {\"stepID\": \"PUBLISH\"}\n", + "Data is {\"stepID\": \"PUBLISH\"}\n", + "Data is {\"stepID\": \"PUBLISH\"}\n", + "Data is {\"stepID\": \"PUBLISH\"}\n" + ] + } + ], + "source": [ + "verbose = False \n", + "if PUBLISH : \n", + " STEPrequest={\"stepID\" : \"PUBLISH\"}\n", + " for r in existing:\n", + " send(method=\"POST\",data=json.dumps(STEPrequest),dest=projects_endpoint+\"/step/\"+r['_id'])" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "83094d4c-a85c-4748-93b0-b8e926789bf6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "626a99c502ad3d3b47050e00 {\"_phase\": \"DRAFT\", \"_lastInvokedStep\": \"PUBLISH\", \"_lastOperationStatus\": \"ERROR\", \"_errorMessages\": [\"No Configuration found for SDI-Default-Materializer in GNA-MOSI\"], \"_warningMessages\": [], \"_triggeredEvents\": [], \"_notes\": null}\n", + "626a99c602ad3d3b47050e01 {\"_phase\": \"DRAFT\", \"_lastInvokedStep\": \"PUBLISH\", \"_lastOperationStatus\": \"ERROR\", \"_errorMessages\": [\"No Configuration found for SDI-Default-Materializer in GNA-MOSI\"], \"_warningMessages\": [], \"_triggeredEvents\": [], \"_notes\": null}\n", + "626a99c702ad3d3b47050e02 {\"_phase\": \"DRAFT\", \"_lastInvokedStep\": \"PUBLISH\", \"_lastOperationStatus\": \"ERROR\", \"_errorMessages\": [\"No Configuration found for SDI-Default-Materializer in GNA-MOSI\"], \"_warningMessages\": [], \"_triggeredEvents\": [], \"_notes\": null}\n", + "626a99c702ad3d3b47050e03 {\"_phase\": \"DRAFT\", \"_lastInvokedStep\": \"PUBLISH\", \"_lastOperationStatus\": \"ERROR\", \"_errorMessages\": [\"No Configuration found for SDI-Default-Materializer in GNA-MOSI\"], \"_warningMessages\": [], \"_triggeredEvents\": [], \"_notes\": null}\n", + "626a99c702ad3d3b47050e04 {\"_phase\": \"DRAFT\", \"_lastInvokedStep\": \"PUBLISH\", \"_lastOperationStatus\": \"ERROR\", \"_errorMessages\": [\"No Configuration found for SDI-Default-Materializer in GNA-MOSI\"], \"_warningMessages\": [], \"_triggeredEvents\": [], \"_notes\": null}\n", + "626a99c802ad3d3b47050e05 {\"_phase\": \"DRAFT\", \"_lastInvokedStep\": \"PUBLISH\", \"_lastOperationStatus\": \"ERROR\", \"_errorMessages\": [\"No Configuration found for SDI-Default-Materializer in GNA-MOSI\"], \"_warningMessages\": [], \"_triggeredEvents\": [], \"_notes\": null}\n" + ] + } + ], + "source": [ + "for r in send(method=\"GET\",dest=projects_endpoint) : \n", + " info = r['_lifecycleInformation']\n", + " if info['_lastOperationStatus'] != \"OK\" :\n", + " print(r['_id']+\" \"+json.dumps(info))\n", + " else : print(r['_id']+\" \"+info['_lastOperationStatus'])" ] }, { "cell_type": "code", "execution_count": null, - "id": "76b0a6a2-c418-450c-bf79-ff82f3f2df6b", + "id": "fcf05cb9-e019-406f-bb1b-4448bd895596", "metadata": {}, "outputs": [], "source": []