diff --git a/examples/python3-mocodo.ipynb b/examples/python3-mocodo.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..95cac3879b8ea68d376225616e3af5351fa2d9de
--- /dev/null
+++ b/examples/python3-mocodo.ipynb
@@ -0,0 +1 @@
+{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"from mocodo.magic import mocodo","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(\"--colors ocean\",\"\"\"\\\nClient: Réf. client [VARCHAR(8)], Nom [VARCHAR(255)], Prénom [VARCHAR(255)], Adresse [VARCHAR(255)]\nPasser, 0N Client, 11 Commande\nCommande: Num. commande [VARCHAR(8)], Date [DATE], Montant [DECIMAL(10,2)]\nInclure, 1N Commande, 0N Produit: Quantité [INTEGER]\nProduit: Réf. produit [VARCHAR(8)], Libellé [VARCHAR(50)], Prix unitaire [DECIMAL(10,2)]\"\"\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from pathlib import Path\n\nPath(\"mocodo_notebook/sandbox.mcd\").rename(\"ccp.mcd\");","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(\"--input ccp --transform mld diagram ddl --colors mondrian\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from basthon import download\n\ndownload(\"mocodo_notebook/ccp_ddl.sql\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(\"-i ccp -t data_dict\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(\"-i ccp -t crow:mmd\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(\"-i ccp -t crow:mmd --defer\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(\"-i ccp -t upper:boxes ascii:labels snake:labels --colors brewer+3\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"mocodo(source=\"MISSION: accomplie\")","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 356b3add4f9d2f0c3e60f9548687760882b3dfdd..d2e732494998a434b4006a4fd6aa4043276867ca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,7 @@
         "@babel/plugin-transform-runtime": "^7.18.0",
         "@babel/preset-env": "^7.18.0",
         "@babel/preset-typescript": "^7.17.12",
-        "@basthon/gui-base": "0.62.10",
+        "@basthon/gui-base": "0.62.11",
         "@fontsource/open-sans": "^4.5.10",
         "@types/marked": "^4.0.7",
         "@types/node": "^17.0.35",
@@ -1861,97 +1861,97 @@
       }
     },
     "node_modules/@basthon/checkpoints": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/checkpoints/-/checkpoints-0.62.10.tgz",
-      "integrity": "sha512-NQLzNqlkwAUa2fL9UE7JMGmIZOV3S+kWp4vpnwVTGZM0Nng9B47dja5Xnx+QjQkIEes9crIWzLmnJ9g0FtiubQ==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/checkpoints/-/checkpoints-0.62.11.tgz",
+      "integrity": "sha512-/WfxuDWqE1fBjoBHnNU5y5DX3gJxPjfhXqIiBbTQ68kHRRsr6uu0h5xx0SJrVUDMZkrqH1ESJCxXNITHTPLZvA==",
       "dev": true,
       "dependencies": {
         "localforage": "^1.10.0"
       }
     },
     "node_modules/@basthon/gui-base": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/gui-base/-/gui-base-0.62.10.tgz",
-      "integrity": "sha512-e8hL+fW2WxdKaB9Ltww5Pm6e8MlXXlzDBY4d5zM/GdLZ1nT0M4qWeOvQyQeEaq9jAHYlQIBJytKe/REcYiIGxw==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/gui-base/-/gui-base-0.62.11.tgz",
+      "integrity": "sha512-ctBjHQRHVx3KV1MJTC7qMbX+pcpZMz/XoBKvMgXM7A944ncJl9jRZ4uLwJBYuffvBV5k4C9QToWdJwShpGksGg==",
       "dev": true,
       "dependencies": {
-        "@basthon/checkpoints": "0.62.10",
-        "@basthon/kernel-base": "0.62.10",
-        "@basthon/kernel-loader": "0.62.10",
+        "@basthon/checkpoints": "0.62.11",
+        "@basthon/kernel-base": "0.62.11",
+        "@basthon/kernel-loader": "0.62.11",
         "js-base64": "^3.7.2",
         "pako": "^2.0.4",
         "promise-delegate": "^1.0.1"
       }
     },
     "node_modules/@basthon/kernel-base": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-base/-/kernel-base-0.62.10.tgz",
