{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5e04e469-d3eb-42ca-b548-5e6f1fa6af9d",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Buckaroo has been enabled as the default DataFrame viewer.  To return to default dataframe visualization use `from buckaroo import disable; disable()`\n"
     ]
    }
   ],
   "source": [
    "import buckaroo\n",
    "import duckdb\n",
    "import pandas as pd\n",
    "import polars as pl"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "97c8e92b-21e4-4cc5-8dbe-7b42361ce3f9",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "con = duckdb.connect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e02f2416-fd16-444b-8fd4-eec2cecee5a7",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<duckdb.duckdb.DuckDBPyConnection at 0x7f98234c1730>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "DESCRIBE '/data/tables/output/en/11100025.parquet';\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "fafa7ce7-8619-4951-8c73-7bfbc66dc92f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('REF_DATE', 'VARCHAR', 'YES', None, None, None),\n",
       " ('REF_START_DATE', 'TIMESTAMP_NS', 'YES', None, None, None),\n",
       " ('REF_END_DATE', 'TIMESTAMP_NS', 'YES', None, None, None),\n",
       " ('GEO', 'VARCHAR', 'YES', None, None, None),\n",
       " ('DGUID', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Selected characteristics', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Low income threshold', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Years in low income', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Statistics', 'VARCHAR', 'YES', None, None, None),\n",
       " ('UOM', 'VARCHAR', 'YES', None, None, None),\n",
       " ('UOM_ID', 'SMALLINT', 'YES', None, None, None),\n",
       " ('SCALAR_FACTOR', 'VARCHAR', 'YES', None, None, None),\n",
       " ('SCALAR_ID', 'TINYINT', 'YES', None, None, None),\n",
       " ('VECTOR', 'VARCHAR', 'YES', None, None, None),\n",
       " ('COORDINATE', 'VARCHAR', 'YES', None, None, None),\n",
       " ('VALUE', 'DOUBLE', 'YES', None, None, None),\n",
       " ('STATUS', 'VARCHAR', 'YES', None, None, None),\n",
       " ('SYMBOL', 'VARCHAR', 'YES', None, None, None),\n",
       " ('TERMINATED', 'VARCHAR', 'YES', None, None, None),\n",
       " ('DECIMALS', 'TINYINT', 'YES', None, None, None)]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.fetchall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a4ed2881-91b7-4473-b246-a969ef59efba",
   "metadata": {},
   "outputs": [],
   "source": [
    "#con.execute(\"SELECT DISTINCT REF_DATE FROM '/data/tables/output/en/testing/36100670.parquet' ORDER BY REF_DATE\").pl()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f400feee-efb6-421a-b518-1f9c0fc21bcb",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "test = con.execute(\"\"\"\n",
    "SELECT DISTINCT substring(DGUID, 1, 9) AS table, GEO\n",
    "FROM '/data/tables/output/en/11100025.parquet'\n",
    "\"\"\").pl()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a187c850-981e-4348-a57d-2f25e57cf9db",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b34ba390571b41a9b387a493af10cf30",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "PolarsBuckarooWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], 'p…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ff3eb520-c78b-4976-b734-840dc0fa53ab",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "ename": "IOException",
     "evalue": "IO Error: No files found that match the pattern \"/data/tables/output/en/43100011.parquet\"",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mIOException\u001b[39m                               Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[8]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mcon\u001b[49m\u001b[43m.\u001b[49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\"\"\u001b[39;49m\n\u001b[32m      2\u001b[39m \u001b[33;43mSELECT *\u001b[39;49m\n\u001b[32m      3\u001b[39m \u001b[33;43mFROM parquet_file_metadata(\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[33;43m/data/tables/output/en/43100011.parquet\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[33;43m);\u001b[39;49m\n\u001b[32m      4\u001b[39m \u001b[33;43m\"\"\"\u001b[39;49m\u001b[43m)\u001b[49m\n",
      "\u001b[31mIOException\u001b[39m: IO Error: No files found that match the pattern \"/data/tables/output/en/43100011.parquet\""
     ]
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "SELECT *\n",
    "FROM parquet_file_metadata('/data/tables/output/en/43100011.parquet');\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "30c8fc7e-cafd-43ec-a58f-aed4128df594",
   "metadata": {
    "editable": true,
    "slideshow": {
     "slide_type": ""
    },
    "tags": []
   },
   "outputs": [
    {
     "ename": "InvalidInputException",
     "evalue": "Invalid Input Error: No open result set",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mInvalidInputException\u001b[39m                     Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[9]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mcon\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfetchall\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
      "\u001b[31mInvalidInputException\u001b[39m: Invalid Input Error: No open result set"
     ]
    }
   ],
   "source": [
    "con.fetchall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "10f3238b-36a6-4033-a299-fc04190e9d63",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<duckdb.duckdb.DuckDBPyConnection at 0x7f98234c1730>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "SELECT DISTINCT DGUID, GEO, filename\n",
    "FROM read_parquet('/data/tables/output/en/*.parquet', filename=true)\n",
    "ORDER BY DGUID ASC\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "dcf81727-340c-4bcc-aec3-7133e0010eda",
   "metadata": {},
   "outputs": [],
   "source": [
    "distinct_dguid_geo = con.fetch_df()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "0d2f2de4-e033-4181-aaf5-9e8c3fd335b1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a63c08e7e631482e855887bbec5c1c28",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "BuckarooInfiniteWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "distinct_dguid_geo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "cfd1621f-9c4e-46ba-a64e-1c191ff27b35",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<duckdb.duckdb.DuckDBPyConnection at 0x7f98234c1730>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "SELECT DISTINCT REF_DATE, REF_START_DATE, REF_END_DATE, filename\n",
    "FROM read_parquet('/data/tables/output/en/*.parquet', filename=true)\n",
    "ORDER BY REF_START_DATE ASC\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "5b5fed59-b900-47a0-8ab5-15e557f02dbf",
   "metadata": {},
   "outputs": [],
   "source": [
    "distinct_ref_date = con.fetch_df()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "41fbfb30-a471-4304-a985-9367ab589107",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2f1c49faa4374435bf1147c06696b65f",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "BuckarooInfiniteWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "distinct_ref_date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "51a6663f-55e8-45c0-ab0e-dc85a5f69278",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<duckdb.duckdb.DuckDBPyConnection at 0x7f41d8274870>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "SELECT * FROM parquet_file_metadata('/data/tables/output/en/*.parquet')\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "07fc9ad3-1512-48cc-975f-5a9e7f633d30",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "02c94fd7d5d245baa91972617f80026a",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "BuckarooInfiniteWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "con.fetch_df()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "2c01e753-5c54-403a-be2e-c65d3d4bdc89",
   "metadata": {},
   "outputs": [],
   "source": [
    "import glob"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "fa16862e-60b6-4ae7-a8f2-55bdcc5edb68",
   "metadata": {},
   "outputs": [],
   "source": [
    "output_parquet_files = glob.glob(\"/data/tables/output/en/*.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "e5edf922-f945-413e-8aca-2929eb6b8d2f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                         column_name   column_type null   key default extra\n",
      "0                           REF_DATE       VARCHAR  YES  None    None  None\n",
      "1                     REF_START_DATE  TIMESTAMP_NS  YES  None    None  None\n",
      "2                       REF_END_DATE  TIMESTAMP_NS  YES  None    None  None\n",
      "3                                GEO       VARCHAR  YES  None    None  None\n",
      "4                              DGUID       VARCHAR  YES  None    None  None\n",
      "5   Federal public sector employment       VARCHAR  YES  None    None  None\n",
      "6                                UOM       VARCHAR  YES  None    None  None\n",
      "7                             UOM_ID      SMALLINT  YES  None    None  None\n",
      "8                      SCALAR_FACTOR       VARCHAR  YES  None    None  None\n",
      "9                          SCALAR_ID       TINYINT  YES  None    None  None\n",
      "10                            VECTOR       VARCHAR  YES  None    None  None\n",
      "11                        COORDINATE       VARCHAR  YES  None    None  None\n",
      "12                             VALUE        BIGINT  YES  None    None  None\n",
      "13                            STATUS       VARCHAR  YES  None    None  None\n",
      "14                            SYMBOL       VARCHAR  YES  None    None  None\n",
      "15                        TERMINATED       VARCHAR  YES  None    None  None\n",
      "16                          DECIMALS       TINYINT  YES  None    None  None\n"
     ]
    }
   ],
   "source": [
    "for parquet_file in output_parquet_files:\n",
    "    con.execute(f\"DESCRIBE '{parquet_file}'\")\n",
    "    value = con.fetch_df()\n",
    "    print(value)\n",
    "    break\n",
    "    length_value_column = len(value[value['column_name'] == 'VALUE'][['column_name', 'column_type']])\n",
    "    if length_value_column == 0:\n",
    "        print(value)\n",
    "        #print(value[value['column_name'] == 'VALUE'])\n",
    "        print(parquet_file)    \n",
    "        break"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f83e0e6-6126-44ca-974b-db92a97472cf",
   "metadata": {},
   "source": [
    "# Issue because there's a `Value` and `VALUE` columns in the CSV\n",
    "`Value` and `VALUE` columns end up as `Value` and `VALUE_1` columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "fc588dd7-a0d2-4b79-9c27-a6502ff99053",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('REF_DATE', 'VARCHAR', 'YES', None, None, None),\n",
       " ('REF_START_DATE', 'TIMESTAMP_NS', 'YES', None, None, None),\n",
       " ('REF_END_DATE', 'TIMESTAMP_NS', 'YES', None, None, None),\n",
       " ('GEO', 'VARCHAR', 'YES', None, None, None),\n",
       " ('DGUID', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Value', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Type of cannabis', 'VARCHAR', 'YES', None, None, None),\n",
       " ('UOM', 'VARCHAR', 'YES', None, None, None),\n",
       " ('UOM_ID', 'SMALLINT', 'YES', None, None, None),\n",
       " ('SCALAR_FACTOR', 'VARCHAR', 'YES', None, None, None),\n",
       " ('SCALAR_ID', 'TINYINT', 'YES', None, None, None),\n",
       " ('VECTOR', 'VARCHAR', 'YES', None, None, None),\n",
       " ('COORDINATE', 'VARCHAR', 'YES', None, None, None),\n",
       " ('VALUE_1', 'BIGINT', 'YES', None, None, None),\n",
       " ('STATUS', 'VARCHAR', 'YES', None, None, None),\n",
       " ('SYMBOL', 'VARCHAR', 'YES', None, None, None),\n",
       " ('TERMINATED', 'VARCHAR', 'YES', None, None, None),\n",
       " ('DECIMALS', 'TINYINT', 'YES', None, None, None)]"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"DESCRIBE '/data/tables/output/en/10100164.parquet'\")\n",
    "con.fetchall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "fef3d2e2-91c5-4fdf-bb00-3928c8f52d11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('REF_DATE', 'VARCHAR', 'YES', None, None, None),\n",
       " ('REF_START_DATE', 'TIMESTAMP_NS', 'YES', None, None, None),\n",
       " ('REF_END_DATE', 'TIMESTAMP_NS', 'YES', None, None, None),\n",
       " ('GEO', 'VARCHAR', 'YES', None, None, None),\n",
       " ('DGUID', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Mainline companies', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Property accounts', 'VARCHAR', 'YES', None, None, None),\n",
       " ('Value', 'VARCHAR', 'YES', None, None, None),\n",
       " ('UOM', 'VARCHAR', 'YES', None, None, None),\n",
       " ('UOM_ID', 'SMALLINT', 'YES', None, None, None),\n",
       " ('SCALAR_FACTOR', 'VARCHAR', 'YES', None, None, None),\n",
       " ('SCALAR_ID', 'TINYINT', 'YES', None, None, None),\n",
       " ('VECTOR', 'VARCHAR', 'YES', None, None, None),\n",
       " ('COORDINATE', 'VARCHAR', 'YES', None, None, None),\n",
       " ('VALUE_1', 'BIGINT', 'YES', None, None, None),\n",
       " ('STATUS', 'VARCHAR', 'YES', None, None, None),\n",
       " ('SYMBOL', 'VARCHAR', 'YES', None, None, None),\n",
       " ('TERMINATED', 'VARCHAR', 'YES', None, None, None),\n",
       " ('DECIMALS', 'TINYINT', 'YES', None, None, None)]"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"DESCRIBE '/data/tables/output/en/23100049.parquet'\")\n",
    "con.fetchall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "0b251432-48d9-4538-acb9-58df20187a1d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',),\n",
       " ('Value of sales per capita',)]"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"SELECT Value FROM '/data/tables/output/en/10100164.parquet'\")\n",
    "con.fetchall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "5cd6de4c-248a-45bd-bb15-3ebae33c55f0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<duckdb.duckdb.DuckDBPyConnection at 0x7f41d8274870>"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "SELECT * FROM '/data/tables/output/en/23100049.parquet';\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "f7a371cb-d45b-4cc7-b18f-cf5ed1f3cca1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f17b83dd00ce4af8acd6824b2171e2da",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "BuckarooInfiniteWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "con.fetch_df()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "ecf6ef73-c115-46c4-9230-7fd79cc53f88",
   "metadata": {},
   "outputs": [],
   "source": [
    "d = {'Value': [col11, 2], 'VALUE': [3, 4]}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "a706dfcf-c983-4983-9f41-3eb5aae1c2b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(data=d)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "576b48d1-7050-4b2c-a8f6-b3dfad9177e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    3\n",
       "1    4\n",
       "Name: VALUE, dtype: int64"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['VALUE']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "e7f996fa-1c89-4836-a2e5-58d65f62c676",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c26a3ce238d843518e858ab868302a67",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "BuckarooInfiniteWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pd.read_parquet(\"/data/tables/output/en/10100164.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "0d04167d-2710-4082-afc5-d12a0da276ce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<duckdb.duckdb.DuckDBPyConnection at 0x7f98234c1730>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(\"\"\"\n",
    "SELECT DGUID, 'Federal public sector employment' FROM '/data/tables/output/en/10100001.parquet';\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "09ff55f7-9c51-4864-9304-7cbcc5301aea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f837800f39db40b3af067c94bbd19d9c",
       "version_major": 2,
       "version_minor": 1
      },
      "text/plain": [
       "BuckarooInfiniteWidget(buckaroo_options={'sampled': ['random'], 'auto_clean': ['aggressive', 'conservative'], …"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "con.fetch_df()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "90f6840a-7f12-4c18-ba98-4a353b7d9346",
   "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.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
