You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2024/03/22 05:19:18 UTC

(superset) 02/02: using temp directory

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch more-notebook-tweaks
in repository https://gitbox.apache.org/repos/asf/superset.git

commit d3b5d5d090f56666f53624bab34ba525b13040a6
Author: Evan Rusackas <ev...@rusackas.com>
AuthorDate: Thu Mar 21 23:19:07 2024 -0600

    using temp directory
---
 .../scripts/Country Map GeoJSON Generator.ipynb    | 104 +++++++++++++++++++--
 1 file changed, 94 insertions(+), 10 deletions(-)

diff --git a/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb b/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb
index 28e9142552..637f53648c 100644
--- a/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb	
+++ b/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/Country Map GeoJSON Generator.ipynb	
@@ -42,7 +42,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -63,7 +63,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {
     "colab": {
      "base_uri": "https://localhost:8080/"
@@ -71,11 +71,25 @@
     "id": "VjGrqW4Kt1LS",
     "outputId": "2e2accda-5ee4-4270-872e-ecb78d0d02a2"
    },
-   "outputs": [],
-   "source": [
-    "data_dir = os.path.expanduser(\"~/Downloads\")\n",
-    "if not os.path.exists(data_dir):\n",
-    "    os.mkdir(data_dir)\n",
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Error downloading files. Please open the URL to download them from browser manually.\n",
+      "Done.                                                               \n"
+     ]
+    }
+   ],
+   "source": [
+    "# Get the directory of this notebook\n",
+    "notebook_dir = os.getcwd()\n",
+    "\n",
+    "# Construct the relative path to the directory alongside the notebook in /tmp\n",
+    "data_dir = os.path.join(notebook_dir, 'tmp_geojson')\n",
+    "\n",
+    "# Ensure the directory exists, if not, create it\n",
+    "os.makedirs(data_dir, exist_ok=True)\n",
     "\n",
     "def download_files(skip_existing=True):\n",
     "    for url in [\n",
@@ -114,7 +128,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 9,
    "metadata": {
     "colab": {
      "base_uri": "https://localhost:8080/"
@@ -122,7 +136,31 @@
     "id": "EL0e9DEVt1LT",
     "outputId": "16cd6450-d4a3-457a-b205-9797bbce33fc"
    },
-   "outputs": [],
+   "outputs": [
+    {
+     "ename": "DriverError",
+     "evalue": "'/vsizip//Users/evan_1/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/tmp_geojson/ne_10m_admin_0_countries.zip' does not exist in the file system, and is not recognized as a supported dataset name.",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mCPLE_OpenFailedError\u001b[0m                      Traceback (most recent call last)",
+      "File \u001b[0;32mfiona/ogrext.pyx:136\u001b[0m, in \u001b[0;36mfiona.ogrext.gdal_open_vector\u001b[0;34m()\u001b[0m\n",
+      "File \u001b[0;32mfiona/_err.pyx:291\u001b[0m, in \u001b[0;36mfiona._err.exc_wrap_pointer\u001b[0;34m()\u001b[0m\n",
+      "\u001b[0;31mCPLE_OpenFailedError\u001b[0m: '/vsizip//Users/evan_1/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/tmp_geojson/ne_10m_admin_0_countries.zip' does not exist in the file system, and is not recognized as a supported dataset name.",
+      "\nDuring handling of the above exception, another exception occurred:\n",
+      "\u001b[0;31mDriverError\u001b[0m                               Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[9], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;66;03m# Read Natural Earth data files into GeoDataFrames\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m df_admin0_10m \u001b[38;5;241m=\u001b[39m \u001b[43mgpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_file\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43mf\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;132;43;01m{\u001b[39;49;00m\u001b[43mdata_dir\u001b[49m\u001b[38;5;132;43;01 [...]
+      "File \u001b[0;32m/usr/local/lib/python3.11/site-packages/geopandas/io/file.py:297\u001b[0m, in \u001b[0;36m_read_file\u001b[0;34m(filename, bbox, mask, rows, engine, **kwargs)\u001b[0m\n\u001b[1;32m    294\u001b[0m     \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m    295\u001b[0m         path_or_bytes \u001b[38;5;241m=\u001b[39m filename\n\u001b[0;32m--> 297\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read_file_fiona\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1; [...]
+      "File \u001b[0;32m/usr/local/lib/python3.11/site-packages/geopandas/io/file.py:338\u001b[0m, in \u001b[0;36m_read_file_fiona\u001b[0;34m(path_or_bytes, from_bytes, bbox, mask, rows, where, **kwargs)\u001b[0m\n\u001b[1;32m    335\u001b[0m     reader \u001b[38;5;241m=\u001b[39m fiona\u001b[38;5;241m.\u001b[39mopen\n\u001b[1;32m    337\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m fiona_env():\n\u001b[0;32m--> 338\u001b[0m     \u001b[38;5;28;01mwith\u001b[39;00m \u001b[43mreader\u001b[ [...]
+      "File \u001b[0;32m/usr/local/lib/python3.11/site-packages/fiona/env.py:457\u001b[0m, in \u001b[0;36mensure_env_with_credentials.<locals>.wrapper\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m    454\u001b[0m     session \u001b[38;5;241m=\u001b[39m DummySession()\n\u001b[1;32m    456\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m env_ctor(session\u001b[38;5;241m=\u001b[39msession):\n\u001b[0;32m--> 457\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[4 [...]
+      "File \u001b[0;32m/usr/local/lib/python3.11/site-packages/fiona/__init__.py:292\u001b[0m, in \u001b[0;36mopen\u001b[0;34m(fp, mode, driver, schema, crs, encoding, layer, vfs, enabled_drivers, crs_wkt, allow_unsupported_drivers, **kwargs)\u001b[0m\n\u001b[1;32m    289\u001b[0m     path \u001b[38;5;241m=\u001b[39m parse_path(fp)\n\u001b[1;32m    291\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m mode \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ma\u001b[ [...]
+      "File \u001b[0;32m/usr/local/lib/python3.11/site-packages/fiona/collection.py:243\u001b[0m, in \u001b[0;36mCollection.__init__\u001b[0;34m(self, path, mode, driver, schema, crs, encoding, layer, vsi, archive, enabled_drivers, crs_wkt, ignore_fields, ignore_geometry, include_fields, wkt_version, allow_unsupported_drivers, **kwargs)\u001b[0m\n\u001b[1;32m    241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmode \u001b[38;5;241m==\ [...]
+      "File \u001b[0;32mfiona/ogrext.pyx:588\u001b[0m, in \u001b[0;36mfiona.ogrext.Session.start\u001b[0;34m()\u001b[0m\n",
+      "File \u001b[0;32mfiona/ogrext.pyx:143\u001b[0m, in \u001b[0;36mfiona.ogrext.gdal_open_vector\u001b[0;34m()\u001b[0m\n",
+      "\u001b[0;31mDriverError\u001b[0m: '/vsizip//Users/evan_1/GitHub/superset/superset-frontend/plugins/legacy-plugin-chart-country-map/scripts/tmp_geojson/ne_10m_admin_0_countries.zip' does not exist in the file system, and is not recognized as a supported dataset name."
+     ]
+    }
+   ],
    "source": [
     "# Read Natural Earth data files into GeoDataFrames\n",
     "df_admin0_10m = gpd.read_file(f\"{data_dir}/ne_10m_admin_0_countries.zip\")\n",
@@ -1295,6 +1333,52 @@
     "\n",
     "print(\"TypeScript code written to src/countries.ts\")"
    ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "Fb58eGlIt1LW"
+   },
+   "source": [
+    "## Clean Up"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# method to clean out our temporary geojson from the data directory\n",
+    "# this ensures (a) we don't commmit junk to the repo, and (b) we get fresh geojson each time we run this\n",
+    "def empty_directory(directory):\n",
+    "    for filename in os.listdir(directory):\n",
+    "        file_path = os.path.join(directory, filename)\n",
+    "        try:\n",
+    "            if os.path.isfile(file_path) or os.path.islink(file_path):\n",
+    "                os.unlink(file_path)\n",
+    "            elif os.path.isdir(file_path):\n",
+    "                shutil.rmtree(file_path)\n",
+    "        except Exception as e:\n",
+    "            print(f\"Failed to delete {file_path}. Reason: {e}\")\n",
+    "\n",
+    "# do it!\n",
+    "empty_directory(data_dir)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
@@ -1316,7 +1400,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.11.8"
+   "version": "3.11.5"
   },
   "vscode": {
    "interpreter": {