-      "integrity": "sha512-qABTjOvU/GBfYVstzdAlb6TfpOHfJQBpknuvKPZJOzkTgDJelxhGiriSPTAMxQy6gZ3yRyq9BXdUcb3G5gVA7A==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-base/-/kernel-base-0.62.11.tgz",
+      "integrity": "sha512-sqfGMKyB4I7t6seEeBshHQbOt87nJ4r3kKbR6Vc1ieM8QMcBk0zNrarZO09Xln2CS/WFWqJMSXRZC5PcwO6AUQ==",
       "dev": true,
       "dependencies": {
         "promise-delegate": "^1.0.1"
       }
     },
     "node_modules/@basthon/kernel-javascript": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-javascript/-/kernel-javascript-0.62.10.tgz",
-      "integrity": "sha512-W4a9HS0PQ1rcvXGsfXRPrc4FDA4rJa5H+HRGTXJOLwMKAvq7OCrlAnVlhFsQb/LVZk7ubCRCiQdTVCoDEXaKNw==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-javascript/-/kernel-javascript-0.62.11.tgz",
+      "integrity": "sha512-MFuV6PJF4dFn5DMEc6tYI+XdpATIRzunZVFHIA8sL1DxAfAIn6uwJLdd0WoaOMQnIRRWqAp6a63wIG0/Wq1kHw==",
       "dev": true,
       "dependencies": {
-        "@basthon/kernel-base": "0.62.10"
+        "@basthon/kernel-base": "0.62.11"
       }
     },
     "node_modules/@basthon/kernel-loader": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-loader/-/kernel-loader-0.62.10.tgz",
-      "integrity": "sha512-4kbVrOMUmB175JaX5ZQJDZ47y+EvJaebB7UqlswcY7CS5VDAVY3uVjSmyfD8NBb7ZEq/n4WndWzarKI3qWfWrA==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-loader/-/kernel-loader-0.62.11.tgz",
+      "integrity": "sha512-DHvpxfRv54hCi43us4tujF2xVvd8E/xt5KQBo4d6Ils2V55fUM2UniuwMAqBLrjYeXdSKXxHBUWWcRqxtYQbXA==",
       "dev": true,
       "dependencies": {
-        "@basthon/kernel-base": "0.62.10",
-        "@basthon/kernel-javascript": "0.62.10",
-        "@basthon/kernel-ocaml": "0.62.10",
-        "@basthon/kernel-python3": "0.62.10",
-        "@basthon/kernel-python3-old": "0.62.10",
-        "@basthon/kernel-sql": "0.62.10",
+        "@basthon/kernel-base": "0.62.11",
+        "@basthon/kernel-javascript": "0.62.11",
+        "@basthon/kernel-ocaml": "0.62.11",
+        "@basthon/kernel-python3": "0.62.11",
+        "@basthon/kernel-python3-old": "0.62.11",
+        "@basthon/kernel-sql": "0.62.11",
         "promise-delegate": "^1.0.1"
       }
     },
     "node_modules/@basthon/kernel-ocaml": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-ocaml/-/kernel-ocaml-0.62.10.tgz",
-      "integrity": "sha512-P010EFeyMtRm3Oy6i7aCnJdW6ocSmWcRuTPbAXyZClNURknKMKTK5hy9r/q3VS7PUkBgIO8QYENdyL7yqlRSyw==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-ocaml/-/kernel-ocaml-0.62.11.tgz",
+      "integrity": "sha512-WRJX03fq7tEdJLUS8moIIa3rFlpHCwJYaP4TaJJElQp713YrY/khcU1QJ2zJxNgkzA8p0g6i0S5dXh31FTVmGg==",
       "dev": true,
       "dependencies": {
-        "@basthon/kernel-base": "0.62.10",
+        "@basthon/kernel-base": "0.62.11",
         "constants-browserify": "^1.0.0",
         "tty-browserify": "^0.0.1"
       }
     },
     "node_modules/@basthon/kernel-python3": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3/-/kernel-python3-0.62.10.tgz",
