From c2bcbeaffbe73b5f3679ec818279bc240f9eed05 Mon Sep 17 00:00:00 2001 From: Heath Blandford Date: Thu, 22 Feb 2024 09:44:57 -0600 Subject: [PATCH 1/2] update queires to unpack param dicts and use obj.model_dump() --- academic-events/part_1_data_engineering.ipynb | 2 +- academic-events/part_2_data_exploration.ipynb | 2 +- .../part_3_feature_engineering.ipynb | 4 +- attended-events/part_1_data_engineering.ipynb | 47 +++++++++++++++++-- attended-events/part_2_data_exploration.ipynb | 4 +- .../part_3_feature_engineering.ipynb | 4 +- demand-surge/demand-surge-notebook.ipynb | 4 +- live-tv-events/part_1_data_engineering.ipynb | 2 +- .../part_1_data_engineering.ipynb | 4 +- .../part_3_feature_engineering.ipynb | 4 +- .../part_1_data_engineering.ipynb | 4 +- .../part_2_data_exploration.ipynb | 10 ++-- .../part_3_feature_engineering.ipynb | 4 +- venues/venues-example.ipynb | 4 +- 14 files changed, 68 insertions(+), 31 deletions(-) diff --git a/academic-events/part_1_data_engineering.ipynb b/academic-events/part_1_data_engineering.ipynb index dcf5900..da6d98e 100644 --- a/academic-events/part_1_data_engineering.ipynb +++ b/academic-events/part_1_data_engineering.ipynb @@ -454,7 +454,7 @@ " # If time zones are unknown comment out this line and revert to UTC.\n", " parameters_dict.update(active__tz=timezone)\n", " \n", - " search_results = phq.events.search(parameters_dict).iter_all()\n", + " search_results = phq.events.search(**parameters_dict).iter_all()\n", "\n", " search_results = [result.to_dict() for result in search_results]\n", "\n", diff --git a/academic-events/part_2_data_exploration.ipynb b/academic-events/part_2_data_exploration.ipynb index 9a0845c..c037d64 100644 --- a/academic-events/part_2_data_exploration.ipynb +++ b/academic-events/part_2_data_exploration.ipynb @@ -176,7 +176,7 @@ " lat_long[0],\n", " lat_long[1])) \n", "\n", - " search_results = phq.events.search(parameters_dict).iter_all()\n", + " search_results = phq.events.search(**parameters_dict).iter_all()\n", "\n", " search_results = [result.to_dict() for result in search_results]\n", "\n", diff --git a/academic-events/part_3_feature_engineering.ipynb b/academic-events/part_3_feature_engineering.ipynb index 405d5a8..a0f056f 100644 --- a/academic-events/part_3_feature_engineering.ipynb +++ b/academic-events/part_3_feature_engineering.ipynb @@ -202,7 +202,7 @@ " parameters_dict.update(limit=500)\n", " parameters_dict.update(place__scope=place_id)\n", "\n", - " search_results = phq.events.search(parameters_dict).iter_all()\n", + " search_results = phq.events.search(**parameters_dict).iter_all()\n", "\n", " search_results = [result.to_dict() for result in search_results]\n", "\n", @@ -268,7 +268,7 @@ " lat_long[0],\n", " lat_long[1])) \n", "\n", - " search_results = phq.events.search(parameters_dict).iter_all()\n", + " search_results = phq.events.search(**parameters_dict).iter_all()\n", "\n", " search_results = [result.to_dict() for result in search_results]\n", "\n", diff --git a/attended-events/part_1_data_engineering.ipynb b/attended-events/part_1_data_engineering.ipynb index 3486e6a..ac61def 100644 --- a/attended-events/part_1_data_engineering.ipynb +++ b/attended-events/part_1_data_engineering.ipynb @@ -72,7 +72,22 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jg/874rdkk52ybcm4mdvhrmql600000gn/T/ipykernel_16349/667792319.py:1: DeprecationWarning: \n", + "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n", + "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n", + "but was not found to be installed on your system.\n", + "If this would cause problems for you,\n", + "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n", + " \n", + " import pandas as pd\n" + ] + } + ], "source": [ "import pandas as pd\n", "from predicthq import Client\n", @@ -399,13 +414,35 @@ "cell_type": "code", "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ClientError", + "evalue": "{'error': 'unauthorized'}", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mHTTPError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/client.py:53\u001b[0m, in \u001b[0;36mClient.request\u001b[0;34m(self, method, path, **kwargs)\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 53\u001b[0m \u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraise_for_status\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m requests\u001b[38;5;241m.\u001b[39mHTTPError:\n", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/requests/models.py:1021\u001b[0m, in \u001b[0;36mResponse.raise_for_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1020\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m http_error_msg:\n\u001b[0;32m-> 1021\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m HTTPError(http_error_msg, response\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m)\n", + "\u001b[0;31mHTTPError\u001b[0m: 401 Client Error: Unauthorized for url: https://api.predicthq.com/v1/events/?within=5km%4041.881832%2C-87.623177&active.gte=2019-01-01&active.lte=2021-12-31&active.tz=America%2FChicago&rank.gte=40&category=conferences%2Cexpos%2Cconcerts%2Cfestivals%2Cperforming-arts%2Csports%2Ccommunity&limit=500", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m results \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# Iterating through all the events that match our criteria and adding them to our results\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m event \u001b[38;5;129;01min\u001b[39;00m \u001b[43mphq\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevents\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msearch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparameters\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39miter_all():\n\u001b[1;32m 5\u001b[0m results\u001b[38;5;241m.\u001b[39mappend(event\u001b[38;5;241m.\u001b[39mmodel_dump())\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# Converting the results to a DataFrame\u001b[39;00m\n", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/endpoints/decorators.py:72\u001b[0m, in \u001b[0;36maccepts..decorator..wrapper\u001b[0;34m(endpoint, *args, **kwargs)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m query_string:\n\u001b[1;32m 70\u001b[0m data \u001b[38;5;241m=\u001b[39m _to_url_params(data\u001b[38;5;241m=\u001b[39mdata)\n\u001b[0;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/endpoints/decorators.py:86\u001b[0m, in \u001b[0;36mreturns..decorator..wrapper\u001b[0;34m(endpoint, *args, **kwargs)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(f)\n\u001b[1;32m 82\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(endpoint, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 84\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(endpoint\u001b[38;5;241m.\u001b[39mMeta, f\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, {})\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mreturns\u001b[39m\u001b[38;5;124m\"\u001b[39m, model_class)\n\u001b[0;32m---> 86\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 88\u001b[0m loaded_model \u001b[38;5;241m=\u001b[39m model(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdata)\n", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/endpoints/v1/events/endpoint.py:15\u001b[0m, in \u001b[0;36mEventsEndpoint.search\u001b[0;34m(self, **params)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;129m@accepts\u001b[39m()\n\u001b[1;32m 12\u001b[0m \u001b[38;5;129m@returns\u001b[39m(EventResultSet)\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msearch\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams):\n\u001b[1;32m 14\u001b[0m verify_ssl \u001b[38;5;241m=\u001b[39m params\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mconfig.verify_ssl\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 16\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbuild_url\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mv1\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mevents\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 17\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 18\u001b[0m \u001b[43m \u001b[49m\u001b[43mverify\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mverify_ssl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 19\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/client.py:76\u001b[0m, in \u001b[0;36mClient.get\u001b[0;34m(self, path, **kwargs)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget\u001b[39m(\u001b[38;5;28mself\u001b[39m, path, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 76\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mget\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/client.py:61\u001b[0m, in \u001b[0;36mClient.request\u001b[0;34m(self, method, path, **kwargs)\u001b[0m\n\u001b[1;32m 58\u001b[0m error \u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mcontent\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;241m400\u001b[39m \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m499\u001b[39m:\n\u001b[0;32m---> 61\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ClientError(error)\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 63\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ServerError(error)\n", + "\u001b[0;31mClientError\u001b[0m: {'error': 'unauthorized'}" + ] + } + ], "source": [ "results = []\n", "\n", "# Iterating through all the events that match our criteria and adding them to our results\n", - "for event in phq.events.search(parameters).iter_all():\n", - " results.append(event.to_dict())\n", + "for event in phq.events.search(**parameters).iter_all():\n", + " results.append(event.model_dump())\n", "\n", "# Converting the results to a DataFrame\n", "event_df = pd.DataFrame(results)" @@ -1202,7 +1239,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.11.1" } }, "nbformat": 4, diff --git a/attended-events/part_2_data_exploration.ipynb b/attended-events/part_2_data_exploration.ipynb index becc9a5..b5800d4 100644 --- a/attended-events/part_2_data_exploration.ipynb +++ b/attended-events/part_2_data_exploration.ipynb @@ -177,8 +177,8 @@ "\n", " # Iterating through all the events that match our criteria and\n", " # adding them to our result_list.\n", - " for event in phq.events.search(params).iter_all():\n", - " result_list.append(event.to_dict())\n", + " for event in phq.events.search(**params).iter_all():\n", + " result_list.append(event.model_dump())\n", "\n", " event_df = pd.DataFrame(result_list)\n", "\n", diff --git a/attended-events/part_3_feature_engineering.ipynb b/attended-events/part_3_feature_engineering.ipynb index b29c8f1..740c349 100644 --- a/attended-events/part_3_feature_engineering.ipynb +++ b/attended-events/part_3_feature_engineering.ipynb @@ -241,8 +241,8 @@ "\n", " # Iterating through all the events that match our criteria and\n", " # adding them to our result_list\n", - " for event in phq.events.search(params).iter_all():\n", - " result_list.append(event.to_dict())\n", + " for event in phq.events.search(**params).iter_all():\n", + " result_list.append(event.model_dump())\n", "\n", " event_df = pd.DataFrame(result_list)\n", "\n", diff --git a/demand-surge/demand-surge-notebook.ipynb b/demand-surge/demand-surge-notebook.ipynb index 46101c6..bbcd676 100644 --- a/demand-surge/demand-surge-notebook.ipynb +++ b/demand-surge/demand-surge-notebook.ipynb @@ -1143,8 +1143,8 @@ "\n", " results = []\n", "\n", - " for event in client.events.search(parameters).iter_all():\n", - " results.append(event.to_dict())\n", + " for event in client.events.search(**parameters).iter_all():\n", + " results.append(event.model_dump())\n", "\n", " df = pd.DataFrame(results)\n", " df[\"category\"] = df[\"category\"].str.replace(\"-\", \"_\") # clean values\n", diff --git a/live-tv-events/part_1_data_engineering.ipynb b/live-tv-events/part_1_data_engineering.ipynb index f86ce77..9b17945 100644 --- a/live-tv-events/part_1_data_engineering.ipynb +++ b/live-tv-events/part_1_data_engineering.ipynb @@ -467,7 +467,7 @@ " #parameters_dict.update(location__place_id=place_id) # uncomment/comment as required. \n", " parameters_dict.update(location__origin=lat_long) # uncomment/comment as required. \n", " \n", - " search_results = phq.broadcasts.search(parameters_dict).iter_all()\n", + " search_results = phq.broadcasts.search(**parameters_dict).iter_all()\n", "\n", " search_results = [result.to_dict() for result in search_results]\n", "\n", diff --git a/severe-weather-events/part_1_data_engineering.ipynb b/severe-weather-events/part_1_data_engineering.ipynb index 0069b4d..0c17da8 100644 --- a/severe-weather-events/part_1_data_engineering.ipynb +++ b/severe-weather-events/part_1_data_engineering.ipynb @@ -328,8 +328,8 @@ "results = []\n", "\n", "# Iterating through all the events that match our criteria and adding them to our results\n", - "for event in phq.events.search(parameters).iter_all():\n", - " results.append(event.to_dict())\n", + "for event in phq.events.search(**parameters).iter_all():\n", + " results.append(event.model_dump())\n", "\n", "# Converting the results to a DataFrame\n", "event_df = pd.DataFrame(results)" diff --git a/severe-weather-events/part_3_feature_engineering.ipynb b/severe-weather-events/part_3_feature_engineering.ipynb index 504fb6d..61f4f7c 100644 --- a/severe-weather-events/part_3_feature_engineering.ipynb +++ b/severe-weather-events/part_3_feature_engineering.ipynb @@ -248,8 +248,8 @@ "\n", " # Iterating through all the events that match our criteria and\n", " # adding them to our result_list\n", - " for event in phq.events.search(params).iter_all():\n", - " result_list.append(event.to_dict())\n", + " for event in phq.events.search(**params).iter_all():\n", + " result_list.append(event.model_dump())\n", "\n", " event_df = pd.DataFrame(result_list)\n", " # Selecting the target fields\n", diff --git a/unattended-events/part_1_data_engineering.ipynb b/unattended-events/part_1_data_engineering.ipynb index 56e62ea..3d4b7fd 100644 --- a/unattended-events/part_1_data_engineering.ipynb +++ b/unattended-events/part_1_data_engineering.ipynb @@ -344,8 +344,8 @@ "results = []\n", "\n", "# Iterating through all the events that match our criteria and adding them to our results\n", - "for event in phq.events.search(parameters).iter_all():\n", - " results.append(event.to_dict())\n", + "for event in phq.events.search(**parameters).iter_all():\n", + " results.append(event.model_dump())\n", "\n", "# Converting the results to a DataFrame\n", "event_df = pd.DataFrame(results)" diff --git a/unattended-events/part_2_data_exploration.ipynb b/unattended-events/part_2_data_exploration.ipynb index e3906e1..ea0b09d 100644 --- a/unattended-events/part_2_data_exploration.ipynb +++ b/unattended-events/part_2_data_exploration.ipynb @@ -159,8 +159,8 @@ "\n", " # Iterating through all the events that match our criteria and\n", " # adding them to our result_list\n", - " for event in phq.events.search(params).iter_all():\n", - " result_list.append(event.to_dict())\n", + " for event in phq.events.search(**params).iter_all():\n", + " result_list.append(event.model_dump())\n", "\n", " event_df = pd.DataFrame(result_list)\n", " # Selecting the target fields\n", @@ -19004,8 +19004,8 @@ " result_list = []\n", "\n", " # Iterating through all the events that match our criteria and adding them to our result_list\n", - " for event in phq.events.search(parameters_dict).iter_all():\n", - " result_list.append(event.to_dict())\n", + " for event in phq.events.search(**parameters_dict).iter_all():\n", + " result_list.append(event.model_dump())\n", "\n", " if len(result_list) > 0:\n", " state_holiday_indicator[state] = 1\n", @@ -19131,7 +19131,7 @@ "\n", "# Iterating through all the events that match our criteria and adding them to our results\n", "for event in phq.events.search(mont_parameters).iter_all():\n", - " mont_results.append(event.to_dict())\n", + " mont_results.append(event.model_dump())\n", "\n", "# Converting the results to a DataFrame\n", "montana_school_holiday_df = pd.DataFrame(mont_results)\n", diff --git a/unattended-events/part_3_feature_engineering.ipynb b/unattended-events/part_3_feature_engineering.ipynb index 1863a83..76bb867 100644 --- a/unattended-events/part_3_feature_engineering.ipynb +++ b/unattended-events/part_3_feature_engineering.ipynb @@ -223,8 +223,8 @@ "\n", " # Iterating through all the events that match our criteria and\n", " # adding them to our result_list\n", - " for event in phq.events.search(params).iter_all():\n", - " result_list.append(event.to_dict())\n", + " for event in phq.events.search(**params).iter_all():\n", + " result_list.append(event.model_dump())\n", "\n", " event_df = pd.DataFrame(result_list)\n", " # Selecting the target fields\n", diff --git a/venues/venues-example.ipynb b/venues/venues-example.ipynb index bf203b5..492257f 100644 --- a/venues/venues-example.ipynb +++ b/venues/venues-example.ipynb @@ -428,8 +428,8 @@ "results = []\n", "\n", "# Iterating through all the events that match our criteria and adding them to our results\n", - "for event in phq.events.search(parameters).iter_all():\n", - " results.append(event.to_dict())\n", + "for event in phq.events.search(**parameters).iter_all():\n", + " results.append(event.model_dump())\n", "\n", "# Converting the results to a DataFrame\n", "event_df = pd.DataFrame(results)\n" From fc23343373fa3600f56b421acfcefeec024a32a6 Mon Sep 17 00:00:00 2001 From: "heath.blandford" Date: Thu, 22 Feb 2024 09:53:01 -0600 Subject: [PATCH 2/2] clear outputs and erroneous changes --- attended-events/part_1_data_engineering.ipynb | 47 ++----------------- 1 file changed, 5 insertions(+), 42 deletions(-) diff --git a/attended-events/part_1_data_engineering.ipynb b/attended-events/part_1_data_engineering.ipynb index ac61def..544d19d 100644 --- a/attended-events/part_1_data_engineering.ipynb +++ b/attended-events/part_1_data_engineering.ipynb @@ -70,24 +70,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/jg/874rdkk52ybcm4mdvhrmql600000gn/T/ipykernel_16349/667792319.py:1: DeprecationWarning: \n", - "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n", - "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n", - "but was not found to be installed on your system.\n", - "If this would cause problems for you,\n", - "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n", - " \n", - " import pandas as pd\n" - ] - } - ], + "outputs": [], "source": [ "import pandas as pd\n", "from predicthq import Client\n", @@ -412,31 +397,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "ClientError", - "evalue": "{'error': 'unauthorized'}", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mHTTPError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/client.py:53\u001b[0m, in \u001b[0;36mClient.request\u001b[0;34m(self, method, path, **kwargs)\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 53\u001b[0m \u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraise_for_status\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m requests\u001b[38;5;241m.\u001b[39mHTTPError:\n", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/requests/models.py:1021\u001b[0m, in \u001b[0;36mResponse.raise_for_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1020\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m http_error_msg:\n\u001b[0;32m-> 1021\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m HTTPError(http_error_msg, response\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m)\n", - "\u001b[0;31mHTTPError\u001b[0m: 401 Client Error: Unauthorized for url: https://api.predicthq.com/v1/events/?within=5km%4041.881832%2C-87.623177&active.gte=2019-01-01&active.lte=2021-12-31&active.tz=America%2FChicago&rank.gte=40&category=conferences%2Cexpos%2Cconcerts%2Cfestivals%2Cperforming-arts%2Csports%2Ccommunity&limit=500", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[15], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m results \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# Iterating through all the events that match our criteria and adding them to our results\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m event \u001b[38;5;129;01min\u001b[39;00m \u001b[43mphq\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevents\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msearch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparameters\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39miter_all():\n\u001b[1;32m 5\u001b[0m results\u001b[38;5;241m.\u001b[39mappend(event\u001b[38;5;241m.\u001b[39mmodel_dump())\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# Converting the results to a DataFrame\u001b[39;00m\n", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/endpoints/decorators.py:72\u001b[0m, in \u001b[0;36maccepts..decorator..wrapper\u001b[0;34m(endpoint, *args, **kwargs)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m query_string:\n\u001b[1;32m 70\u001b[0m data \u001b[38;5;241m=\u001b[39m _to_url_params(data\u001b[38;5;241m=\u001b[39mdata)\n\u001b[0;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/endpoints/decorators.py:86\u001b[0m, in \u001b[0;36mreturns..decorator..wrapper\u001b[0;34m(endpoint, *args, **kwargs)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(f)\n\u001b[1;32m 82\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(endpoint, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 84\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(endpoint\u001b[38;5;241m.\u001b[39mMeta, f\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, {})\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mreturns\u001b[39m\u001b[38;5;124m\"\u001b[39m, model_class)\n\u001b[0;32m---> 86\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43mendpoint\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 88\u001b[0m loaded_model \u001b[38;5;241m=\u001b[39m model(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdata)\n", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/endpoints/v1/events/endpoint.py:15\u001b[0m, in \u001b[0;36mEventsEndpoint.search\u001b[0;34m(self, **params)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;129m@accepts\u001b[39m()\n\u001b[1;32m 12\u001b[0m \u001b[38;5;129m@returns\u001b[39m(EventResultSet)\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msearch\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams):\n\u001b[1;32m 14\u001b[0m verify_ssl \u001b[38;5;241m=\u001b[39m params\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mconfig.verify_ssl\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 16\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbuild_url\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mv1\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mevents\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 17\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 18\u001b[0m \u001b[43m \u001b[49m\u001b[43mverify\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mverify_ssl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 19\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/client.py:76\u001b[0m, in \u001b[0;36mClient.get\u001b[0;34m(self, path, **kwargs)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget\u001b[39m(\u001b[38;5;28mself\u001b[39m, path, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 76\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mget\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/phq-data-science-docs/attended-events/.venv/lib/python3.11/site-packages/predicthq/client.py:61\u001b[0m, in \u001b[0;36mClient.request\u001b[0;34m(self, method, path, **kwargs)\u001b[0m\n\u001b[1;32m 58\u001b[0m error \u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mcontent\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;241m400\u001b[39m \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m499\u001b[39m:\n\u001b[0;32m---> 61\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ClientError(error)\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 63\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ServerError(error)\n", - "\u001b[0;31mClientError\u001b[0m: {'error': 'unauthorized'}" - ] - } - ], + "outputs": [], "source": [ "results = []\n", "\n", @@ -1239,7 +1202,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.1" + "version": "3.8.8" } }, "nbformat": 4,