-      "integrity": "sha512-QyBRivBQwf7+eJ3VVQUeQhPeY+GwUbBstQ7q8LKNjfpte6SnWKZyE8Q4sTrhU+7B/oe/oGmMSoL+1E8tSulQqg==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3/-/kernel-python3-0.62.11.tgz",
+      "integrity": "sha512-WRJRhnV0iXDn2i5ySv0o2KETPxuXPn23R9EvGdFyxK7e8bknWobM9FswMXzmlfM/jYMBK4MUXyGq4EeUqPPOzw==",
       "dev": true,
       "dependencies": {
-        "@basthon/kernel-base": "0.62.10"
+        "@basthon/kernel-base": "0.62.11"
       }
     },
     "node_modules/@basthon/kernel-python3-old": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3-old/-/kernel-python3-old-0.62.10.tgz",
-      "integrity": "sha512-+Y5KD8DJ+e4OvWQUfFuMioCcd2WYD74isn7yo2haGDFmZcueYx99Qrwm7CRPkUhhHBpw1ZX1cCLTzwkzI8/JVA==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3-old/-/kernel-python3-old-0.62.11.tgz",
+      "integrity": "sha512-yNedMl/QyVsjahd+6qlRv8Wrv+CBNhDyI5DWDUtegwiG2GZZFC5kN7IAtZLrX7jP2Ov+KbSuWyXcNWZ0SfeGYA==",
       "dev": true,
       "dependencies": {
-        "@basthon/kernel-base": "0.62.10"
+        "@basthon/kernel-base": "0.62.11"
       }
     },
     "node_modules/@basthon/kernel-sql": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-sql/-/kernel-sql-0.62.10.tgz",
-      "integrity": "sha512-HSLcqEB2XV927beMJJwriRTHQZqaMA5aEWWEot8OsiH8EL9HnffpbdOmc4F7fc0eA+KygNwYG80MgaE5dmnyJA==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-sql/-/kernel-sql-0.62.11.tgz",
+      "integrity": "sha512-8ZJ7YY2K1XwYlxdEEcUG5FGEwbh9CkMZqA7YwO+NX9bDax7G3jsvnhKL6ht2xd6yWrnaSgqF9seV1gWm91taCA==",
       "dev": true,
       "dependencies": {
-        "@basthon/kernel-base": "0.62.10",
+        "@basthon/kernel-base": "0.62.11",
         "@types/sql.js": "1.4.4",
         "sql.js": "1.8.0"
       }
@@ -11598,97 +11598,97 @@
       }
     },
     "@basthon/checkpoints": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/checkpoints/-/checkpoints-0.62.10.tgz",
-      "integrity": "sha512-NQLzNqlkwAUa2fL9UE7JMGmIZOV3S+kWp4vpnwVTGZM0Nng9B47dja5Xnx+QjQkIEes9crIWzLmnJ9g0FtiubQ==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/checkpoints/-/checkpoints-0.62.11.tgz",
+      "integrity": "sha512-/WfxuDWqE1fBjoBHnNU5y5DX3gJxPjfhXqIiBbTQ68kHRRsr6uu0h5xx0SJrVUDMZkrqH1ESJCxXNITHTPLZvA==",
       "dev": true,
       "requires": {
         "localforage": "^1.10.0"
       }
     },
     "@basthon/gui-base": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/gui-base/-/gui-base-0.62.10.tgz",
-      "integrity": "sha512-e8hL+fW2WxdKaB9Ltww5Pm6e8MlXXlzDBY4d5zM/GdLZ1nT0M4qWeOvQyQeEaq9jAHYlQIBJytKe/REcYiIGxw==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/gui-base/-/gui-base-0.62.11.tgz",
+      "integrity": "sha512-ctBjHQRHVx3KV1MJTC7qMbX+pcpZMz/XoBKvMgXM7A944ncJl9jRZ4uLwJBYuffvBV5k4C9QToWdJwShpGksGg==",
       "dev": true,
       "requires": {
-        "@basthon/checkpoints": "0.62.10",
-        "@basthon/kernel-base": "0.62.10",
-        "@basthon/kernel-loader": "0.62.10",
+        "@basthon/checkpoints": "0.62.11",
+        "@basthon/kernel-base": "0.62.11",
+        "@basthon/kernel-loader": "0.62.11",
         "js-base64": "^3.7.2",
         "pako": "^2.0.4",
         "promise-delegate": "^1.0.1"
       }
     },
     "@basthon/kernel-base": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-base/-/kernel-base-0.62.10.tgz",
-      "integrity": "sha512-qABTjOvU/GBfYVstzdAlb6TfpOHfJQBpknuvKPZJOzkTgDJelxhGiriSPTAMxQy6gZ3yRyq9BXdUcb3G5gVA7A==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-base/-/kernel-base-0.62.11.tgz",
+      "integrity": "sha512-sqfGMKyB4I7t6seEeBshHQbOt87nJ4r3kKbR6Vc1ieM8QMcBk0zNrarZO09Xln2CS/WFWqJMSXRZC5PcwO6AUQ==",
       "dev": true,
       "requires": {
         "promise-delegate": "^1.0.1"
       }
     },
     "@basthon/kernel-javascript": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-javascript/-/kernel-javascript-0.62.10.tgz",
-      "integrity": "sha512-W4a9HS0PQ1rcvXGsfXRPrc4FDA4rJa5H+HRGTXJOLwMKAvq7OCrlAnVlhFsQb/LVZk7ubCRCiQdTVCoDEXaKNw==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-javascript/-/kernel-javascript-0.62.11.tgz",
+      "integrity": "sha512-MFuV6PJF4dFn5DMEc6tYI+XdpATIRzunZVFHIA8sL1DxAfAIn6uwJLdd0WoaOMQnIRRWqAp6a63wIG0/Wq1kHw==",
       "dev": true,
       "requires": {
-        "@basthon/kernel-base": "0.62.10"
+        "@basthon/kernel-base": "0.62.11"
       }
     },
     "@basthon/kernel-loader": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-loader/-/kernel-loader-0.62.10.tgz",
-      "integrity": "sha512-4kbVrOMUmB175JaX5ZQJDZ47y+EvJaebB7UqlswcY7CS5VDAVY3uVjSmyfD8NBb7ZEq/n4WndWzarKI3qWfWrA==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-loader/-/kernel-loader-0.62.11.tgz",
+      "integrity": "sha512-DHvpxfRv54hCi43us4tujF2xVvd8E/xt5KQBo4d6Ils2V55fUM2UniuwMAqBLrjYeXdSKXxHBUWWcRqxtYQbXA==",
       "dev": true,
       "requires": {
-        "@basthon/kernel-base": "0.62.10",
-        "@basthon/kernel-javascript": "0.62.10",
-        "@basthon/kernel-ocaml": "0.62.10",
-        "@basthon/kernel-python3": "0.62.10",
-        "@basthon/kernel-python3-old": "0.62.10",
-        "@basthon/kernel-sql": "0.62.10",
+        "@basthon/kernel-base": "0.62.11",
+        "@basthon/kernel-javascript": "0.62.11",
+        "@basthon/kernel-ocaml": "0.62.11",
+        "@basthon/kernel-python3": "0.62.11",
+        "@basthon/kernel-python3-old": "0.62.11",
+        "@basthon/kernel-sql": "0.62.11",
         "promise-delegate": "^1.0.1"
       }
     },
     "@basthon/kernel-ocaml": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-ocaml/-/kernel-ocaml-0.62.10.tgz",
-      "integrity": "sha512-P010EFeyMtRm3Oy6i7aCnJdW6ocSmWcRuTPbAXyZClNURknKMKTK5hy9r/q3VS7PUkBgIO8QYENdyL7yqlRSyw==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-ocaml/-/kernel-ocaml-0.62.11.tgz",
+      "integrity": "sha512-WRJX03fq7tEdJLUS8moIIa3rFlpHCwJYaP4TaJJElQp713YrY/khcU1QJ2zJxNgkzA8p0g6i0S5dXh31FTVmGg==",
       "dev": true,
       "requires": {
-        "@basthon/kernel-base": "0.62.10",
+        "@basthon/kernel-base": "0.62.11",
         "constants-browserify": "^1.0.0",
         "tty-browserify": "^0.0.1"
       }
     },
     "@basthon/kernel-python3": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3/-/kernel-python3-0.62.10.tgz",
-      "integrity": "sha512-QyBRivBQwf7+eJ3VVQUeQhPeY+GwUbBstQ7q8LKNjfpte6SnWKZyE8Q4sTrhU+7B/oe/oGmMSoL+1E8tSulQqg==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3/-/kernel-python3-0.62.11.tgz",
+      "integrity": "sha512-WRJRhnV0iXDn2i5ySv0o2KETPxuXPn23R9EvGdFyxK7e8bknWobM9FswMXzmlfM/jYMBK4MUXyGq4EeUqPPOzw==",
       "dev": true,
       "requires": {
-        "@basthon/kernel-base": "0.62.10"
+        "@basthon/kernel-base": "0.62.11"
       }
     },
     "@basthon/kernel-python3-old": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3-old/-/kernel-python3-old-0.62.10.tgz",
-      "integrity": "sha512-+Y5KD8DJ+e4OvWQUfFuMioCcd2WYD74isn7yo2haGDFmZcueYx99Qrwm7CRPkUhhHBpw1ZX1cCLTzwkzI8/JVA==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-python3-old/-/kernel-python3-old-0.62.11.tgz",
+      "integrity": "sha512-yNedMl/QyVsjahd+6qlRv8Wrv+CBNhDyI5DWDUtegwiG2GZZFC5kN7IAtZLrX7jP2Ov+KbSuWyXcNWZ0SfeGYA==",
       "dev": true,
       "requires": {
-        "@basthon/kernel-base": "0.62.10"
+        "@basthon/kernel-base": "0.62.11"
       }
     },
     "@basthon/kernel-sql": {
-      "version": "0.62.10",
-      "resolved": "https://registry.npmjs.org/@basthon/kernel-sql/-/kernel-sql-0.62.10.tgz",
-      "integrity": "sha512-HSLcqEB2XV927beMJJwriRTHQZqaMA5aEWWEot8OsiH8EL9HnffpbdOmc4F7fc0eA+KygNwYG80MgaE5dmnyJA==",
+      "version": "0.62.11",
+      "resolved": "https://registry.npmjs.org/@basthon/kernel-sql/-/kernel-sql-0.62.11.tgz",
+      "integrity": "sha512-8ZJ7YY2K1XwYlxdEEcUG5FGEwbh9CkMZqA7YwO+NX9bDax7G3jsvnhKL6ht2xd6yWrnaSgqF9seV1gWm91taCA==",
       "dev": true,
       "requires": {
-        "@basthon/kernel-base": "0.62.10",
+        "@basthon/kernel-base": "0.62.11",
         "@types/sql.js": "1.4.4",
         "sql.js": "1.8.0"
       }
diff --git a/package.json b/package.json
index ed6baf43c73abc0f572cc3c20ea1bb4be92a09e3..9c75c86fbbda446180b67645e99358ab95341859 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,7 @@
     "@babel/plugin-transform-runtime": "^7.18.0",
     "@babel/preset-env": "^7.18.0",
     "@babel/preset-typescript": "^7.17.12",
-    "@basthon/gui-base": "0.62.10",
+    "@basthon/gui-base": "0.62.11",
     "@fontsource/open-sans": "^4.5.10",
     "@types/marked": "^4.0.7",
     "@types/node": "^17.0.35",