diff --git a/.github/controls/check_notebooks.ipynb b/.github/controls/check_notebooks.ipynb index 4a793a463d..06a1cd4ab6 100644 --- a/.github/controls/check_notebooks.ipynb +++ b/.github/controls/check_notebooks.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "id": "6933ee71-8013-4aa8-9527-6a567845e10e", "metadata": {}, @@ -9,6 +10,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "d446a1b5-92be-4fb5-b732-3674fb19ccec", "metadata": {}, @@ -17,6 +19,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "21e72fae-2204-42c3-b0eb-3885fa38a589", "metadata": {}, @@ -25,6 +28,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "a65dcb87-29c1-4092-a6dd-29e3ce143bba", "metadata": {}, @@ -33,6 +37,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "deef151b-b723-46ac-ac41-1c19d29e1fc6", "metadata": {}, @@ -41,6 +46,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "59b780f5-f3b8-416f-bb16-1119a40dac28", "metadata": {}, @@ -67,6 +73,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "0e4f6797-945a-4be4-9217-f9c11794acea", "metadata": {}, @@ -75,6 +82,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "3c6d9e20-03c5-4522-90ea-36b784d2c03d", "metadata": {}, @@ -113,6 +121,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "7ce1fed7-aac9-442b-a77e-52a062d19ce7", "metadata": {}, @@ -192,6 +201,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "40df42a5-78f7-4542-8df8-ca3e1c6fd166", "metadata": {}, @@ -215,6 +225,7 @@ " if '.github' in file or len(file.split('/')) == 3:\n", " continue\n", "\n", + " print(f\"Analyzing {file}\")\n", " notebook = json.load(open(file))\n", " cells = notebook.get('cells')\n", " \n", diff --git a/.github/push_templates_to_algolia.ipynb b/.github/push_templates_to_algolia.ipynb index 7aa5575213..442f6e9902 100644 --- a/.github/push_templates_to_algolia.ipynb +++ b/.github/push_templates_to_algolia.ipynb @@ -54,10 +54,10 @@ "id": "aa0e3e6f-1260-4452-8abf-7c084e26c8a4", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:37.241176Z", - "iopub.status.busy": "2023-06-21T06:59:37.240376Z", - "iopub.status.idle": "2023-06-21T06:59:37.306707Z", - "shell.execute_reply": "2023-06-21T06:59:37.305693Z" + "iopub.execute_input": "2023-08-22T12:59:22.962296Z", + "iopub.status.busy": "2023-08-22T12:59:22.961923Z", + "iopub.status.idle": "2023-08-22T12:59:23.017512Z", + "shell.execute_reply": "2023-08-22T12:59:23.016841Z" }, "papermill": {}, "tags": [] @@ -95,10 +95,10 @@ "id": "cfa97168-63eb-4e8c-89c3-0a5d26f47740", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:37.312361Z", - "iopub.status.busy": "2023-06-21T06:59:37.311942Z", - "iopub.status.idle": "2023-06-21T06:59:37.318006Z", - "shell.execute_reply": "2023-06-21T06:59:37.317108Z" + "iopub.execute_input": "2023-08-22T12:59:23.020950Z", + "iopub.status.busy": "2023-08-22T12:59:23.020509Z", + "iopub.status.idle": "2023-08-22T12:59:23.024126Z", + "shell.execute_reply": "2023-08-22T12:59:23.023494Z" }, "papermill": {}, "tags": [] @@ -141,10 +141,10 @@ "id": "7a9c86c2-931d-4113-abbc-31b3f517b6c4", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:37.323298Z", - "iopub.status.busy": "2023-06-21T06:59:37.322724Z", - "iopub.status.idle": "2023-06-21T06:59:37.335602Z", - "shell.execute_reply": "2023-06-21T06:59:37.334946Z" + "iopub.execute_input": "2023-08-22T12:59:23.027479Z", + "iopub.status.busy": "2023-08-22T12:59:23.026959Z", + "iopub.status.idle": "2023-08-22T12:59:23.039023Z", + "shell.execute_reply": "2023-08-22T12:59:23.038397Z" }, "tags": [] }, @@ -178,10 +178,10 @@ "id": "c50e96b2-4403-413c-a99a-9243be0c0a04", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:37.340017Z", - "iopub.status.busy": "2023-06-21T06:59:37.339341Z", - "iopub.status.idle": "2023-06-21T06:59:37.832993Z", - "shell.execute_reply": "2023-06-21T06:59:37.832117Z" + "iopub.execute_input": "2023-08-22T12:59:23.042496Z", + "iopub.status.busy": "2023-08-22T12:59:23.041976Z", + "iopub.status.idle": "2023-08-22T12:59:23.858888Z", + "shell.execute_reply": "2023-08-22T12:59:23.858153Z" }, "tags": [] }, @@ -230,10 +230,10 @@ "id": "da661ba3-fd15-4abc-bd4f-d13ae77b82b0", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:37.837657Z", - "iopub.status.busy": "2023-06-21T06:59:37.837006Z", - "iopub.status.idle": "2023-06-21T06:59:38.423847Z", - "shell.execute_reply": "2023-06-21T06:59:38.422789Z" + "iopub.execute_input": "2023-08-22T12:59:23.862266Z", + "iopub.status.busy": "2023-08-22T12:59:23.861709Z", + "iopub.status.idle": "2023-08-22T12:59:24.738293Z", + "shell.execute_reply": "2023-08-22T12:59:24.737676Z" }, "tags": [] }, @@ -260,10 +260,10 @@ "id": "f1482a8f-4ce5-4e04-93c8-ddd883375d67", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:38.430061Z", - "iopub.status.busy": "2023-06-21T06:59:38.429756Z", - "iopub.status.idle": "2023-06-21T06:59:38.444546Z", - "shell.execute_reply": "2023-06-21T06:59:38.443757Z" + "iopub.execute_input": "2023-08-22T12:59:24.741636Z", + "iopub.status.busy": "2023-08-22T12:59:24.741040Z", + "iopub.status.idle": "2023-08-22T12:59:24.754445Z", + "shell.execute_reply": "2023-08-22T12:59:24.753941Z" }, "tags": [] }, diff --git a/.github/workflows/generate_readme.yaml b/.github/workflows/generate_readme.yaml index 62b18898dd..e4f900b560 100644 --- a/.github/workflows/generate_readme.yaml +++ b/.github/workflows/generate_readme.yaml @@ -6,7 +6,7 @@ on: jobs: generate-readme: - if: "!startsWith(github.event.head_commit.message, 'generateReadme:')" + if: "!startsWith(github.event.head_commit.message, 'generateReadme:') && !startsWith(github.event.head_commit.message, 'UpdatedAt:')" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -31,6 +31,13 @@ jobs: ALGOLIA_APP_ID: '${{ secrets.ALGOLIA_APP_ID }}' ALGOLIA_API_KEY: '${{ secrets.ALGOLIA_API_KEY }}' - run: "jupyter nbconvert --clear-output --inplace .github/push_templates_to_algolia.ipynb" - - uses: EndBug/add-and-commit@v7.2.1 - with: - message: 'generateReadme: Refresh' + # - uses: EndBug/add-and-commit@v7.2.1 + # with: + # message: 'generateReadme: Refresh' + - name: Commit and push + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git pull --no-edit + git commit -m 'generateReadme: Refresh' -a + git push \ No newline at end of file diff --git a/.github/workflows/refresh_updated_at.yaml b/.github/workflows/refresh_updated_at.yaml new file mode 100644 index 0000000000..ab4cc07ed8 --- /dev/null +++ b/.github/workflows/refresh_updated_at.yaml @@ -0,0 +1,38 @@ +name: Refresh updated at +on: + pull_request: + types: + - closed + branches: + - master + +jobs: + refresh_updated_at: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}' + ref: 'master' + +# - uses: actions/setup-python@v4 +# with: +# python-version: '3.9' +# token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}' + +# - run: "pip install papermill==2.4.0 requests pandas==1.5.3 ipykernel GitPython==3.1.32" + +# - name: Get required variables And run script +# env: +# issue_number: ${{ github.event.pull_request.number }} +# GITHUB_TOKEN: '${{ secrets.PERSONAL_ACCESS_TOKEN }}' + +# run: | +# papermill -p pull_number $issue_number Naas_Update_dates_on_PR_merged.ipynb ./Naas_Update_dates_on_PR_merged.out.ipynb +# rm ./Naas_Update_dates_on_PR_merged.out.ipynb +# - name: Commit and push +# run: | +# git config --local user.email "action@github.com" +# git config --local user.name "GitHub Action" +# (git commit -m 'UpdatedAt: Refresh' -a && git push) || echo "💡 It seems that there is nothing to commit." \ No newline at end of file diff --git a/AWS/AWS_Daily_biling_notification_to_slack.ipynb b/AWS/AWS_Daily_biling_notification_to_slack.ipynb index a8e4a5ced7..6f07f18f29 100644 --- a/AWS/AWS_Daily_biling_notification_to_slack.ipynb +++ b/AWS/AWS_Daily_biling_notification_to_slack.ipynb @@ -31,7 +31,7 @@ }, "source": [ "# AWS - Daily biling notification to slack\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -67,6 +67,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "dba1251e-f724-4d58-935a-54f5b6c9447b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AWS/AWS_Get_files_from_S3_bucket.ipynb b/AWS/AWS_Get_files_from_S3_bucket.ipynb index 3517f18e0a..f9f9499c65 100644 --- a/AWS/AWS_Get_files_from_S3_bucket.ipynb +++ b/AWS/AWS_Get_files_from_S3_bucket.ipynb @@ -24,7 +24,7 @@ }, "source": [ "# AWS - Get files from S3 bucket\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -53,6 +53,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "f90e8f76-ea59-4538-95bf-1aa64dee2140", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AWS/AWS_Read_dataframe_from_S3.ipynb b/AWS/AWS_Read_dataframe_from_S3.ipynb index 8ffc7912ce..f5bde5d730 100644 --- a/AWS/AWS_Read_dataframe_from_S3.ipynb +++ b/AWS/AWS_Read_dataframe_from_S3.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# AWS - Read dataframe from S3\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "345fb1c9-1f05-48a7-837f-f7cbef18c85d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AWS/AWS_Send_dataframe_to_S3.ipynb b/AWS/AWS_Send_dataframe_to_S3.ipynb index f0b5caee88..363869de1f 100644 --- a/AWS/AWS_Send_dataframe_to_S3.ipynb +++ b/AWS/AWS_Send_dataframe_to_S3.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# AWS - Send dataframe to S3\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "ecf0d8f9-b088-429f-b26a-d5b1603c8cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AWS/AWS_Upload_file_to_S3_bucket.ipynb b/AWS/AWS_Upload_file_to_S3_bucket.ipynb index 43edd7ef23..06918e1ebc 100644 --- a/AWS/AWS_Upload_file_to_S3_bucket.ipynb +++ b/AWS/AWS_Upload_file_to_S3_bucket.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# AWS - Upload file to S3 bucket\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "ecc601cc-2304-4971-ac22-8e3f2c6140f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Abstract API/Abstract_API_Check_Email_Validation.ipynb b/Abstract API/Abstract_API_Check_Email_Validation.ipynb index 6cfb46a946..8dff0e2db5 100644 --- a/Abstract API/Abstract_API_Check_Email_Validation.ipynb +++ b/Abstract API/Abstract_API_Check_Email_Validation.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Abstract API - Check Email Validation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "24c93a8d-f198-4869-9fe9-ae180a378ccc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-23)" + ] + }, { "cell_type": "markdown", "id": "7cd72303-2a38-4332-8753-3758310a6e4b", diff --git a/Abstract API/Abstract_API_Get_IP_Geolocation.ipynb b/Abstract API/Abstract_API_Get_IP_Geolocation.ipynb index 269884a5ea..9a13bfef71 100644 --- a/Abstract API/Abstract_API_Get_IP_Geolocation.ipynb +++ b/Abstract API/Abstract_API_Get_IP_Geolocation.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Abstract API - Get IP Geolocation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "6f88f9d2-0e31-41e4-a368-fecacb787ce0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb b/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb index 5916135c1b..adcdce0ed8 100644 --- a/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb +++ b/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Advertools - Analyze website content using XML sitemap\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)" ] }, + { + "cell_type": "markdown", + "id": "747ff26a-034d-4047-b573-e15ceabbf62d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-23 (Created: 2023-05-09)" + ] + }, { "cell_type": "markdown", "id": "d93cd7a5-1d4f-4bc6-94a2-b74461c7f538", @@ -81,6 +92,31 @@ "## Input" ] }, + { + "cell_type": "markdown", + "id": "984b2abc-b888-45fe-a48c-a868c21cf3e9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Install libraries\n", + "If running it on naas, run the code below to install the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1fc5466-e7ac-4dad-80e0-98db9735024e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "#!pip install advertools adviz pandas==1.5.3 --user" + ] + }, { "cell_type": "markdown", "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", @@ -102,16 +138,8 @@ }, "outputs": [], "source": [ - "try:\n", - " import advertools as adv\n", - "except:\n", - " !pip install advertools --user\n", - " import advertools as adv\n", - "try:\n", - " import adviz\n", - "except:\n", - " !pip install adviz --user\n", - " import adviz\n", + "import advertools as adv\n", + "import adviz\n", "from urllib.parse import urlsplit" ] }, @@ -143,7 +171,7 @@ }, "outputs": [], "source": [ - "sitemap_url = \"https://www.xml-sitemaps.com/download/www.naas.ai-a2e8849ba/sitemap.xml?view=1\"\n", + "sitemap_url = \"https://blog.sriniketh.design/sitemap.xml\"\n", "recursive = True\n", "max_workers = 8" ] @@ -397,6 +425,17 @@ " print(str(e))\n", " pass" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "376c5fe7-1c06-4c31-a61c-1e684dabff23", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb b/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb index 37bea04a0c..f9b5fbf1e3 100644 --- a/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb +++ b/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb @@ -1,7 +1,6 @@ { "cells": [ { - "attachments": {}, "cell_type": "markdown", "id": "5da81fdb-1607-4dcd-8945-78492d41c20c", "metadata": { @@ -13,7 +12,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "96049d01-11e9-4538-9012-57992898281e", "metadata": { @@ -22,11 +20,10 @@ }, "source": [ "# Advertools - Audit robots txt and xml sitemap issues\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { - "attachments": {}, "cell_type": "markdown", "id": "76b0bd6e-4a5c-472f-a473-a315e3738936", "metadata": { @@ -38,7 +35,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "1089c7e4-b7a9-48ab-8320-e17847ad3b30", "metadata": { @@ -49,6 +45,17 @@ "**Author:** [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)" ] }, + { + "cell_type": "markdown", + "id": "d3293028-a492-463c-9e9e-96b2f8dcfcc3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-30 (Created: 2023-05-29)" + ] + }, { "attachments": {}, "cell_type": "markdown", @@ -66,7 +73,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "5d84a0cf-6ba8-456a-8b42-1bf63e3a17f2", "metadata": { @@ -81,7 +87,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "a75ef3a2-b261-45a8-bd64-52cb78b5f502", "metadata": { @@ -93,7 +98,31 @@ ] }, { - "attachments": {}, + "cell_type": "markdown", + "id": "460f75f0-18d1-45a3-8695-31fc87c3a56d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Install libraries\n", + "If running it on naas, run the code below to install the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8178986f-8dae-4f76-b16f-803be2287d77", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "#!pip install advertools adviz pandas==1.5.3 --user" + ] + }, + { "cell_type": "markdown", "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", "metadata": { @@ -106,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "1e8d108a-44de-44b4-941f-f12795838c5c", "metadata": { "papermill": {}, @@ -114,15 +143,10 @@ }, "outputs": [], "source": [ - "try:\n", - " import advertools as adv\n", - "except ModuleNotFoundError:\n", - " !pip install advertools\n", - " import advertools as adv" + "import advertools as adv" ] }, { - "attachments": {}, "cell_type": "markdown", "id": "d35a9e6f-71c4-4cb2-b9bc-32c23b18c4ba", "metadata": { @@ -136,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "cebcf1a5-23ce-49ca-aee9-aac7ff28a2e4", "metadata": { "papermill": {}, @@ -144,11 +168,10 @@ }, "outputs": [], "source": [ - "robotstxt_url = \"https://www.example.com/robots.txt\"" + "robotstxt_url = \"https://www.youtube.com/robots.txt\"" ] }, { - "attachments": {}, "cell_type": "markdown", "id": "1ad6e918-ae61-4a78-9b71-a6ad5f530f53", "metadata": { @@ -160,7 +183,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "dafe9992-9fcb-4849-a69e-ced13c995aff", "metadata": { @@ -175,7 +197,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 14, "id": "4949b9c4-f852-47f5-9889-3ccce1a0100a", "metadata": { "papermill": {}, @@ -188,7 +210,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "2f205baa-8d88-41a9-b860-b429b195077e", "metadata": { @@ -201,7 +222,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 15, "id": "89f415ef-b5ec-42f8-932d-7d01cb2fea07", "metadata": { "papermill": {}, @@ -219,7 +240,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "cd817594-1b7f-4d02-a245-9e1dcd6ad2b6", "metadata": { @@ -233,7 +253,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 17, "id": "9d47b183-7e9d-4013-8f64-f15568513676", "metadata": { "papermill": {}, @@ -246,7 +266,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "dd8071bb", "metadata": { @@ -259,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 19, "id": "a169f1a7-2e73-4a70-9de8-0bcd2ce321f1", "metadata": { "papermill": {}, @@ -283,7 +302,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "a4f99c99-dd8b-4893-8d5e-7ce5bfa29d1d", "metadata": { @@ -297,7 +315,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "550110a8-50b2-49a0-9752-5132256356b9", "metadata": { @@ -323,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 20, "id": "7b6a8e95-fd71-4602-9a29-ccb4bb52c9e2", "metadata": { "papermill": {}, @@ -353,7 +370,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.1" + "version": "3.9.6" }, "naas": { "notebook_id": "2733269de8aa4a8a013af03ae7af3ac21d9d860849af4b06adb3b31fbfc13ad2", diff --git a/Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb b/Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb new file mode 100644 index 0000000000..d42160b2de --- /dev/null +++ b/Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb @@ -0,0 +1,445 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5da81fdb-1607-4dcd-8945-78492d41c20c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "96049d01-11e9-4538-9012-57992898281e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Advertools - Check status code and Send report by email\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "76b0bd6e-4a5c-472f-a473-a315e3738936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #advertools #website #analyze #audit #seo #status_code #response_headers #naas #notification #scheduler" + ] + }, + { + "cell_type": "markdown", + "id": "1089c7e4-b7a9-48ab-8320-e17847ad3b30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "2172906a-c539-4443-a35f-bc481a0e062f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "d93cd7a5-1d4f-4bc6-94a2-b74461c7f538", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook runs an automated status code checker with response headers using the HTTP `HEAD` method and send a report by email.\n", + "\n", + "NB:\n", + "* Bulk and concurrent checking of status codes for a known list of URLs\n", + "* Get all available response headers from all URLs\n", + "* Set speed, number of concurent request and various other crawling options\n", + "* Does NOT download the full HTML of a page, saving a lot of time, energy, and resources, and enabling an extreemely fast and light process" + ] + }, + { + "cell_type": "markdown", + "id": "5d84a0cf-6ba8-456a-8b42-1bf63e3a17f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [advertools `crawl_headers` function](https://advertools.readthedocs.io/en/master/advertools.header_spider.html)\n", + "- Scrapy [throttling](https://docs.scrapy.org/en/latest/topics/autothrottle.html) and [custom settings](https://docs.scrapy.org/en/latest/topics/settings.html)" + ] + }, + { + "cell_type": "markdown", + "id": "a75ef3a2-b261-45a8-bd64-52cb78b5f502", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0b54cbe9-d040-4624-a5fb-3d127baed4c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Install libraries\n", + "If running it on naas, run the code below to uninstall (bug) and install the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ffd4ba7-df94-47b9-87d2-4910edaf1e4b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# !pip uninstall -y scrapy attrs\n", + "# !pip install advertools adviz pandas==1.5.3 --user" + ] + }, + { + "cell_type": "markdown", + "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e8d108a-44de-44b4-941f-f12795838c5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import advertools as adv\n", + "except ModuleNotFoundError:\n", + " !pip install advertools --user\n", + " import advertools as adv\n", + "from datetime import datetime\n", + "import naas\n", + "from naas_drivers import emailbuilder\n", + "import plotly.express as px\n", + "import pandas as pd\n", + "pd.options.display.max_columns = None" + ] + }, + { + "cell_type": "markdown", + "id": "d35a9e6f-71c4-4cb2-b9bc-32c23b18c4ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `url_list`: List of URLs to check the status codes\n", + "- `email_to`: List of emails to send the report\n", + "- `cron`: We use CRON tasks to schedule notebooks, find the syntax you need to on: https://crontab.guru/\n", + "- `subject`: Email subject\n", + "- `output_file`: The path to the file for saving the output. It has to be in the '.jl' format. Note that new lines to the file are 'appended' to the end and the file is not overwritten while crawling.\n", + "- `output_ko`: Status KO in csv to be attached in report" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cebcf1a5-23ce-49ca-aee9-aac7ff28a2e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "url_list = [\n", + " \"https://www.naas.ai/\",\n", + " \"https://www.naas.ai/free-forever\",\n", + " \"https://www.naas.ai/test\",\n", + "]\n", + "email_to = []\n", + "cron = \"0 0 * * *\" # This notebook will run everyday at 0:00\n", + "subject = \"Status code checker - Report 🚨\"\n", + "\n", + "# Outputs\n", + "output_file = f'{datetime.now().strftime(\"%Y%m%d%H%M%S\")}_crawl_headers_output.jl'\n", + "output_ko = \"status_code_ko.csv\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ad6e918-ae61-4a78-9b71-a6ad5f530f53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "dafe9992-9fcb-4849-a69e-ced13c995aff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Check status codes and retrieve response headers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2393668d-9f22-45a0-9f79-5901b1c88496", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create custom settings dict\n", + "custom_settings = {\n", + " # optionally change request headers:\n", + " 'DEFAULT_REQUEST_HEADERS': {},\n", + " 'AUTOTHROTTLE_ENABLED': True,\n", + " 'CONCURRENT_REQUESTS_PER_DOMAIN': 4,\n", + " 'USER_AGENT': adv.spider.user_agent,\n", + " 'LOG_FILE': 'crawl_headers_output.log',\n", + "}\n", + "\n", + "# Crawl headers\n", + "adv.crawl_headers(\n", + " url_list=url_list,\n", + " output_file=output_file,\n", + " custom_settings=custom_settings\n", + ")\n", + "\n", + "# Open the crawl output file\n", + "headers_df = pd.read_json(output_file, lines=True)\n", + "headers_df" + ] + }, + { + "cell_type": "markdown", + "id": "62290ab9-df04-42a1-9063-7213d211991a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Filter on status code KO and create list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13ff5c6e-d391-4050-8acd-28355a386450", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_ko = headers_df[~headers_df[\"status\"].isin([200, 201, 202, 203])].reset_index(drop=True)\n", + "urls = []\n", + "for row in df_ko.itertuples():\n", + " url = row.url\n", + " status = row.status\n", + " text = f\"{url} - {status}\"\n", + " urls.append(text)\n", + "urls" + ] + }, + { + "cell_type": "markdown", + "id": "771b6ad6-8750-445d-ab98-d7a392830dee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create email content" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4de13ba-dc72-4d69-800b-0fd8e36db2ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "email_content = {\n", + " \"text1\": emailbuilder.text(\"Dear Team,\"),\n", + " \"text2\": emailbuilder.text(\"We are sharing the report of KO (Failed) status codes for the recent analysis:\"),\n", + " \"list\": emailbuilder.list(urls),\n", + " \"text3\": emailbuilder.text(\"Please take appropriate actions to address these issues.\"),\n", + " \"text4\": emailbuilder.text(\"Thank you!\"),\n", + " \"text5\": emailbuilder.text(\"Best regards,\"),\n", + "}\n", + "\n", + "content = emailbuilder.generate(\n", + " display=\"iframe\",\n", + " **email_content\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "550110a8-50b2-49a0-9752-5132256356b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "acca24cc-9518-4c42-b8f3-78d7cadeef02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save report in CSV" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5645f8fe-b29c-44c2-aee6-e14072e29265", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_ko.to_csv(output_ko, index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "f0eb2762-b6f4-45fd-bcf7-c6b766e7a740", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send notification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "425bf37d-b86e-4d7d-9c53-613f59aec098", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.notification.send(email_to, subject, content, files=[output_ko])" + ] + }, + { + "cell_type": "markdown", + "id": "3a6a4ef1-2d7a-4191-b6b4-3402d55ff6de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Schedule notebook" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "386abe1f-702a-4383-8f3b-fe8869a00c91", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "65fcbc3f91ea08c6a2feb69f5b9f702c91e1da37e5faa0f20f1b1d19f85ade58", + "notebook_path": "Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Advertools/Advertools_Check_status_code_in_bulk.ipynb b/Advertools/Advertools_Check_status_code_in_bulk.ipynb new file mode 100644 index 0000000000..0fd2c4f4cb --- /dev/null +++ b/Advertools/Advertools_Check_status_code_in_bulk.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5da81fdb-1607-4dcd-8945-78492d41c20c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "96049d01-11e9-4538-9012-57992898281e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Advertools - Check status code in bulk\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "76b0bd6e-4a5c-472f-a473-a315e3738936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #advertools #adviz #website #analyze #audit #seo #status_code #response_headers" + ] + }, + { + "cell_type": "markdown", + "id": "1089c7e4-b7a9-48ab-8320-e17847ad3b30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)" + ] + }, + { + "cell_type": "markdown", + "id": "8913d2a4-4370-4933-bb80-0c6995fa9f0e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "d93cd7a5-1d4f-4bc6-94a2-b74461c7f538", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook runs an automated status code checker with response headers using the HTTP `HEAD` method.\n", + "\n", + "* Bulk and concurrent checking of status codes for a known list of URLs\n", + "* Get all available response headers from all URLs\n", + "* Set speed, number of concurent request and various other crawling options\n", + "* Does NOT download the full HTML of a page, saving a lot of time, energy, and resources, and enabling an extreemely fast and light process" + ] + }, + { + "cell_type": "markdown", + "id": "5d84a0cf-6ba8-456a-8b42-1bf63e3a17f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [advertools `crawl_headers` function](https://advertools.readthedocs.io/en/master/advertools.header_spider.html)\n", + "- Scrapy [throttling](https://docs.scrapy.org/en/latest/topics/autothrottle.html) and [custom settings](https://docs.scrapy.org/en/latest/topics/settings.html)" + ] + }, + { + "cell_type": "markdown", + "id": "a75ef3a2-b261-45a8-bd64-52cb78b5f502", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0b54cbe9-d040-4624-a5fb-3d127baed4c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Install libraries\n", + "If running it on naas, run the code below to uninstall (bug) and install the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0ffd4ba7-df94-47b9-87d2-4910edaf1e4b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# !pip uninstall -y scrapy attrs\n", + "# !pip install advertools adviz pandas==1.5.3 --user" + ] + }, + { + "cell_type": "markdown", + "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1e8d108a-44de-44b4-941f-f12795838c5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import adviz\n", + "except ModuleNotFoundError:\n", + " !pip install adviz --user\n", + " import adviz\n", + "try:\n", + " import advertools as adv\n", + "except ModuleNotFoundError:\n", + " !pip install advertools --user\n", + " import advertools as adv\n", + "from datetime import datetime\n", + "import plotly.express as px\n", + "import pandas as pd\n", + "pd.options.display.max_columns = None" + ] + }, + { + "cell_type": "markdown", + "id": "d35a9e6f-71c4-4cb2-b9bc-32c23b18c4ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `url_list`: List of URLs to check the status codes\n", + "- `CONCURRENT_REQUESTS_PER_DOMAIN`: Defaults to 8. Most likely you will need to slow it down, because the crawling is extremely fast.\n", + "- `DEFAULT_REQUEST_HEADERS`: A dictionary where you can set custom request headers.\n", + "- `USER_AGENT`: Set a different/custom user agent if you need to. By default, we are using the one in advertools.\n", + "- `AUTOTHROTTLE_ENABLED`: Whether or not to dynamically change the pace of crawling to be nice to servers as much as possible. It's usually good to enable this extension, as this type of crawling is extremely fast, often leading to 429 (too many requests code), or being blocked.\n", + "- `LOG_FILE`: Log file path. Please update it everytime you checked a new list.\n", + "- `output_file`: The path to the file for saving the output. It has to be in the '.jl' format. Note that new lines to the file are 'appended' to the end and the file is not overwritten while crawling." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cebcf1a5-23ce-49ca-aee9-aac7ff28a2e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "url_list = [\n", + " \"https://www.naas.ai/\",\n", + " \"https://www.naas.ai/free-forever\",\n", + " \"https://app.naas.ai/user/florent@naas.ai\",\n", + " \"https://www.naas.ai/test\",\n", + "]\n", + "domain = 'naas.ai'\n", + "CONCURRENT_REQUESTS_PER_DOMAIN = 4\n", + "DEFAULT_REQUEST_HEADERS = {}\n", + "USER_AGENT = adv.spider.user_agent\n", + "AUTOTHROTTLE_ENABLED = True\n", + "LOG_FILE = 'crawl_headers_output.log'\n", + "\n", + "# Outputs\n", + "output_file = f'{datetime.now().strftime(\"%Y%m%d%H%M%S\")}_crawl_headers_output.jl'" + ] + }, + { + "cell_type": "markdown", + "id": "1ad6e918-ae61-4a78-9b71-a6ad5f530f53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "dafe9992-9fcb-4849-a69e-ced13c995aff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Check status codes and retrieve response headers" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "2393668d-9f22-45a0-9f79-5901b1c88496", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create custom settings dict\n", + "custom_settings = {\n", + " # optionally change request headers:\n", + " 'DEFAULT_REQUEST_HEADERS': DEFAULT_REQUEST_HEADERS,\n", + " 'AUTOTHROTTLE_ENABLED': AUTOTHROTTLE_ENABLED,\n", + " 'CONCURRENT_REQUESTS_PER_DOMAIN': CONCURRENT_REQUESTS_PER_DOMAIN,\n", + " 'USER_AGENT': USER_AGENT,\n", + " 'LOG_FILE': LOG_FILE,\n", + "}\n", + "\n", + "# Crawl headers\n", + "adv.crawl_headers(\n", + " url_list=url_list,\n", + " output_file=output_file,\n", + " custom_settings=custom_settings\n", + ")\n", + "\n", + "# Open the crawl output file\n", + "headers_df = pd.read_json(output_file, lines=True)\n", + "headers_df" + ] + }, + { + "cell_type": "markdown", + "id": "550110a8-50b2-49a0-9752-5132256356b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "cd817594-1b7f-4d02-a245-9e1dcd6ad2b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Visualize Status codes OK and KO" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5839cc92-18ea-4a57-b9bb-5fa8d0db279c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "adviz.status_codes(\n", + " headers_df['status'],\n", + " height=400\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "bab2898f-1c33-452e-b73c-bd1a28290f48", + "metadata": { + "execution": { + "iopub.execute_input": "2023-07-18T18:40:54.104130Z", + "iopub.status.busy": "2023-07-18T18:40:54.103899Z", + "iopub.status.idle": "2023-07-18T18:40:54.108578Z", + "shell.execute_reply": "2023-07-18T18:40:54.108020Z", + "shell.execute_reply.started": "2023-07-18T18:40:54.104107Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Visualize status codes count" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "552d3abb-4e7c-4c0e-8e68-5777ac8cc24b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "adviz.value_counts_plus(\n", + " headers_df['status'],\n", + " name='Status codes',\n", + " size=14\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "50a39376-9dab-4f3e-a87d-6006a61165ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Visualize URL structure" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0d536efd-9d10-480c-abdd-0353d6f38c95", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "adviz.url_structure(\n", + " headers_df['url'],\n", + " domain=domain,\n", + " items_per_level=50,\n", + " theme='plotly_dark'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "e7cb3852-bc53-4f24-83fb-65fbe3d42764", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get redirects" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "3132e337-c431-4145-8ba1-f58b08a0cea5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if 'redirect_urls' in headers_df:\n", + " redirect_df = headers_df.filter(regex='^url$|redirect_').dropna(thresh=4)\n", + " redirect_df['redirect_urls'] = redirect_df['redirect_urls'].str.split('@@')\n", + " redirect_df['redirect_reasons'] = redirect_df['redirect_reasons'].astype(int).astype(str).str.split('@@')\n", + " redirect_df['redirect_chain'] = (redirect_df['redirect_urls']\n", + " .str.join('@@')\n", + " .add('@@')\n", + " .add(redirect_df['url']).str.split('@@'))\n", + " from IPython.display import display\n", + " display(redirect_df)\n", + "else:\n", + " print('No redirects found in this dataset')" + ] + }, + { + "cell_type": "markdown", + "id": "ea195054-23c4-498a-b75e-9929270d89d9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Visualize download latency\n", + "The same charts can be used for any other `float` columns in `headers_df` if available." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "0b13dd7e-d0a5-44da-9032-6bc0e2255425", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig = px.histogram(\n", + " x=headers_df['download_latency'],\n", + " template='none',\n", + " labels={'x': 'Latency (seconds)
'},\n", + " height=500,\n", + " # experiment with different values for nbins:\n", + " # nbins=10,\n", + " title='Download latency distribution')\n", + "\n", + "fig.add_annotation(\n", + " yref='y domain',\n", + " xref='paper',\n", + " x=0,\n", + " y=-0.25,\n", + " showarrow=False,\n", + " align='right',\n", + " text='Latency: time elapsed between establishing the TCP connection and receiving the HTTP headers.')\n", + "fig" + ] + }, + { + "cell_type": "markdown", + "id": "6eeab37b-5de9-42f9-b0e8-edf43ccbe62c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create helper visualizations" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "55e5e098-20dc-47fc-b8fe-fd169e8e2c01", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def ecdf(df, column, template='none', width=None, height=500):\n", + " df = df.sort_values(column)\n", + " df['count below'] = range(len(df))\n", + " df['count above'] = range(len(df)-1, -1, -1)\n", + " df['total count'] = len(df)\n", + " fig = px.ecdf(\n", + " df.dropna(subset=[column]),\n", + " x=column,\n", + " markers=True, lines=False,\n", + " template=template,\n", + " height=height,\n", + " width=width,\n", + " hover_data=['count below', 'count above', 'total count'],\n", + " title=f\"Cumulative distribution of {column.replace('_', ' ')}\",\n", + " ecdfnorm='percent')\n", + " fig.data[0].hovertemplate = f'{column.replace(\"_\", \" \").title()}

{column}' + ': %{x}
percent: %{y}

count below: %{customdata[0]:,}
count above: %{customdata[1]:,}
total count: %{customdata[2]:,}'\n", + " fig.layout.yaxis.ticksuffix = '%'\n", + " fig.layout.yaxis.showspikes = True\n", + " fig.layout.xaxis.showspikes = True\n", + " return fig\n", + "\n", + "ecdf(df=headers_df, column='download_latency')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "3c5612a68165853c27d59d0068f4ee37bc3ca2172bb0a1383abe8544664b9524", + "notebook_path": "Advertools/Advertools_Check_status_code_in_bulk.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Advertools/Advertools_Check_website_pages_status_code.ipynb b/Advertools/Advertools_Check_website_pages_status_code.ipynb new file mode 100644 index 0000000000..a8c382fc3a --- /dev/null +++ b/Advertools/Advertools_Check_website_pages_status_code.ipynb @@ -0,0 +1,527 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c5f04051-0d87-43e5-8e32-a938245e3634", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "6804ca94-e0dc-4072-8850-c131bb1009f1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Advertools - Check website pages status code\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "0b9853d8-5344-4973-9f07-8bc49fb05caa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #advertools #website #status #code #check #pages" + ] + }, + { + "cell_type": "markdown", + "id": "af1dcc2d-e7a7-4a0a-a2cc-671f1c2eeb4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "1de7760b-0f78-434f-b29e-0f41daf9c4c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-04 (Created: 2023-08-04)" + ] + }, + { + "cell_type": "markdown", + "id": "fbd8c55a-275c-445d-965a-8a4c7f87ebb6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook crawls your website and checks the status code of all pages. It starts from the home page and discovers URLs by following links within the website. It is a useful tool for quickly checking the status of your website and generating a report to take necessary actions." + ] + }, + { + "cell_type": "markdown", + "id": "034bdb3a-9c8a-42b5-a0eb-4c71545f2cd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Advertools Documentation](https://advertools.readthedocs.io/en/latest/)\n", + "- [HTTP Status Codes](https://www.restapitutorial.com/httpstatuscodes.html)" + ] + }, + { + "cell_type": "markdown", + "id": "aa56eea7-0ee3-42f0-97dc-d8fc7430b53e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "bb06c7d5-1b22-42ed-ab60-ac957a3e2e73", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Install libraries\n", + "If running it on naas, run the code below to uninstall (bug) and install the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ab34592-6dfd-440e-9c5c-cf75ae29eda1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# !pip uninstall -y scrapy attrs\n", + "# !pip install advertools adviz pandas==1.5.3 --user" + ] + }, + { + "cell_type": "markdown", + "id": "8c1bbdcb-2239-4fa0-bb8d-b41fbc3e695d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ab56e61c-13b1-49b0-9990-c0ac15b50115", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import advertools as adv\n", + "except ModuleNotFoundError:\n", + " !pip install advertools --user\n", + " import advertools as adv\n", + "from datetime import datetime\n", + "import naas\n", + "from naas_drivers import emailbuilder, naasauth\n", + "import plotly.express as px\n", + "import pandas as pd\n", + "try:\n", + " import adviz\n", + "except ModuleNotFoundError:\n", + " !pip install adviz --user\n", + " import adviz\n", + "import os\n", + "pd.options.display.max_columns = None" + ] + }, + { + "cell_type": "markdown", + "id": "4a6151cd-258b-4cbf-9cc7-0545d8097ac2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `website_url`: URL of the website page to check\n", + "- `cron`: We use CRON tasks to schedule notebooks, find the syntax you need to on: https://crontab.guru/\n", + "- `email_to`: Represents the recipient(s) of the email. By default, your email account on naas will be set.\n", + "\n", + "**Optional**\n", + "\n", + "- `output_dir`: Represents the output directory for the website crawl.\n", + "- `timestamp`: Represents the timestamp when the code is executed.\n", + "- `output_website_crawl`: Represents the output file name for the website crawl.\n", + "- `output_website_crawl_log`: Represents the output file name for the log file of the website crawl.\n", + "- `output_status_code_ko`: Represents the output file name for the status code report.\n", + "- `subject`: Represents the subject line for the email." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be66e7aa-c1cd-4ade-9141-e7877af706bf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "website_url = \"https://example.com/\"\n", + "cron = \"0 0 * * *\" # This notebook will run everyday at 0:00\n", + "email_to = [naasauth.connect().user.me().get(\"username\")]\n", + "\n", + "# Optional\n", + "output_dir = website_url.split(\"https://\")[-1].split(\"/\")[0]\n", + "timestamp = datetime.now().strftime(\"%Y%m%d%H%M%S\")\n", + "output_website_crawl = f'{timestamp}_website_crawl.jl'\n", + "output_website_crawl_log = f'{timestamp}_website_crawl.log'\n", + "output_status_code_ko = f'{timestamp}_status_code_ko.csv'\n", + "subject = f\"Status code report: {website_url} as of {datetime.now().strftime('%Y-%m-%d')}\"" + ] + }, + { + "cell_type": "markdown", + "id": "b4b92cff-6977-42c9-b700-107fc9b434af", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1a716cf9-42b0-442a-bcdc-668f4f3dfc21", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Define output paths\n", + "Create the output directory and define paths for the output files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4cdfafc-39dc-421e-a516-9298146e37e6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Check if directory exists and create it if not\n", + "if not os.path.exists(output_dir):\n", + " os.makedirs(output_dir)\n", + " \n", + "# Generate outputs files path\n", + "output_website_crawl_path = os.path.join(output_dir, output_website_crawl)\n", + "output_website_crawl_log_path = os.path.join(output_dir, output_website_crawl_log)\n", + "output_status_code_ko_path = os.path.join(output_dir, output_status_code_ko)" + ] + }, + { + "cell_type": "markdown", + "id": "6cf637d2-da47-4613-9c2f-bad22b996ef9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Crawl website" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17c21939-74a6-4964-af14-11ed2a8f1b6c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "crawl_params = dict(\n", + " url_list=website_url,\n", + " output_file=output_website_crawl_path, # has to end with .jl\n", + " follow_links=True, # the default is False\n", + " allowed_domains=None,\n", + " exclude_url_params=None,\n", + " include_url_params=None,\n", + " exclude_url_regex=None,\n", + " include_url_regex=None,\n", + " css_selectors=None,\n", + " xpath_selectors=None,\n", + " custom_settings= {\n", + " 'LOG_FILE': output_website_crawl_log_path,\n", + " 'CLOSESPIDER_PAGECOUNT': 0,\n", + " 'CONCURRENT_REQUESTS_PER_DOMAIN': 8,\n", + " 'DEFAULT_REQUEST_HEADERS': {},\n", + " 'DEPTH_LIMIT': 0,\n", + " 'USER_AGENT': adv.spider.user_agent\n", + " }\n", + ")\n", + "adv.crawl(**crawl_params)" + ] + }, + { + "cell_type": "markdown", + "id": "3f90528f-fefa-4469-9268-922108033eba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Read crawl DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5416e3b0-c3a3-4c2c-81f2-17ca58d45215", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "crawl_df = pd.read_json(output_website_crawl_path, lines=True)\n", + "print(\"Row fetched:\", len(crawl_df))\n", + "crawl_df.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "98d9c934-3108-4802-b154-311733ea13f4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame on status code KO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66d4c3fe-7b2b-4ce0-963a-7086315b4248", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_ko = crawl_df[~crawl_df[\"status\"].isin([200, 201, 202, 203])].reset_index(drop=True)\n", + "print(\"Status code KO:\", len(df_ko))" + ] + }, + { + "cell_type": "markdown", + "id": "fa7efd9b-4b9b-4564-b368-c71a5df3fa7f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create email content" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f30883d-429b-4dd3-ae12-9c988a75111b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "total_urls = len(crawl_df)\n", + "status_ko = len(df_ko)\n", + "status_ok = total_urls - status_ko\n", + "\n", + "email_content = {\n", + " \"text1\": emailbuilder.text(\"Dear Team,\"),\n", + " \"text2\": emailbuilder.text(f\"We are sharing the report of status codes for the recent analysis on {website_url}:\"),\n", + " \"list\": emailbuilder.list([\n", + " f\"Total OK ✅: {status_ok}\",\n", + " f\"Total KO ❌: {status_ko}\",\n", + " ]),\n", + " \"text3\": emailbuilder.text(\"Please find enclosed the detailed of the status code failed.\"),\n", + " \"text4\": emailbuilder.text(\"Please take appropriate actions to address these issues.\"),\n", + " \"text5\": emailbuilder.text(\"Thank you!\"),\n", + " \"text6\": emailbuilder.text(\"Best regards,\"),\n", + "}\n", + "\n", + "content = emailbuilder.generate(\n", + " display=\"iframe\",\n", + " **email_content\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6f97c960-d76d-4912-9721-2e54a7852340", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "d90c4742-1bf3-4fa0-b10e-7751fec6758c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save report in CSV" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40abc3e0-9533-4fe0-b21f-7806a1ba5bcb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_ko.to_csv(output_status_code_ko_path, index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "0c343400-43bd-4e83-88f4-f0dc68d8ce1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send notification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1c56ffe-ba51-4394-9398-7758c6f11e85", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(email_to) > 0:\n", + " naas.notification.send(email_to, subject, content, files=[output_status_code_ko_path])" + ] + }, + { + "cell_type": "markdown", + "id": "830d891f-7c82-4954-a2f8-297172ab30ce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Schedule notebook" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf644383-3fba-455f-944a-b26bd617306c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)\n", + "\n", + "# naas.scheduler.delete()" + ] + }, + { + "cell_type": "markdown", + "id": "ec5deee2-f478-407f-a60b-3b6b93a4c3dd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "09c6603c1e23892e966a1e1a19a577d94d56c38695e3e2ca640728e81024f848", + "notebook_path": "Advertools/Advertools_Check_website_pages_status_code.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Advertools/Advertools_Crawl_a_website.ipynb b/Advertools/Advertools_Crawl_a_website.ipynb new file mode 100644 index 0000000000..bdb5f5312a --- /dev/null +++ b/Advertools/Advertools_Crawl_a_website.ipynb @@ -0,0 +1,324 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5da81fdb-1607-4dcd-8945-78492d41c20c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "96049d01-11e9-4538-9012-57992898281e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Advertools - Crawling a website\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "76b0bd6e-4a5c-472f-a473-a315e3738936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #advertools #adviz #crawling #website #analyze #seo #URL #audit #scraping #scrapy" + ] + }, + { + "cell_type": "markdown", + "id": "1089c7e4-b7a9-48ab-8320-e17847ad3b30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)" + ] + }, + { + "cell_type": "markdown", + "id": "609ef4a3-a632-4a5f-b5aa-dc3fcde269b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-20 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "d93cd7a5-1d4f-4bc6-94a2-b74461c7f538", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to crawl a website, starting with one of its pages, and discover and follow all links as well.\n", + "\n", + "* Convert a website to a CSV file\n", + "* Follow links with certain conditions:\n", + " * Whether or not a link matches a certain regex\n", + " * Whether or not a link contains a certain query parameter(s)\n", + "* Extract special elements from pages using CSS/XPath selectors\n", + "* Manage your crawling process with advanced settings (number of concurrent requests, when to stop crawling, proxies, and much more)" + ] + }, + { + "cell_type": "markdown", + "id": "5d84a0cf-6ba8-456a-8b42-1bf63e3a17f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "\n", + "- [advertools crawl function](https://advertools.readthedocs.io/en/master/advertools.spider.html)\n", + "- [advertools advanced crawl strategies](https://advertools.readthedocs.io/en/master/advertools.code_recipes.spider_strategies.html)\n", + "- [scrapy custom settings](https://docs.scrapy.org/en/latest/topics/settings.html)" + ] + }, + { + "cell_type": "markdown", + "id": "a75ef3a2-b261-45a8-bd64-52cb78b5f502", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "48d6316a-f6a4-4f16-9894-2af1597bfd4f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Install libraries\n", + "If running it on naas, run the code below to uninstall (bug) and install the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "85f92c36-8ba1-4a92-977f-bb059d99cdb5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# !pip uninstall -y scrapy attrs\n", + "# !pip install advertools adviz pandas==1.5.3 --user" + ] + }, + { + "cell_type": "markdown", + "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e8d108a-44de-44b4-941f-f12795838c5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import advertools as adv\n", + "except ModuleNotFoundError:\n", + " !pip install advertools\n", + " import advertools as adv\n", + "import pandas as pd\n", + "pd.options.display.max_columns = None" + ] + }, + { + "cell_type": "markdown", + "id": "d35a9e6f-71c4-4cb2-b9bc-32c23b18c4ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "\n", + "- `url_list`: One or more URLs to start crawling from (typically the home page, but not necessarily)\n", + "- `output_file`: The path to the file where you want to save your crawl data\n", + "- `follow_links`: Whether or not to follow links on each page that you crawl\n", + "- `allowed_domains`: A list of domains to iclude in the crawl. By default the URLs in `url_list`, and all sub-domains under them will be included, but you can customize/restric this further\n", + "- `exclude_url_params`: If a link contains any of those parameters don't follow it\n", + "- `include_url_params`: If a link contains any of those parameters DO follow it\n", + "- `exclude_url_regex`: If a link matches this regex don't follow it\n", + "- `include_url_regex`: If a link matches this regex DO follow it\n", + "- `css_selectors`: A dictionary of CSS selectors for special data to be extracted from crawled pages\n", + "- `xpath_selectors`: A dictionary of XPath selectors for special data to be extracted from crawled pages\n", + "- `custom_settings`: Many optinos are available, some of the important one can be found below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cebcf1a5-23ce-49ca-aee9-aac7ff28a2e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "crawl_params = dict(\n", + " url_list = ['https://example.com'],\n", + " output_file = 'website_crawl_YYYY_MM_DD.jl', # has to end with .jl\n", + " follow_links = True, # the default is False\n", + " allowed_domains = None,\n", + " exclude_url_params = None,\n", + " include_url_params = None,\n", + " exclude_url_regex = None,\n", + " include_url_regex = None,\n", + " css_selectors = None,\n", + " xpath_selectors = None,\n", + " custom_settings = {\n", + " 'LOG_FILE': 'website_crawl_YYYY_MM_DD.log',\n", + " 'CLOSESPIDER_PAGECOUNT': 0,\n", + " 'CONCURRENT_REQUESTS_PER_DOMAIN': 8,\n", + " 'DEFAULT_REQUEST_HEADERS': {},\n", + " 'DEPTH_LIMIT': 0,\n", + " 'USER_AGENT': adv.spider.user_agent\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "1ad6e918-ae61-4a78-9b71-a6ad5f530f53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "dafe9992-9fcb-4849-a69e-ced13c995aff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Crawl the given website given the chosen options" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4949b9c4-f852-47f5-9889-3ccce1a0100a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "adv.crawl(**crawl_params)" + ] + }, + { + "cell_type": "markdown", + "id": "550110a8-50b2-49a0-9752-5132256356b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "e599df7e-552a-406e-9358-48b911426579", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Read and analyze the crawl DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7b6a8e95-fd71-4602-9a29-ccb4bb52c9e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "crawldf = pd.read_json(crawl_params['output_file'], lines=True)\n", + "crawldf" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1b68edcb30da94c5c5b1f9eece671a36a1cc832aa557bd6302f2b647aac96ba7", + "notebook_path": "Advertools/Advertools_Crawl_a_website.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb b/Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb new file mode 100644 index 0000000000..f889665ae2 --- /dev/null +++ b/Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb @@ -0,0 +1,276 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5da81fdb-1607-4dcd-8945-78492d41c20c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "96049d01-11e9-4538-9012-57992898281e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Advertools - Visualize status codes OK and KO\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "76b0bd6e-4a5c-472f-a473-a315e3738936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #advertools #adviz #status_code #asset #plotly #naas" + ] + }, + { + "cell_type": "markdown", + "id": "1089c7e4-b7a9-48ab-8320-e17847ad3b30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)" + ] + }, + { + "cell_type": "markdown", + "id": "de5972bc-47e0-4bf1-88dd-e307f49746ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-20 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "d93cd7a5-1d4f-4bc6-94a2-b74461c7f538", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates a plotly treemap to visualize status code OK and KO from list." + ] + }, + { + "cell_type": "markdown", + "id": "5d84a0cf-6ba8-456a-8b42-1bf63e3a17f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub - Adviz](https://github.com/eliasdabbas/adviz)" + ] + }, + { + "cell_type": "markdown", + "id": "a75ef3a2-b261-45a8-bd64-52cb78b5f502", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1e8d108a-44de-44b4-941f-f12795838c5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import adviz\n", + "except ModuleNotFoundError:\n", + " !pip install adviz --user\n", + " import adviz\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "d35a9e6f-71c4-4cb2-b9bc-32c23b18c4ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `title`: This is a string variable that stores the title of the chart or output.\n", + "- `width`: This is an integer variable that defines the width of the output chart or visualization.\n", + "- `height`: Similar to `width`, this integer variable sets the height of the output chart or visualization.\n", + "- `status_code_list`: This is a list that contains different status codes. These are HTTP status codes which are standard response codes given by web site servers on the internet. The codes help identify the cause of the problem when a web page or other resource does not load properly.\n", + "- `html_path`: This is a string variable that stores the path where the HTML output will be saved." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cebcf1a5-23ce-49ca-aee9-aac7ff28a2e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "title = \"Status Codes results\"\n", + "width = None\n", + "height = None\n", + "status_code_list = [\n", + " 200, 400, 201, 401, 405, 503\n", + "]\n", + "\n", + "# Outputs\n", + "html_path = \"status_code_treemap.html\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ad6e918-ae61-4a78-9b71-a6ad5f530f53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "cd817594-1b7f-4d02-a245-9e1dcd6ad2b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Visualize status codes OK and KO" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5839cc92-18ea-4a57-b9bb-5fa8d0db279c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "adviz.status_codes(\n", + " status_code_list,\n", + " title=title,\n", + " width=width,\n", + " height=height,\n", + " export_to_html=html_path\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "550110a8-50b2-49a0-9752-5132256356b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "eabb6826-4cc6-4edd-b45a-322abfe38fea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas\n", + "You have the capability to distribute this chart using the provided public URL" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "045b39f3-4429-4d33-af5e-cf5ba385905e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(html_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "5fc4529ca8156fe747658753b23728aa1f18141cf3f39703276b7fa6f028e7a6", + "notebook_path": "Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Advertools/Advertools_Visualize_status_codes_count.ipynb b/Advertools/Advertools_Visualize_status_codes_count.ipynb new file mode 100644 index 0000000000..2ee2b8e51d --- /dev/null +++ b/Advertools/Advertools_Visualize_status_codes_count.ipynb @@ -0,0 +1,308 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5da81fdb-1607-4dcd-8945-78492d41c20c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "96049d01-11e9-4538-9012-57992898281e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Advertools - Visualize status codes count\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "76b0bd6e-4a5c-472f-a473-a315e3738936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #advertools #adviz #status_code #asset #plotly #naas" + ] + }, + { + "cell_type": "markdown", + "id": "1089c7e4-b7a9-48ab-8320-e17847ad3b30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Elias Dabbas](https://www.linkedin.com/in/eliasdabbas/)" + ] + }, + { + "cell_type": "markdown", + "id": "e57f63ea-0d36-45f7-919f-f6528b59f9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-20 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "d93cd7a5-1d4f-4bc6-94a2-b74461c7f538", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates a chat to visualize status code count." + ] + }, + { + "cell_type": "markdown", + "id": "5d84a0cf-6ba8-456a-8b42-1bf63e3a17f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub - Adviz](https://github.com/eliasdabbas/adviz)" + ] + }, + { + "cell_type": "markdown", + "id": "a75ef3a2-b261-45a8-bd64-52cb78b5f502", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f530c66d-1a5b-47d1-8d80-01f21a83ac3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1e8d108a-44de-44b4-941f-f12795838c5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import adviz\n", + "except ModuleNotFoundError:\n", + " !pip install adviz --user\n", + " import adviz\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "d35a9e6f-71c4-4cb2-b9bc-32c23b18c4ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `name`: The name of the column that you want displayed in the final table. It appears in the caption and defaults to \"data\".\n", + "- `size`: The size in points of the font of the table. This results in the whole table being resized.\n", + "- `status_code_list`: This is a list that contains different status codes. These are HTTP status codes which are standard response codes given by web site servers on the internet. The codes help identify the cause of the problem when a web page or other resource does not load properly.\n", + "- `html_path`: This is a string variable that stores the path where the HTML output will be saved." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cebcf1a5-23ce-49ca-aee9-aac7ff28a2e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "name = 'Status codes'\n", + "size = 14\n", + "status_code_list = [\n", + " 200, 400, 201, 401, 405, 503\n", + "]\n", + "\n", + "# Outputs\n", + "html_path = \"status_code_count.html\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ad6e918-ae61-4a78-9b71-a6ad5f530f53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "cd817594-1b7f-4d02-a245-9e1dcd6ad2b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Visualize status codes OK and KO" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5839cc92-18ea-4a57-b9bb-5fa8d0db279c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig = adviz.value_counts_plus(\n", + " status_code_list,\n", + " name=name,\n", + " size=size\n", + ")\n", + "fig" + ] + }, + { + "cell_type": "markdown", + "id": "550110a8-50b2-49a0-9752-5132256356b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "7db844ce-6edf-4ac6-8882-1057a162a7fd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Export fig to HTML" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "620126c9-16c0-4396-bfae-8036436b50cd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.to_html(html_path)" + ] + }, + { + "cell_type": "markdown", + "id": "eabb6826-4cc6-4edd-b45a-322abfe38fea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas\n", + "You have the capability to distribute this chart using the provided public URL" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "045b39f3-4429-4d33-af5e-cf5ba385905e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(html_path, params={\"inline\": True})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "799b2fe8-4bcd-45eb-b6e0-927f61d9935b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b81f17379adfb8f806c07e73b25c89b733a11511e8fbf04be7cd54b6faa5ceac", + "notebook_path": "Advertools/Advertools_Visualize_status_codes_count.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Affinity/Affinity_Sync_with_Notion_database.ipynb b/Affinity/Affinity_Sync_with_Notion_database.ipynb index 6267eb7823..c6e5d7b441 100644 --- a/Affinity/Affinity_Sync_with_Notion_database.ipynb +++ b/Affinity/Affinity_Sync_with_Notion_database.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Affinity - Sync with Notion database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "5b32efc0-0bad-4db8-94af-67866979feba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Agicap/Agicap_Export_treasury_plan.ipynb b/Agicap/Agicap_Export_treasury_plan.ipynb index 32da07257e..2cd9d7bcbf 100644 --- a/Agicap/Agicap_Export_treasury_plan.ipynb +++ b/Agicap/Agicap_Export_treasury_plan.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Agicap - Export treasury plan\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "1e2e3b7d-7bd2-4450-8104-52a279b3348e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-27 (Created: 2023-04-26)" + ] + }, { "cell_type": "markdown", "id": "25cd968d-2614-4232-b482-e4778a85cafb", diff --git a/Agicap/Agicap_Export_treasury_plan_by_account.ipynb b/Agicap/Agicap_Export_treasury_plan_by_account.ipynb index f2bb90f05f..56fdf0cbe1 100644 --- a/Agicap/Agicap_Export_treasury_plan_by_account.ipynb +++ b/Agicap/Agicap_Export_treasury_plan_by_account.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Agicap - Export treasury plan by account\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "3fa178e5-372f-4d60-97ed-edcb52bdb5ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-27 (Created: 2023-04-27)" + ] + }, { "cell_type": "markdown", "id": "25cd968d-2614-4232-b482-e4778a85cafb", diff --git a/Agicap/Agicap_Get_banks_accounts_from_company.ipynb b/Agicap/Agicap_Get_banks_accounts_from_company.ipynb new file mode 100644 index 0000000000..d49a9410e5 --- /dev/null +++ b/Agicap/Agicap_Get_banks_accounts_from_company.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b0f7d279-263a-4e27-9c69-0a568763a49e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "ce525f1b-c766-44d4-bac8-ae23a2c9bcd9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Agicap - Get banks accounts from company\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5f84b2dc-2e8b-4f8d-8cc5-85afb0fea245", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #agicap #bankaccount #company #finance #data #api" + ] + }, + { + "cell_type": "markdown", + "id": "0dbbf75b-a7a8-4ddd-b4d0-81442abd3942", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "682bb76a-7258-44d0-8c2e-1d9c7b7022d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-12 (Created: 2023-07-12)" + ] + }, + { + "cell_type": "markdown", + "id": "499a0b55-37cb-465b-8b04-1eb185faaea1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get bank account from a company using Agicap API. It is usefull for organizations to quickly get the bank account of a company." + ] + }, + { + "cell_type": "markdown", + "id": "0279a58b-adfb-497c-be79-5230d6bf7922", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "5f87f236-2b65-4da4-8d4f-ebd531b39240", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9df827f0-bc70-4a68-91b3-de4fdd691b88", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "d4006654-3718-4eaf-a952-023c39973ccb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: Get your Agicap Bearer Token by inspecting your page\n", + "- `company_id`: Company ID on Agicap, it must matched an id extracted from \"Agicap_List_companies.ipynb\" template." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c16550f3-cda5-4559-82ce-98d7818e2d45", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "token = naas.secret.get(\"AGICAP_BEARER_TOKEN\") or \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\n", + "company_id = \"xxxx\"" + ] + }, + { + "cell_type": "markdown", + "id": "e8ecb2bd-fadd-4c92-82b2-2f159102b307", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "fffa0325-b316-4689-8b67-39bab626ae2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all banks accounts from company" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7288b3b-2ac1-4555-82da-5755b4e048cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "url = \"https://app.agicap.com/api/banque/GetAll\"\n", + "\n", + "# Headers\n", + "headers = {\n", + " \"Accept\": \"application/json, text/plain, */*\",\n", + " \"Authorization\": f\"Bearer {token}\",\n", + " \"Entrepriseid\": company_id\n", + "}\n", + "# Request\n", + "res = requests.get(url, headers=headers)\n", + "res.raise_for_status\n", + "res" + ] + }, + { + "cell_type": "markdown", + "id": "d90f16ce-67b9-4839-a7e8-1029eeb3d949", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Transform json to dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91b6c4f4-42a0-4d18-b070-2d2c6f219c8a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = []\n", + "if res.status_code == 200:\n", + " result = res.json().get(\"Result\")\n", + " \n", + "df = pd.DataFrame(result)\n", + "df.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "376824be-b2d3-4c2c-9c3e-abea4d2a3e29", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "7f409b82-e2c3-48d2-9d77-82b38e0e15c8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef93440d-9138-4d1d-a5cc-f67b5110c4ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Accounts fetched:\", len(df))\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "1514a40c-06a0-44c7-b64d-896b7b312b8d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "60ccdeaf932ef6f8fca9165c7451786434f49f667476e71971ae5eec00a549ea", + "notebook_path": "Agicap/Agicap_Get_banks_accounts_from_company.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Agicap/Agicap_Get_inflow_categories_from_company.ipynb b/Agicap/Agicap_Get_inflow_categories_from_company.ipynb new file mode 100644 index 0000000000..c7c633c146 --- /dev/null +++ b/Agicap/Agicap_Get_inflow_categories_from_company.ipynb @@ -0,0 +1,311 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "eb397bd6-e162-4022-b924-aaa788fc3077", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "3a556037-c0e4-4f60-b53e-9f20d76df238", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Agicap - Get inflow categories from company\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "34b2748e-6b0a-4ce1-9b30-b90fd2c71079", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #agicap #categories #company #data #python" + ] + }, + { + "cell_type": "markdown", + "id": "e575bd90-d1cb-4081-8108-9490dc8447a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "37038a7d-407d-49e8-9ca2-358bcc850434", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-12 (Created: 2023-07-12)" + ] + }, + { + "cell_type": "markdown", + "id": "7555cfe2-b035-4a3c-a79b-ee86dd41e15d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will get inflow categories from a company in Agicap and return a DataFrame." + ] + }, + { + "cell_type": "markdown", + "id": "1b67c259-20ee-4772-9d45-f777ae0a13e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Agicap Documentation](https://docs.agicap.com/)\n", + "- [Agicap API](https://api.agicap.com/)" + ] + }, + { + "cell_type": "markdown", + "id": "b6a14a76-b442-4e2c-a1aa-5ad1afeac4f3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "22c375cc-0f73-4ccf-8343-c6ffae0f55c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8444fcb8-e1d2-46f0-ae48-d700f2f232a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "d5ab947d-7760-4bc0-87cf-bff6c1cb31b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: Get your Agicap Bearer Token by inspecting your page\n", + "- `company_id`: Company ID on Agicap, it must matched an id extracted from \"Agicap_List_companies.ipynb\" template." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e343114-adb3-41fd-bb25-2406ad505a9b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "token = naas.secret.get(\"AGICAP_BEARER_TOKEN\") or \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\n", + "company_id = \"63535\"" + ] + }, + { + "cell_type": "markdown", + "id": "7dd3be39-682b-4ed3-a4e4-89f1289677fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "3283d531-0ea5-43d4-be55-0d1a44f666fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get categories from company" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c16346f-7608-4ef1-970c-89c7d1b903d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Agicap URL\n", + "url = \"https://app.agicap.com/api/categories/v1/hierarchy/inflow\"\n", + "\n", + "# Headers\n", + "headers = {\n", + " \"Accept\": \"application/json, text/plain, */*\",\n", + " \"Authorization\": f\"Bearer {token}\",\n", + " \"EntrepriseId\": company_id,\n", + " \"Content-Type\": \"application/json\"\n", + "}\n", + "res = requests.get(url, headers=headers)\n", + "res.raise_for_status\n", + "categories = res.json().get(\"categories\")" + ] + }, + { + "cell_type": "markdown", + "id": "4802d2cc-2cff-45c4-8441-2653150f2e1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9d5103c3-97e0-4c61-8b98-e8f1115e7147", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f1e7170-9f9d-491c-bab8-b38e53c1e58b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Flatten the nested dict\n", + "def flatten_dict(d, parent_key='', sep='_'):\n", + " \"\"\"\n", + " Flattens a nested dictionary into a single level dictionary.\n", + "\n", + " Args:\n", + " d (dict): A nested dictionary.\n", + " parent_key (str): Optional string to prefix the keys with.\n", + " sep (str): Optional separator to use between parent_key and child_key.\n", + "\n", + " Returns:\n", + " dict: A flattened dictionary.\n", + " \"\"\"\n", + " items = []\n", + " for k, v in d.items():\n", + " new_key = f\"{parent_key}{sep}{k}\" if parent_key else k\n", + " if isinstance(v, dict):\n", + " items.extend(flatten_dict(v, new_key, sep=sep).items())\n", + " else:\n", + " items.append((new_key, v))\n", + " return dict(items)\n", + "\n", + "# Init\n", + "data = []\n", + "\n", + "# Loop on categories\n", + "for category in categories:\n", + " data.append(flatten_dict(category)) \n", + "\n", + "# Create DataFrame\n", + "df = pd.DataFrame(data)\n", + "print(\"Inflow categories fetched:\", len(df))\n", + "df.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "1b3fa305-ada6-4f91-87a6-a35864496318", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "71d55f60d4a6651a4020659b3bfa10cdbb7140d2eecf5287e21df984c3870670", + "notebook_path": "Agicap/Agicap_Get_inflow_categories_from_company.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Agicap/Agicap_Get_outflow_categories_from_company.ipynb b/Agicap/Agicap_Get_outflow_categories_from_company.ipynb new file mode 100644 index 0000000000..10dcb9adef --- /dev/null +++ b/Agicap/Agicap_Get_outflow_categories_from_company.ipynb @@ -0,0 +1,311 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "eb397bd6-e162-4022-b924-aaa788fc3077", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "3a556037-c0e4-4f60-b53e-9f20d76df238", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Agicap - Get outflow categories from company\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "34b2748e-6b0a-4ce1-9b30-b90fd2c71079", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #agicap #categories #company #data #python" + ] + }, + { + "cell_type": "markdown", + "id": "e575bd90-d1cb-4081-8108-9490dc8447a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "37038a7d-407d-49e8-9ca2-358bcc850434", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-12 (Created: 2023-07-12)" + ] + }, + { + "cell_type": "markdown", + "id": "7555cfe2-b035-4a3c-a79b-ee86dd41e15d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will get outflow categories from a company in Agicap and return a DataFrame." + ] + }, + { + "cell_type": "markdown", + "id": "1b67c259-20ee-4772-9d45-f777ae0a13e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Agicap Documentation](https://docs.agicap.com/)\n", + "- [Agicap API](https://api.agicap.com/)" + ] + }, + { + "cell_type": "markdown", + "id": "b6a14a76-b442-4e2c-a1aa-5ad1afeac4f3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "22c375cc-0f73-4ccf-8343-c6ffae0f55c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8444fcb8-e1d2-46f0-ae48-d700f2f232a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "d5ab947d-7760-4bc0-87cf-bff6c1cb31b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: Get your Agicap Bearer Token by inspecting your page\n", + "- `company_id`: Company ID on Agicap, it must matched an id extracted from \"Agicap_List_companies.ipynb\" template." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e343114-adb3-41fd-bb25-2406ad505a9b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "token = naas.secret.get(\"AGICAP_BEARER_TOKEN\") or \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\n", + "company_id = \"63535\"" + ] + }, + { + "cell_type": "markdown", + "id": "7dd3be39-682b-4ed3-a4e4-89f1289677fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "3283d531-0ea5-43d4-be55-0d1a44f666fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get categories from company" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c16346f-7608-4ef1-970c-89c7d1b903d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Agicap URL\n", + "url = \"https://app.agicap.com/api/categories/v1/hierarchy/outflow\"\n", + "\n", + "# Headers\n", + "headers = {\n", + " \"Accept\": \"application/json, text/plain, */*\",\n", + " \"Authorization\": f\"Bearer {token}\",\n", + " \"EntrepriseId\": company_id,\n", + " \"Content-Type\": \"application/json\"\n", + "}\n", + "res = requests.get(url, headers=headers)\n", + "res.raise_for_status\n", + "categories = res.json().get(\"categories\")" + ] + }, + { + "cell_type": "markdown", + "id": "4802d2cc-2cff-45c4-8441-2653150f2e1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9d5103c3-97e0-4c61-8b98-e8f1115e7147", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f1e7170-9f9d-491c-bab8-b38e53c1e58b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Flatten the nested dict\n", + "def flatten_dict(d, parent_key='', sep='_'):\n", + " \"\"\"\n", + " Flattens a nested dictionary into a single level dictionary.\n", + "\n", + " Args:\n", + " d (dict): A nested dictionary.\n", + " parent_key (str): Optional string to prefix the keys with.\n", + " sep (str): Optional separator to use between parent_key and child_key.\n", + "\n", + " Returns:\n", + " dict: A flattened dictionary.\n", + " \"\"\"\n", + " items = []\n", + " for k, v in d.items():\n", + " new_key = f\"{parent_key}{sep}{k}\" if parent_key else k\n", + " if isinstance(v, dict):\n", + " items.extend(flatten_dict(v, new_key, sep=sep).items())\n", + " else:\n", + " items.append((new_key, v))\n", + " return dict(items)\n", + "\n", + "# Init\n", + "data = []\n", + "\n", + "# Loop on categories\n", + "for category in categories:\n", + " data.append(flatten_dict(category)) \n", + "\n", + "# Create DataFrame\n", + "df = pd.DataFrame(data)\n", + "print(\"Inflow categories fetched:\", len(df))\n", + "df.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "1b3fa305-ada6-4f91-87a6-a35864496318", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "00feab61f04c827086dcafd75d0532814272be3ecbef5608861024364dd1d02a", + "notebook_path": "Agicap/Agicap_Get_outflow_categories_from_company.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Agicap/Agicap_List_companies.ipynb b/Agicap/Agicap_List_companies.ipynb index 72e4bcdcbb..c90029ed4f 100644 --- a/Agicap/Agicap_List_companies.ipynb +++ b/Agicap/Agicap_List_companies.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Agicap - List companies\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "19759fbc-6f90-47be-91d9-5a0941e2aabe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-10)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", @@ -60,7 +71,7 @@ "tags": [] }, "source": [ - "**Description:** This notebook lists all the companies within Agicap with their IDs." + "**Description:** This notebook lists all the companies within Agicap with their IDs. Agicap is a powerful accounting software for managing your company's finances. It offers features such as expense tracking, budget planning, invoicing, and data analysis to help you make informed business decisions." ] }, { @@ -78,23 +89,10 @@ "tags": [] }, "source": [ - "References:\n", + "**References:**\n", "- https://www.postman.com/agicap-data-int/workspace/agicap-public/documentation/16057249-07e739b2-d2f7-4437-82fa-7ca0d290336b" ] }, - { - "cell_type": "markdown", - "id": "282b7f5c-8a37-4c59-9dd0-9eda3cf56796", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "**About AGICAP?**\n", - "\n", - "Agicap is a powerful accounting software for managing your company's finances. It offers features such as expense tracking, budget planning, invoicing, and data analysis to help you make informed business decisions." - ] - }, { "cell_type": "markdown", "id": "distinguished-truth", @@ -140,14 +138,8 @@ "tags": [] }, "source": [ - "### Setup Agicap\n", - "Agicap public API uses token-based authentification method.\n", - "\n", - "To start using the API, you need first to generate an API token within your Agicap dashboard.\n", - "- Go to the API section of your advance settings page by following this [link](https://app.agicap.com/fr/app/parametres/openapi).\n", - "- Click on Generate Token\n", - "- Enter a name for your token (useful for remembering its context of use)\n", - "- Copy the generated token and save it securely" + "### Setup Variables\n", + "- `token`: Agicap api token [Generate your token](https://app.agicap.com/fr/app/parametres/openapi)" ] }, { @@ -160,7 +152,7 @@ }, "outputs": [], "source": [ - "AGICAP_TOKEN = naas.secret.get(\"AGICAP_TOKEN\") or \"eGu3qPIo6kuetXXXXXXXX\"" + "token = naas.secret.get(\"AGICAP_API_TOKEN\") or \"eGu3qPIo6kuetXXXXXXXX\"" ] }, { @@ -184,7 +176,6 @@ "source": [ "### Retrieve Companies\n", "Now you have generated your API Token, it's time to try it with your first API call.\n", - "\n", "For this, we are going to start by calling the GET /companies endpoint that allows you to retrieve all the Companies linked to your Agicap account (through your API Token)." ] }, @@ -205,12 +196,37 @@ " \"Accept\": \"application/json\",\n", " \"Authorization\": f\"Bearer {token}\",\n", "}\n", - "# Request\n", + "# Rcompany_idequest\n", "res = requests.get(url, headers=headers)\n", "res.raise_for_status\n", "res" ] }, + { + "cell_type": "markdown", + "id": "f5d4f189-420d-4547-8f0b-5c645e351aed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Tranform json to dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5e152bb8-96d3-4be5-b612-55a7cee8f025", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(res.json())\n", + "df.head(1)" + ] + }, { "cell_type": "markdown", "id": "lonely-pacific", @@ -237,7 +253,7 @@ "tags": [] }, "source": [ - "### Tranform json to dataframe" + "### Display result" ] }, { @@ -250,7 +266,8 @@ }, "outputs": [], "source": [ - "pd.DataFrame(res.json())" + "print(\"Companies fetched:\", len(df))\n", + "df" ] } ], diff --git a/Airtable/Airtable_Delete_data.ipynb b/Airtable/Airtable_Delete_data.ipynb index 7e7ae65543..63cfa758d7 100644 --- a/Airtable/Airtable_Delete_data.ipynb +++ b/Airtable/Airtable_Delete_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Airtable - Delete data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "d2c45586-3011-47a7-a259-6979a1637810", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Airtable/Airtable_Get_data.ipynb b/Airtable/Airtable_Get_data.ipynb index 880f4779a6..cae7c88dc6 100644 --- a/Airtable/Airtable_Get_data.ipynb +++ b/Airtable/Airtable_Get_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Airtable - Get data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "a70446e7-e5d3-44f5-8867-230064f94baf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Airtable/Airtable_Insert_data.ipynb b/Airtable/Airtable_Insert_data.ipynb index 9caf2703a2..09447dbad9 100644 --- a/Airtable/Airtable_Insert_data.ipynb +++ b/Airtable/Airtable_Insert_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Airtable - Insert data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "aff5f509-9d1e-41d0-ac82-76e70121c5c8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Airtable/Airtable_Search_data.ipynb b/Airtable/Airtable_Search_data.ipynb index 3a0ab11c7f..976898c8e1 100644 --- a/Airtable/Airtable_Search_data.ipynb +++ b/Airtable/Airtable_Search_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Airtable - Search data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "5c2226bb-33e2-4008-b720-a6ee1616b025", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb b/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb index 42f18fe51b..4f0394ebd1 100644 --- a/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb +++ b/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Algolia - Add or Replace all attributes in existing records\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "194da4a4-773f-4dd1-9e91-99c8c1bef860", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "157047ba-776b-430e-add1-5f72083ead65", diff --git a/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb b/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb index e21af567ee..7289fa0cd8 100644 --- a/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb +++ b/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Algolia - Add or Replace all attributes in a single record\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "be434cf7-9e1f-481f-8074-ced50180d26e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "157047ba-776b-430e-add1-5f72083ead65", diff --git a/Algolia/Algolia_Delete_multiples_objects.ipynb b/Algolia/Algolia_Delete_multiples_objects.ipynb index c23f4ea695..1aac77f4f5 100644 --- a/Algolia/Algolia_Delete_multiples_objects.ipynb +++ b/Algolia/Algolia_Delete_multiples_objects.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Algolia - Delete multiples objects\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "9b350560-b518-44cc-ac1b-249a9c833890", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "157047ba-776b-430e-add1-5f72083ead65", diff --git a/Algolia/Algolia_Delete_single_object.ipynb b/Algolia/Algolia_Delete_single_object.ipynb index f38d73b4e4..20b598ff1b 100644 --- a/Algolia/Algolia_Delete_single_object.ipynb +++ b/Algolia/Algolia_Delete_single_object.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Algolia - Delete a single object\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "9cb5253a-937d-4d21-ac19-da356285cb70", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "157047ba-776b-430e-add1-5f72083ead65", diff --git a/Algolia/Algolia_Get_all_records_from_an_index.ipynb b/Algolia/Algolia_Get_all_records_from_an_index.ipynb index 1f022b52ca..3a03354052 100644 --- a/Algolia/Algolia_Get_all_records_from_an_index.ipynb +++ b/Algolia/Algolia_Get_all_records_from_an_index.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Algolia - Get all records from an index\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "fdbd2377-3140-4667-9dbf-51dfbb70c56c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "157047ba-776b-430e-add1-5f72083ead65", diff --git a/Algolia/Algolia_List indices.ipynb b/Algolia/Algolia_List indices.ipynb index 3db4521f5c..7625194281 100644 --- a/Algolia/Algolia_List indices.ipynb +++ b/Algolia/Algolia_List indices.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Algolia - List indices\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "42198dcb-2c11-481a-9641-a957a9b2d9f5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "157047ba-776b-430e-add1-5f72083ead65", diff --git a/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb b/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb index 159e69ac1d..e395e37dfd 100644 --- a/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb +++ b/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# AlphaVantage - Get balance sheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "22072655-f6cd-4ed0-8bda-88011c95fdb0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb b/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb index 9813d39f50..1c4eeb9189 100644 --- a/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb +++ b/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# AlphaVantage - Get cashflow statement\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "97d57c1e-7a3d-4c3b-9deb-c2859ebedae3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AlphaVantage/AlphaVantage_Get_company_overview.ipynb b/AlphaVantage/AlphaVantage_Get_company_overview.ipynb index d195fd9285..c319236a48 100644 --- a/AlphaVantage/AlphaVantage_Get_company_overview.ipynb +++ b/AlphaVantage/AlphaVantage_Get_company_overview.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# AlphaVantage - Get company overview\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "e7f2ca8a-0188-45fb-aa4b-6d29dbeab6bb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/AlphaVantage/AlphaVantage_Get_income_statement.ipynb b/AlphaVantage/AlphaVantage_Get_income_statement.ipynb index 15dec34b71..b941b659e2 100644 --- a/AlphaVantage/AlphaVantage_Get_income_statement.ipynb +++ b/AlphaVantage/AlphaVantage_Get_income_statement.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# AlphaVantage - Get income statement\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "ec8dffc5-ea54-4ffc-be31-79895e2c4243", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Azure Blob Storage/Azure_Blob_Storage_List_blobs.ipynb b/Azure Blob Storage/Azure_Blob_Storage_List_blobs.ipynb new file mode 100644 index 0000000000..8905ea66ce --- /dev/null +++ b/Azure Blob Storage/Azure_Blob_Storage_List_blobs.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d27bde12-da27-4031-92c1-b77dc0fa8ed6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "a5c528f7-ea73-4965-9e6d-a9b8a76c2ffd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Azure Blob Storage - List blobs\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "15425986-f2c4-4aec-b99d-c8cb0d3ab08e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #azure #blob #storage #list #blobs" + ] + }, + { + "cell_type": "markdown", + "id": "d97f7c3f-e696-4874-be16-be9a121e86df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "8baa1bb7-dbf2-4545-a3ad-8559fb4b11c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-14 (Created: 2023-07-14)" + ] + }, + { + "cell_type": "markdown", + "id": "2f56120f-9d02-4ba3-82fb-22b8a580e4d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will demonstrate how to use the List Blobs operation to return a list of the blobs under the specified container. This is usefull for organizations that need to store and access large amounts of data." + ] + }, + { + "cell_type": "markdown", + "id": "30079c13-e2c6-46b3-84cf-9da276e83e3d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Azure Blob Storage - List blobs](https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs?tabs=azure-ad)\n", + "- [Azure Storage Documentation](https://docs.microsoft.com/en-us/azure/storage/)" + ] + }, + { + "cell_type": "markdown", + "id": "94713339-b944-4f3f-9d30-dbcb3268bc7a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6a65bdd7-c07a-4b6f-96f8-0d4930227206", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "08edcd42-54f8-41b3-b821-3596cbbda11b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " from azure.storage.blob import BlobServiceClient\n", + "except:\n", + " !pip install azure-storage-blob --user\n", + " from azure.storage.blob import BlobServiceClient\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "610d8bc1-f93e-41e2-b605-6492a48de86d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `account_key`: The access key for the storage account.\n", + "- `account_name`: The name of the storage account.\n", + "- `container_name`: The name of the container." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c11f6141-ed39-4fc2-ae6e-1f05b6a38efb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "account_key = naas.secret.get(\"AZURE_BLOB_STORAGE_ACCOUNT_KEY\") or 'JcJN9/9jc7ZjbKCvKbOUxLLdBxxxxxxxxxxxxxxxxxxx=='\n", + "account_url = naas.secret.get(\"AZURE_BLOB_STORAGE_ACCOUNT_URL\") or 'https://xxxxxxx.blob.core.windows.net'\n", + "container_name = 'my_container'" + ] + }, + { + "cell_type": "markdown", + "id": "efeeacd8-3894-45f6-a270-5fbdd6d44cf2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "d61ee96e-ec64-479e-a31e-7a7ad582f14c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List Blobs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aaa40df7-121f-49fd-9b31-a0db84e063cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create the BlobServiceClient object which will be used to create a container client\n", + "blob_service_client = BlobServiceClient(account_url=account_url, credential=account_key)\n", + "\n", + "# Create a container client\n", + "container_client = blob_service_client.get_container_client(container=container_name)\n", + "\n", + "# List the blobs in the container\n", + "blob_list = container_client.list_blobs()" + ] + }, + { + "cell_type": "markdown", + "id": "9c7d662c-39d7-404b-a160-8f9f1e04ac1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "5b99e5f6-7135-4635-b383-ac0cd7fa43e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e05e5a40-c24e-4e7b-a608-7e94a05277ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Print the blobs\n", + "for blob in blob_list:\n", + " print(\"\\t Blob name: \" + blob.name)" + ] + }, + { + "cell_type": "markdown", + "id": "6664356d-a79d-4a4d-80d6-424b51380a30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e51bed9276f9ce9924e82646245d4ed0e8815cd7992187fdf8715a68a7bb8a46", + "notebook_path": "Azure Blob Storage/Azure_Blob_Storage_List_blobs.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Azure Blob Storage/Azure_Blob_Storage_Upload_files.ipynb b/Azure Blob Storage/Azure_Blob_Storage_Upload_files.ipynb index 54755bf898..54724daaff 100644 --- a/Azure Blob Storage/Azure_Blob_Storage_Upload_files.ipynb +++ b/Azure Blob Storage/Azure_Blob_Storage_Upload_files.ipynb @@ -34,7 +34,7 @@ }, "source": [ "# Azure Blob Storage - Upload files\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -66,6 +66,17 @@ "**Author:** [Alexandre Stevens](https://www.linkedin.com/in/)
" ] }, + { + "cell_type": "markdown", + "id": "c706bfc1-89ac-492b-be3e-fe479dd38bc6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-06)" + ] + }, { "cell_type": "markdown", "id": "dc12601c-5b05-4cd0-bcb9-30e53442ed58", diff --git a/Azure Machine Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb b/Azure Machine Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb new file mode 100644 index 0000000000..91b6078ce9 --- /dev/null +++ b/Azure Machine Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb @@ -0,0 +1,456 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b7cad326-ccf1-45d1-bc0c-1b09b2ad2a42", + "metadata": { + "id": "b7cad326-ccf1-45d1-bc0c-1b09b2ad2a42", + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "180e9541-2f56-4f0f-8f5f-03d46f19e1c8", + "metadata": { + "id": "180e9541-2f56-4f0f-8f5f-03d46f19e1c8", + "papermill": {}, + "tags": [] + }, + "source": [ + "# Azure Machine Learning - Univariate Timeseries Inference\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1d51d4d3-ef80-4aa2-a49b-9e8219f8b448", + "metadata": { + "id": "1d51d4d3-ef80-4aa2-a49b-9e8219f8b448", + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #azure #machinelearning #univariate #timeseries #inference #ml" + ] + }, + { + "cell_type": "markdown", + "id": "dc491c61-fe50-41de-86ba-c2184cf66576", + "metadata": { + "id": "dc491c61-fe50-41de-86ba-c2184cf66576", + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Tobias Zwingmann](https://www.linkedin.com/in/tobias-zwingmann/)" + ] + }, + { + "cell_type": "markdown", + "id": "494a30c7-4c29-478a-8029-003d0a555f09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "201c1c2f-e99f-4377-b761-7ca5b04b083a", + "metadata": { + "id": "201c1c2f-e99f-4377-b761-7ca5b04b083a", + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook provides an example of how to use Azure Machine Learning to perform univariate timeseries inference. It is useful for organizations that need to analyze and predict future trends in their data. It requires a timeseries forecasting model hosted on Microsoft Azure and deployed as a web service. (See references below)." + ] + }, + { + "cell_type": "markdown", + "id": "4ed1aea6-d58b-4b36-bfe0-aae720668926", + "metadata": { + "id": "4ed1aea6-d58b-4b36-bfe0-aae720668926", + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Azure Machine Learning Documentation](https://docs.microsoft.com/en-us/azure/machine-learning/)\n", + "- [Tutorial: Forecast demand with no-code automated machine learning in the Azure Machine Learning studio](https://learn.microsoft.com/en-us/azure/machine-learning/tutorial-automated-ml-forecast)\n", + "- [Univariate Timeseries Inference](https://en.wikipedia.org/wiki/Time_series#Univariate_time_series_models)" + ] + }, + { + "cell_type": "markdown", + "id": "0a00fcc5-b63e-4e1e-81de-f0a98ed07bdc", + "metadata": { + "id": "0a00fcc5-b63e-4e1e-81de-f0a98ed07bdc", + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "8523405b-da48-4c13-b9a2-9bc0ed22315c", + "metadata": { + "id": "8523405b-da48-4c13-b9a2-9bc0ed22315c", + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91aaa71c-f002-4d8e-9955-b4f978b29ac7", + "metadata": { + "id": "91aaa71c-f002-4d8e-9955-b4f978b29ac7", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import requests\n", + "import json\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "4e18e9db-9910-4cf8-813d-864031f9359e", + "metadata": { + "id": "4e18e9db-9910-4cf8-813d-864031f9359e", + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `timestamp_col`: The name of the column with the timestamps. Must be the same as used in training.\n", + "- `data_init`: Init data to be converted to DataFrame.\n", + "- `timestamps_to_predict`: A list of the timestamps to predict. The timestamps must lie **after** the timestamps observed during training\n", + "- `api_url`: the http URL to the Azure forecasting model\n", + "- `api_key`: the access key for the model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9aed812d-8523-422c-b7fd-d599683ab4a7", + "metadata": { + "id": "9aed812d-8523-422c-b7fd-d599683ab4a7", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "timestamp_col = \"timeStamp\"\n", + "data_init = {\n", + " timestamp_col: [\"2017-08-10 01:00:00\", \"2017-08-10 02:00:00\", \"2017-08-10 03:00:00\", \"2017-08-10 04:00:00\", \"2017-08-10 05:00:00\", \"2017-08-10 06:00:00\"],\n", + " \"values\": [6053.458, 6714.258, 6497.025, 6360.583, 6333.775, 6534.683]\n", + "}\n", + "timestamps_to_predict = [\n", + " \"2017-08-10 06:00:00\", \n", + " \"2017-08-10 07:00:00\",\n", + " \"2017-08-10 08:00:00\",\n", + " \"2017-08-10 09:00:00\",\n", + " \"2017-08-10 10:00:00\",\n", + " \"2017-08-10 11:00:00\"\n", + "]\n", + "# Azure hosted model URL and key - replace these with your own values!\n", + "api_url = naas.secret.get(\"AZURE_API_URL\") or \"Paste your API URL\"\n", + "api_key = naas.secret.get(\"AZURE_API_KEY\") or \"Paste your API Key\"" + ] + }, + { + "cell_type": "markdown", + "id": "de31aad5-d078-4ac7-9689-8eb11b2d1b76", + "metadata": { + "id": "de31aad5-d078-4ac7-9689-8eb11b2d1b76", + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "08605dc9-9e9a-4102-a6b1-15d6ce81a2e9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get historical data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6SG7EJFxFhLw", + "metadata": { + "id": "6SG7EJFxFhLw", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Historic data - adjust if needed for plotting\n", + "data = pd.DataFrame(data_init)\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "a28a0b75-a8dd-4c9e-8c88-a2564deb5023", + "metadata": { + "id": "a28a0b75-a8dd-4c9e-8c88-a2564deb5023", + "papermill": {}, + "tags": [] + }, + "source": [ + "### Perform Univariate Timeseries Inference" + ] + }, + { + "cell_type": "markdown", + "id": "b7827df0-6a58-48c5-9316-5557c234149b", + "metadata": { + "id": "b7827df0-6a58-48c5-9316-5557c234149b", + "papermill": {}, + "tags": [] + }, + "source": [ + "Using the forecasting model, perform univariate timeseries inference on the data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "caf1f882-ec33-48af-8f60-4c501374d974", + "metadata": { + "id": "caf1f882-ec33-48af-8f60-4c501374d974", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def inference_request(timestamp_col, timestamps):\n", + " # Bind columns to dataframe\n", + " request_df = pd.DataFrame({timestamp_col: timestamps})\n", + "\n", + " req = {\n", + " \"Inputs\": {\n", + " \"data\": list(request_df.to_dict('records'))\n", + " },\n", + " \"GlobalParameters\": {\n", + " \"quantiles\": [0.025, 0.975]\n", + " }\n", + " }\n", + "\n", + " # POST request - send JSON to API\n", + " headers = {\n", + " 'Authorization': (\"Bearer \" + api_key), \n", + " 'Content-Type': 'application/json'\n", + " }\n", + " result = requests.post(api_url, data = str.encode(json.dumps(req)), headers=headers)\n", + " return result\n", + "\n", + "def format_timestamps(timestamps):\n", + " # Format timestamp according to Azure requirements\n", + " return(pd.to_datetime(pd.Series(timestamps_to_predict)).dt.strftime(\"%Y-%m-%dT%H:%M:%S.%fZ\"))\n", + "\n", + "# Get predictions\n", + "result = inference_request(timestamp_col, format_timestamps(timestamps_to_predict))\n", + "result = json.loads(result.content)\n", + "\n", + "# Convert result to dataframe\n", + "results_df = pd.DataFrame(result['Results'])\n", + "\n", + "# Move prediction intervals to separate columns\n", + "lower = []\n", + "upper = []\n", + "for element in results_df['prediction_interval']:\n", + " lower.append(json.loads(element)[0])\n", + " upper.append(json.loads(element)[1])\n", + "\n", + "results_df['prediction_interval_lower'] = lower\n", + "results_df['prediction_interval_upper'] = upper\n", + "results_df['forecast'] = results_df['forecast']\n", + "results_df[timestamp_col] = timestamps_to_predict\n", + "results_df = results_df.drop(\"index\", axis = 1)\n", + "results_df = results_df.drop(\"prediction_interval\", axis = 1)" + ] + }, + { + "cell_type": "markdown", + "id": "63120f62-d514-41fb-9a6c-5fd32e482941", + "metadata": { + "id": "63120f62-d514-41fb-9a6c-5fd32e482941", + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "WxKoOn8ZJGZe", + "metadata": { + "id": "WxKoOn8ZJGZe", + "papermill": {}, + "tags": [] + }, + "source": [ + "### Return predictions only" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "hxXbzW7ZJIR0", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "hxXbzW7ZJIR0", + "outputId": "0ca1d2e8-9b7b-4d7b-d2ab-d6c9e6067c46", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "results_df" + ] + }, + { + "cell_type": "markdown", + "id": "34CjwvMXJKUB", + "metadata": { + "id": "34CjwvMXJKUB", + "papermill": {}, + "tags": [] + }, + "source": [ + "### Return historic data and predictions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "wFxIi6l9JNlX", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 421 + }, + "id": "wFxIi6l9JNlX", + "outputId": "04c95600-e677-40ac-87a2-96c008ee8a17", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = pd.concat([data, results_df])\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "d6fc2b08-dcea-4e46-b63a-2c88a17cf646", + "metadata": { + "id": "d6fc2b08-dcea-4e46-b63a-2c88a17cf646", + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display chart" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "adc98968-a65b-4077-b31c-9b25003f77e9", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 664 + }, + "id": "adc98968-a65b-4077-b31c-9b25003f77e9", + "outputId": "604f6a0b-0072-49ce-9954-6dc5912625c4", + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Plot the original data and the inference data\n", + "timestamps = data[timestamp_col]\n", + "observed_values = data[\"values\"]\n", + "forecast_values = data[\"forecast\"]\n", + "lower = data['prediction_interval_lower']\n", + "upper = data['prediction_interval_upper']\n", + "\n", + "plt.figure(figsize=(10, 6))\n", + "plt.plot(timestamps, observed_values, label='Observed', linewidth=2)\n", + "plt.plot(timestamps, forecast_values, label='Forecast', linewidth=2)\n", + "plt.fill_between(timestamps, lower, upper, color='lightgray', alpha=0.5, label='Prediction Interval')\n", + "plt.xlabel('Timestamps')\n", + "plt.ylabel('Values')\n", + "plt.title('Time Series with Forecast and Prediction Interval')\n", + "plt.legend()\n", + "plt.xticks(rotation = 45)\n", + "plt.show()" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "94f5a9a6634caea4d03c1756a001a4f834c1fd06920b6183b034b0b60c449401", + "notebook_path": "Azure Machine Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Bazimo/Bazimo_Get_export_Actifs.ipynb b/Bazimo/Bazimo_Get_export_Actifs.ipynb index 85b36dab58..e99bca84a1 100644 --- a/Bazimo/Bazimo_Get_export_Actifs.ipynb +++ b/Bazimo/Bazimo_Get_export_Actifs.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Bazimo - Get export Actifs\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f36ed678-15ec-434d-b897-91ee27b938bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Bazimo/Bazimo_Get_export_Baux.ipynb b/Bazimo/Bazimo_Get_export_Baux.ipynb index 2bd9c1de1d..fe2aea32ee 100644 --- a/Bazimo/Bazimo_Get_export_Baux.ipynb +++ b/Bazimo/Bazimo_Get_export_Baux.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Bazimo - Get export Baux\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e1440c54-5cf9-4467-94dc-0c375db0f7ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Bazimo/Bazimo_Get_export_Factures.ipynb b/Bazimo/Bazimo_Get_export_Factures.ipynb index d4e99239e3..f36cc84995 100644 --- a/Bazimo/Bazimo_Get_export_Factures.ipynb +++ b/Bazimo/Bazimo_Get_export_Factures.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Bazimo - Get export Factures\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "be7175ce-e9b5-4414-bb8c-fb7e49b40890", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Bazimo/Bazimo_Get_export_Locataires.ipynb b/Bazimo/Bazimo_Get_export_Locataires.ipynb index 510370b8b2..3472562b7a 100644 --- a/Bazimo/Bazimo_Get_export_Locataires.ipynb +++ b/Bazimo/Bazimo_Get_export_Locataires.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Bazimo - Get export Locataires\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5ea539ee-564f-4243-95b4-b10b5beee209", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Bazimo/Bazimo_Get_export_Lots.ipynb b/Bazimo/Bazimo_Get_export_Lots.ipynb index 2c345c781d..4535d94dde 100644 --- a/Bazimo/Bazimo_Get_export_Lots.ipynb +++ b/Bazimo/Bazimo_Get_export_Lots.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Bazimo - Get export Lots\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e02dcc4d-11bc-4694-b97a-fd534b953b4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb b/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb index 2007b9a45e..d7a70da903 100644 --- a/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb +++ b/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# BeautifulSoup - List social network links from website\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "275eab7b-fb3d-454e-be07-70e42994333e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-02 (Created: 2023-05-02)" + ] + }, { "cell_type": "markdown", "id": "8f1a033f-9362-43d8-8a8f-1878bd2115c4", diff --git a/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb b/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb index a3053d89fc..a6c0f90b8d 100644 --- a/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb +++ b/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# BeautifulSoup - Scrape emails from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6adfa6e0-0ca9-46ee-8258-8c3b24fcb16e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-16)" + ] + }, { "cell_type": "markdown", "id": "b5bdadc0-3346-4222-a74d-9a9237a2075f", diff --git a/BigQuery/BigQuery_Create_table_from_csv.ipynb b/BigQuery/BigQuery_Create_table_from_csv.ipynb index efb66348c4..728cc490a5 100644 --- a/BigQuery/BigQuery_Create_table_from_csv.ipynb +++ b/BigQuery/BigQuery_Create_table_from_csv.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# BigQuery - Create table from csv\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "a0ffacca-9eb8-4ba1-b6a1-1ce006613bba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/BigQuery/BigQuery_Read_Table.ipynb b/BigQuery/BigQuery_Read_Table.ipynb index c655cba6c2..bbf6e6239f 100644 --- a/BigQuery/BigQuery_Read_Table.ipynb +++ b/BigQuery/BigQuery_Read_Table.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# BigQuery - Read Table\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "a3d0e9e6-2c37-4379-ba73-32c807e3104b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Bitly/Bitly_Create_Links.ipynb b/Bitly/Bitly_Create_Links.ipynb index eb0a12d889..18ed51cb8e 100644 --- a/Bitly/Bitly_Create_Links.ipynb +++ b/Bitly/Bitly_Create_Links.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Create Links\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bb0b8642-275b-4048-8507-2d08bd2814ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-16)" + ] + }, { "cell_type": "markdown", "id": "0914cc6d-920a-4d04-8fc7-daf981a19580", diff --git a/Bitly/Bitly_Delete_a_Bitlink.ipynb b/Bitly/Bitly_Delete_a_Bitlink.ipynb index c969b4d4dc..396d54a045 100644 --- a/Bitly/Bitly_Delete_a_Bitlink.ipynb +++ b/Bitly/Bitly_Delete_a_Bitlink.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Delete a Bitlink\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "876da105-70d0-47c3-8284-9efd9692ac4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "77c54322-f78c-45de-8183-cd7baf1b6cce", diff --git a/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb b/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb index 49dafd8d77..9ec7d90f9a 100644 --- a/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb +++ b/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Get Clicks for a Bitlink\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7fe92732-a207-45b4-9a81-aaa079cc332e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "63e05edf-2b23-4be9-b167-a0ff2d9b9997", diff --git a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb index 4517665eb2..96cd40b596 100644 --- a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb +++ b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Get Metrics for a Bitlink by City\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "132b61ae-ad0b-474e-a4c2-2f02a34d8e2a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "fc23c9bd-ed0b-4a50-8900-f55bf77101d1", diff --git a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb index 544c519823..bfb03ecb19 100644 --- a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb +++ b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Get Metrics for a Bitlink by Country\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ff8ff7ba-5d9c-4d9c-b6f5-759d849bf6d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-23)" + ] + }, { "cell_type": "markdown", "id": "879b5522-2ff4-4d12-b10e-0996a6fe1ff2", diff --git a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb index c104f9db9e..06ba1dc3b2 100644 --- a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb +++ b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Get Metrics for a Bitlink by Devices\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0b1db313-83ef-489e-8348-d5b7439d9bac", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-28)" + ] + }, { "cell_type": "markdown", "id": "66d62244-6cf7-49a1-834b-7ebf539a49fe", diff --git a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb index 33348c364b..3fbcd24f8b 100644 --- a/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb +++ b/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Get Metrics for a Bitlink by Referrers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b8e02420-ff19-4566-bf41-3160181522d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "3060ebfc-f799-4e6a-b19b-3a7d493ec888", diff --git a/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb b/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb index b3a59507fe..8d4f739b17 100644 --- a/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb +++ b/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Get a Clicks Summary for a Bitlink\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "8ea31303-1685-42ed-88ac-a01e330018e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-23)" + ] + }, { "cell_type": "markdown", "id": "917ffcd3-e553-4fa0-b3a6-ad1976c43c24", diff --git a/Bitly/Bitly_Retrieve_Bitlink.ipynb b/Bitly/Bitly_Retrieve_Bitlink.ipynb index bc1e4b37c3..50e922b379 100644 --- a/Bitly/Bitly_Retrieve_Bitlink.ipynb +++ b/Bitly/Bitly_Retrieve_Bitlink.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Retrieve Bitlink\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6f388a4e-335c-4244-a1e4-26ffd406baba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-23)" + ] + }, { "cell_type": "markdown", "id": "d7cb8a4e-fc0a-4707-bc72-9c16ed06c9ed", diff --git a/Bitly/Bitly_Update_a_Bitlink.ipynb b/Bitly/Bitly_Update_a_Bitlink.ipynb index a2515ebc71..c2008b72c9 100644 --- a/Bitly/Bitly_Update_a_Bitlink.ipynb +++ b/Bitly/Bitly_Update_a_Bitlink.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bitly - Update a Bitlink\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "caa9e239-92b9-498c-8b79-af9301cd7880", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "b7419dec-577b-4cbd-b8c6-89a25995bb0e", diff --git a/Boursorama/Boursorama_Get_CDS.ipynb b/Boursorama/Boursorama_Get_CDS.ipynb index b15998f9a2..4e48a8e846 100644 --- a/Boursorama/Boursorama_Get_CDS.ipynb +++ b/Boursorama/Boursorama_Get_CDS.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Boursorama - Get CDS\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "7e557d01-1e7c-4f7f-af07-a9aa33125b69", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb b/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb index 81cbe074e7..93dba0277f 100644 --- a/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb +++ b/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Boursorama - Get EURIBOR 3 MOIS\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "0d6b2c99-0348-4f73-a910-25d3943d4a33", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "88185417-57d0-47a3-950c-6db33f8f9cf8", diff --git a/Bubble/Bubble_Send_data.ipynb b/Bubble/Bubble_Send_data.ipynb index c1774910eb..9da80ace6a 100644 --- a/Bubble/Bubble_Send_data.ipynb +++ b/Bubble/Bubble_Send_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Bubble - Send data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "545abca6-4787-43ea-807c-b5a24bf81c0f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb b/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb index 9c3faed089..174f4438c4 100644 --- a/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb +++ b/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# CCXT - Calculate Support and Resistance\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "5bfcc443-87ed-4993-b48e-87d73bdb11c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb b/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb index 6f99d45de6..398147a621 100644 --- a/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb +++ b/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# CCXT - Predict Bitcoin from Binance\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "6e974868-8cb1-4686-8f8d-13e7db17eba7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/CSV/CSV_Save_file.ipynb b/CSV/CSV_Save_file.ipynb deleted file mode 100644 index 79ea971b91..0000000000 --- a/CSV/CSV_Save_file.ipynb +++ /dev/null @@ -1,248 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "22adc193-61a4-47e5-8575-63eec1d6e77d", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "\"Naas\"" - ] - }, - { - "cell_type": "markdown", - "id": "elder-rugby", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "# CSV - Save file\n", - "

Template request | Bug report | Generate Data Product" - ] - }, - { - "cell_type": "markdown", - "id": "e0a5cdec-021b-4cea-b045-eb951ce554ec", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "**Tags:** #csv #pandas #save #opendata #johnshopkins #investors #snippet" - ] - }, - { - "cell_type": "markdown", - "id": "867b3701-c95c-4d03-af93-edfa9a0ac498", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" - ] - }, - { - "cell_type": "markdown", - "id": "naas-description", - "metadata": { - "papermill": {}, - "tags": [ - "description" - ] - }, - "source": [ - "**Description:** This notebook provides instructions on how to save a file in CSV format." - ] - }, - { - "cell_type": "markdown", - "id": "a4618223-4afc-4c27-9a2b-7f1067be498a", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "## Input" - ] - }, - { - "cell_type": "markdown", - "id": "25fde36a-fa80-4aad-b4da-c06038a7fb8d", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Import library" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "ae091609-882a-4242-a32f-7b355403969d", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "import pandas" - ] - }, - { - "cell_type": "markdown", - "id": "84a10f73-ea4a-4331-8f30-ee190f76797d", - "metadata": { - "execution": { - "iopub.execute_input": "2021-10-01T13:33:58.370014Z", - "iopub.status.busy": "2021-10-01T13:33:58.369743Z", - "iopub.status.idle": "2021-10-01T13:33:58.373285Z", - "shell.execute_reply": "2021-10-01T13:33:58.372507Z", - "shell.execute_reply.started": "2021-10-01T13:33:58.369948Z" - }, - "papermill": {}, - "tags": [] - }, - "source": [ - "### Variable" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "617d6182-dd9b-462e-ad64-26df5faf18ac", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# Input\n", - "csv_path = \"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv\"\n", - "\n", - "# Output\n", - "csv_output_path = \"data.csv\"" - ] - }, - { - "cell_type": "markdown", - "id": "5473470e-9f7a-4c49-be1f-e812859f4b23", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "## Model" - ] - }, - { - "cell_type": "markdown", - "id": "69ab62ff-1c59-4ed7-bc4a-f650b732b935", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Read the CSV from path" - ] - }, - { - "cell_type": "markdown", - "id": "790173fe-2b01-4a87-ba3a-d27031611d3c", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "You want to add more parameters ?
\n", - "👉 Check out the pandas documentation here." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "suited-adelaide", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "df = pandas.read_csv(csv_path)\n", - "df" - ] - }, - { - "cell_type": "markdown", - "id": "63370a04-6b92-462b-b663-2af89c32436e", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "## Output" - ] - }, - { - "cell_type": "markdown", - "id": "46f42343-1e53-4325-b708-bbbee1126a7a", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "You want to add more parameters ?
\n", - "👉 Check out the pandas documentation here." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "dynamic-radius", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "df.to_csv(csv_output_path)\n", - "print(f'💾 Excel '{csv_output_path}' successfully saved in Naas.')" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.6" - }, - "naas": { - "notebook_id": "eca872536f6468da2e40437dcddb02980432bbb5206dbfcb500aecf5bbe6764e", - "notebook_path": "CSV/CSV_Save_file.ipynb" - }, - "papermill": { - "default_parameters": {}, - "environment_variables": {}, - "parameters": {}, - "version": "2.3.3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/Canny/Canny_Create.ipynb b/Canny/Canny_Create.ipynb index f0552bcf01..a85613823f 100644 --- a/Canny/Canny_Create.ipynb +++ b/Canny/Canny_Create.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Canny - Create\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu)" ] }, + { + "cell_type": "markdown", + "id": "5d2449d7-f9ec-420c-9bb1-2a940d0d545f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-01-26)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Canny/Canny_Github_issue_update.ipynb b/Canny/Canny_Github_issue_update.ipynb index 713e6eae01..fc0bb2a92d 100644 --- a/Canny/Canny_Github_issue_update.ipynb +++ b/Canny/Canny_Github_issue_update.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Canny - Github issue update\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu)" ] }, + { + "cell_type": "markdown", + "id": "cf9b86f4-1511-4fad-b49e-698e46396658", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-01-26)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Canny/Canny_Read.ipynb b/Canny/Canny_Read.ipynb index 1478803e2a..9659ee96c0 100644 --- a/Canny/Canny_Read.ipynb +++ b/Canny/Canny_Read.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Canny - Read\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu)" ] }, + { + "cell_type": "markdown", + "id": "471b73b8-915b-49f5-afd7-2e3d0944fa25", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-01-26)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Celestrak/Celestrak_Satellites_over_time.ipynb b/Celestrak/Celestrak_Satellites_over_time.ipynb index 2aa9c9e635..7438ecbcef 100644 --- a/Celestrak/Celestrak_Satellites_over_time.ipynb +++ b/Celestrak/Celestrak_Satellites_over_time.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Celestrak - Satellites over time\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "**Author:** [Dumorya](https://github.com/Dumorya)" ] }, + { + "cell_type": "markdown", + "id": "2f78b816-05c1-4c57-90b2-d5f06d715db9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-06-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb b/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb index e8613750fc..7342bd22d4 100644 --- a/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb +++ b/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Cityfalcon - Get data from API\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "1547a56e-c372-4c8f-a1c1-5dc765310e1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-23)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Clockify/Clockify_Add_a_new_client.ipynb b/Clockify/Clockify_Add_a_new_client.ipynb index 751a8cca11..ddabf9571a 100644 --- a/Clockify/Clockify_Add_a_new_client.ipynb +++ b/Clockify/Clockify_Add_a_new_client.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Add a new client\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "8eb0ce39-0557-48e5-a38a-ac5e58842f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Add_a_new_project.ipynb b/Clockify/Clockify_Add_a_new_project.ipynb index 0541620fd5..2f2a7c708e 100644 --- a/Clockify/Clockify_Add_a_new_project.ipynb +++ b/Clockify/Clockify_Add_a_new_project.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Add a new project\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5a4f9bab-e489-4efe-aedd-16ea8a1cc07b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-17 (Created: 2023-05-17)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb b/Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb new file mode 100644 index 0000000000..615d87e8f9 --- /dev/null +++ b/Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb @@ -0,0 +1,527 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "13999d9a-2399-4aa6-8b9f-6f652dc86aa0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "e6027d4d-b5ed-4ccb-acdd-4e16d3dc1260", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Clockify - Create time entries database on a workspace\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "257024e1-32ec-4839-b454-65998b09aacb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #clockify #timeentry #database #workspace #user #create" + ] + }, + { + "cell_type": "markdown", + "id": "0e20bf2b-b066-4b09-b928-d33d3e825e84", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "951e313a-ad2f-442d-a210-baf752a6b6b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-26 (Created: 2023-07-26)" + ] + }, + { + "cell_type": "markdown", + "id": "c316565f-97c2-4ba8-b36b-d528839b6e01", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates a time entries database on a specific timeframe, adding client, project and task name. It is usefull for organizations to track time entries and optimize their workflow." + ] + }, + { + "cell_type": "markdown", + "id": "73a21c0f-e3c8-4a2d-a8ff-db3f374843d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Clockify API Documentation](https://docs.clockify.me/#tag/Time-entry/operation/getTimeEntries)" + ] + }, + { + "cell_type": "markdown", + "id": "36eb9c81-abdb-4740-b2b7-9e3cfc32ad3c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "3e1ec914-1999-4afe-9df5-ef1e0f639df7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d4a77a73-317d-43cd-a232-be9e2d564631", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd\n", + "from datetime import datetime" + ] + }, + { + "cell_type": "markdown", + "id": "f275809a-cf0b-4e5a-90a4-3f7c733f661a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your Clockify API key](https://clockify.me/user/settings) and set the variables below:\n", + "\n", + "- `api_key`: Clockify API Key\n", + "- `workspace_id`: ID of the workspace\n", + "- `user_id`: ID of the user to get time entries from\n", + "- `start_date`: Start date of the timeframe to create the time entries database\n", + "- `end_date`: End date of the timeframe to create the time entries database" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "25fef98d-9511-45fe-a688-bb7d96716bcd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"CLOCKIFY_API_KEY\") or \"YOUR_API_KEY\"\n", + "workspace_id = \"626f9e3b36c2670314c0386e\" #\"\"\n", + "start_date = \"2023-01-01\"\n", + "end_date = datetime.now().astimezone().isoformat()#.strftime(\"%Y-%m-%d\")" + ] + }, + { + "cell_type": "markdown", + "id": "9520d274-a372-437c-b706-eef533af6ef5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "64dbc113-f9db-4564-8296-7b9254b62383", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Function: Flatten the nested dict" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "87f40957-5e9d-40ac-bf0d-7a9c688d23d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Flatten the nested dict\n", + "def flatten_dict(d, parent_key='', sep='_'):\n", + " \"\"\"\n", + " Flattens a nested dictionary into a single level dictionary.\n", + "\n", + " Args:\n", + " d (dict): A nested dictionary.\n", + " parent_key (str): Optional string to prefix the keys with.\n", + " sep (str): Optional separator to use between parent_key and child_key.\n", + "\n", + " Returns:\n", + " dict: A flattened dictionary.\n", + " \"\"\"\n", + " items = []\n", + " for k, v in d.items():\n", + " new_key = f\"{parent_key}{sep}{k}\" if parent_key else k\n", + " if isinstance(v, dict):\n", + " items.extend(flatten_dict(v, new_key, sep=sep).items())\n", + " else:\n", + " items.append((new_key, v))\n", + " return dict(items)" + ] + }, + { + "cell_type": "markdown", + "id": "0ee83844-3835-4d22-93c5-a840b20b7250", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Function: Get referentials from workspace" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "2d181e8d-d167-4bc4-a04d-b7bbd96efe8b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(api_key, workspace_id, endpoint):\n", + " # Init\n", + " page = 1\n", + " df = pd.DataFrame()\n", + " \n", + " while True:\n", + " # Requests\n", + " url = f\"https://api.clockify.me/api/v1/workspaces/{workspace_id}/{endpoint}\"\n", + " headers = {\n", + " \"X-Api-Key\": api_key\n", + " }\n", + " params = {\n", + " \"page\": page,\n", + " \"page-size\": 100\n", + " }\n", + " res = requests.get(url, headers=headers, params=params)\n", + " data = res.json()\n", + " if len(data) > 0:\n", + " for d in data:\n", + " res = flatten_dict(d)\n", + " tmp_df = pd.DataFrame([res])\n", + " df = pd.concat([df, tmp_df])\n", + " else:\n", + " break\n", + " page += 1\n", + " return df.reset_index(drop=True)" + ] + }, + { + "cell_type": "markdown", + "id": "76b0f06f-1a10-4c4d-9255-98b63b4de6bf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all users" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "7f7c4e7a-0046-4dfe-b5f8-e9771ae3ad6a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_users = get_data(api_key, workspace_id, \"users\")\n", + "df_users = df_users.rename(columns={\"id\": \"userId\", \"name\": \"userName\"})\n", + "df_users = df_users[[\"userId\", \"userName\", \"email\"]]\n", + "print(\"Users fetched:\", len(df_users))\n", + "df_users.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "73314dab-6a39-43ff-8ce6-d294675f0f43", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get time entries" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "8c6c4f77-88a1-4a3d-ab1a-9ff81934ee75", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_time_entries(\n", + " api_key,\n", + " workspace_id,\n", + " user_id,\n", + " start_date,\n", + " end_date\n", + "):\n", + " # Init\n", + " start_date = datetime.strptime(start_date, \"%Y-%m-%d\").astimezone().isoformat() # Format date\n", + " page = 1\n", + " df = pd.DataFrame()\n", + " \n", + " # Get raw data\n", + " while True:\n", + " url = f\"https://api.clockify.me/api/v1/workspaces/{workspace_id}/user/{user_id}/time-entries\"\n", + " headers = {\"X-Api-Key\": api_key}\n", + " params = {\n", + " \"start\": start_date,\n", + " \"end\": end_date,\n", + " \"page\": page,\n", + " \"page-size\": 100\n", + " }\n", + " res = requests.get(url, headers=headers, params=params)\n", + " data = res.json()\n", + " if len(data) > 0:\n", + " for d in data:\n", + " res = flatten_dict(d)\n", + " tmp_df = pd.DataFrame([res])\n", + " df = pd.concat([df, tmp_df]).reset_index(drop=True)\n", + " else:\n", + " break\n", + " page += 1\n", + " return df.reset_index(drop=True)\n", + "\n", + "# Init\n", + "database = pd.DataFrame()\n", + "\n", + "# Loop\n", + "for row in df_users.itertuples():\n", + " user_id = row.userId\n", + " user_name = row.userName\n", + " user_email = row.email\n", + " \n", + " # Get entries\n", + " df_time_entries = get_time_entries(api_key, workspace_id, user_id, start_date, end_date)\n", + "\n", + " # Concat\n", + " database = pd.concat([database, df_time_entries]).reset_index(drop=True)\n", + " \n", + "print(\"Time entries fetched:\", len(database))\n", + "database.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "aad582ab-a11b-4c60-b82b-95264cbe598a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all projects" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "1e40b2db-8e4a-4fc5-829a-9bd8e7816d83", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_projects = get_data(api_key, workspace_id, \"projects\")\n", + "df_projects = df_projects.rename(columns={\"id\": \"projectId\", \"name\": \"projectName\"})\n", + "df_projects = df_projects[[\"projectId\", \"projectName\", \"clientId\"]]\n", + "print(\"Projects fetched:\", len(df_projects))\n", + "df_projects.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "3d436d11-eab5-40d3-8899-57acf27312dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all clients" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "fd31b887-3258-40d7-aa3a-19b4cb3d66be", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_clients = get_data(api_key, workspace_id, \"clients\")\n", + "df_clients = df_clients.rename(columns={\"id\": \"clientId\", \"name\": \"clientName\"})\n", + "df_clients = df_clients[[\"clientId\", \"clientName\"]]\n", + "print(\"Clients fetched:\", len(df_clients))\n", + "df_clients.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "4a694a0b-4917-489f-b4f1-09f8db79ead3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "cfefada0-880a-4187-9008-293996ef6df0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create final database\n", + "Enrich data with referentials from workspace" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "b8b0e8dd-d621-4201-9c21-d248f5c03362", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "final_db = database.copy()\n", + "\n", + "# Final DB\n", + "final_db = pd.merge(final_db, df_users, how=\"left\", on=\"userId\")\n", + "final_db = pd.merge(final_db, df_projects, how=\"left\", on=\"projectId\")\n", + "final_db = pd.merge(final_db, df_clients, how=\"left\", on=\"clientId\")\n", + "\n", + "# Select column\n", + "to_select = [\n", + " \"id\",\n", + " \"description\",\n", + " \"isLocked\",\n", + " \"timeInterval_start\",\n", + " \"timeInterval_end\",\n", + " \"timeInterval_duration\",\n", + " \"userId\",\n", + " \"userName\",\n", + " \"email\",\n", + " \"projectId\",\n", + " \"projectName\",\n", + " \"clientId\",\n", + " \"clientName\",\n", + "]\n", + "final_db = final_db[to_select]\n", + "print(\"Time entries fetched:\", len(final_db))\n", + "final_db.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e21bbf-d9c4-4dfc-931d-1a8941720f8f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "77854836bd7b25aefc0458b51b50db3432c4fffbeb389be924bb4df7ef2ecd0f", + "notebook_path": "Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Clockify/Clockify_Delete_client.ipynb b/Clockify/Clockify_Delete_client.ipynb index 6353bfea6b..26b0a13cbe 100644 --- a/Clockify/Clockify_Delete_client.ipynb +++ b/Clockify/Clockify_Delete_client.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Delete client\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "64c92b8b-baeb-46a6-8c0b-5d8852b3f9ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Delete_project.ipynb b/Clockify/Clockify_Delete_project.ipynb index 804a23ffe1..93b5367928 100644 --- a/Clockify/Clockify_Delete_project.ipynb +++ b/Clockify/Clockify_Delete_project.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Delete project\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bf022038-4835-4c63-968e-90e393ca2ad1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-17 (Created: 2023-05-17)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Find_all_users_on_workspace.ipynb b/Clockify/Clockify_Find_all_users_on_workspace.ipynb index 7f41f64b2f..bdd7800d60 100644 --- a/Clockify/Clockify_Find_all_users_on_workspace.ipynb +++ b/Clockify/Clockify_Find_all_users_on_workspace.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Find all users on workspace\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "10cffdcd-503c-450e-a332-f24311202bcc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "43c7a52a-6f0f-486f-9533-c3508df123e2", diff --git a/Clockify/Clockify_Find_clients_on_workspace.ipynb b/Clockify/Clockify_Find_clients_on_workspace.ipynb index e1a4c69483..e853eb05d1 100644 --- a/Clockify/Clockify_Find_clients_on_workspace.ipynb +++ b/Clockify/Clockify_Find_clients_on_workspace.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Find clients on workspace\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "04f75d2f-0385-47d0-9f77-65145b43c2a6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "bfebcc8c-6d4b-4901-b6bd-33a280590d5c", diff --git a/Clockify/Clockify_Find_tasks_on_project.ipynb b/Clockify/Clockify_Find_tasks_on_project.ipynb index c2621e1f5e..8fb8898f4a 100644 --- a/Clockify/Clockify_Find_tasks_on_project.ipynb +++ b/Clockify/Clockify_Find_tasks_on_project.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Find tasks on project\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "eac187b6-05db-4b03-9d1c-6718ff70a727", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "7bfe7e72-8fc9-4ed3-aec3-18130901ae14", diff --git a/Clockify/Clockify_Get_all_my_workspaces.ipynb b/Clockify/Clockify_Get_all_my_workspaces.ipynb index b2299ed720..ce9d3cc937 100644 --- a/Clockify/Clockify_Get_all_my_workspaces.ipynb +++ b/Clockify/Clockify_Get_all_my_workspaces.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Get all my workspaces\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "c91be48e-1f0f-4aed-8d47-61fd5a0f1a29", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-05)" + ] + }, { "cell_type": "markdown", "id": "1c6e9983-cdf2-400c-9225-fa307a500d7e", diff --git a/Clockify/Clockify_Get_all_projects_on_workspace.ipynb b/Clockify/Clockify_Get_all_projects_on_workspace.ipynb index f1bd2f3265..9dffbb938b 100644 --- a/Clockify/Clockify_Get_all_projects_on_workspace.ipynb +++ b/Clockify/Clockify_Get_all_projects_on_workspace.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Get all projects on workspace\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "174211d8-ed93-4616-b330-bfbbeb3db094", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-17 (Created: 2023-04-05)" + ] + }, { "cell_type": "markdown", "id": "6178e577-7796-436b-9b86-8761484a421c", diff --git a/Clockify/Clockify_Get_client_by_ID.ipynb b/Clockify/Clockify_Get_client_by_ID.ipynb index 302fa56af8..e97ba43041 100644 --- a/Clockify/Clockify_Get_client_by_ID.ipynb +++ b/Clockify/Clockify_Get_client_by_ID.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Get client by ID\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6e1f1bb5-5750-471f-839e-bab6879f241a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Get_project_by_ID.ipynb b/Clockify/Clockify_Get_project_by_ID.ipynb index bc93b48fd8..caa86cf35b 100644 --- a/Clockify/Clockify_Get_project_by_ID.ipynb +++ b/Clockify/Clockify_Get_project_by_ID.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Get project by ID\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7d9e39df-317b-4756-a221-ba0e49d7c586", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-17 (Created: 2023-05-17)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb b/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb index 329b044dfd..c5b6d7ece6 100644 --- a/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb +++ b/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Get time entries for a user on workspace\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e728a801-a19f-4405-8a93-166da3360f1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "35415d7d-c533-4665-b0bd-d0fa72f7b876", diff --git a/Clockify/Clockify_Remove_user_from_workspace.ipynb b/Clockify/Clockify_Remove_user_from_workspace.ipynb index 6d4cd0a2b7..e68460a175 100644 --- a/Clockify/Clockify_Remove_user_from_workspace.ipynb +++ b/Clockify/Clockify_Remove_user_from_workspace.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Remove user from workspace\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "64e52cd1-931c-4f89-a191-a11226488217", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-04-05)" + ] + }, { "cell_type": "markdown", "id": "095c1a79-88e6-4689-bb9f-2b80bf5e6ab1", diff --git a/Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb b/Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb new file mode 100644 index 0000000000..ddc5624666 --- /dev/null +++ b/Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb @@ -0,0 +1,589 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "13999d9a-2399-4aa6-8b9f-6f652dc86aa0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "e6027d4d-b5ed-4ccb-acdd-4e16d3dc1260", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Clockify - Send time entries database to a Google Sheets spreadsheet\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "257024e1-32ec-4839-b454-65998b09aacb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #clockify #timeentry #database #workspace #user #task #project #gsheet #automation " + ] + }, + { + "cell_type": "markdown", + "id": "0e20bf2b-b066-4b09-b928-d33d3e825e84", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "e085bfa1-0d58-4d2d-81a9-95954ca1d40c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "c316565f-97c2-4ba8-b36b-d528839b6e01", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will send the time entries database from Clockify to a Google Sheets spreadsheet. This is usefull for organizations to keep track of their time entries and analyze them." + ] + }, + { + "cell_type": "markdown", + "id": "73a21c0f-e3c8-4a2d-a8ff-db3f374843d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Clockify API Documentation](https://docs.clockify.me/#tag/Time-entry/operation/getTimeEntries)" + ] + }, + { + "cell_type": "markdown", + "id": "36eb9c81-abdb-4740-b2b7-9e3cfc32ad3c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "3e1ec914-1999-4afe-9df5-ef1e0f639df7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4a77a73-317d-43cd-a232-be9e2d564631", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd\n", + "from datetime import datetime\n", + "from naas_drivers import gsheet" + ] + }, + { + "cell_type": "markdown", + "id": "f275809a-cf0b-4e5a-90a4-3f7c733f661a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your Clockify API key](https://clockify.me/user/settings) and set the variables below:\n", + "\n", + "- `api_key`: Clockify API Key\n", + "- `workspace_id`: ID of the workspace\n", + "- `user_id`: ID of the user to get time entries from\n", + "- `start_date`: Start date of the timeframe to create the time entries database\n", + "- `end_date`: End date of the timeframe to create the time entries database\n", + "\n", + "Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com and set the variables below:\n", + "\n", + "- `spreadsheet_url`: Google Sheets spreadsheet URL\n", + "- `sheet_name`: Google Sheets sheet name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25fef98d-9511-45fe-a688-bb7d96716bcd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"CLOCKIFY_API_KEY\") or \"YOUR_API_KEY\"\n", + "workspace_id = \"626f9e3b36c2670314c0386e\" #\"\"\n", + "start_date = \"2023-01-01\"\n", + "end_date = datetime.now().astimezone().isoformat()#.strftime(\"%Y-%m-%d\")\n", + "cron = \"15 * * * *\"\n", + "spreadsheet_url = \"\"\n", + "sheet_name = \"\"" + ] + }, + { + "cell_type": "markdown", + "id": "9520d274-a372-437c-b706-eef533af6ef5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "64dbc113-f9db-4564-8296-7b9254b62383", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Function: Flatten the nested dict" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87f40957-5e9d-40ac-bf0d-7a9c688d23d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Flatten the nested dict\n", + "def flatten_dict(d, parent_key='', sep='_'):\n", + " \"\"\"\n", + " Flattens a nested dictionary into a single level dictionary.\n", + "\n", + " Args:\n", + " d (dict): A nested dictionary.\n", + " parent_key (str): Optional string to prefix the keys with.\n", + " sep (str): Optional separator to use between parent_key and child_key.\n", + "\n", + " Returns:\n", + " dict: A flattened dictionary.\n", + " \"\"\"\n", + " items = []\n", + " for k, v in d.items():\n", + " new_key = f\"{parent_key}{sep}{k}\" if parent_key else k\n", + " if isinstance(v, dict):\n", + " items.extend(flatten_dict(v, new_key, sep=sep).items())\n", + " else:\n", + " items.append((new_key, v))\n", + " return dict(items)" + ] + }, + { + "cell_type": "markdown", + "id": "0ee83844-3835-4d22-93c5-a840b20b7250", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Function: Get referentials from workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d181e8d-d167-4bc4-a04d-b7bbd96efe8b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(api_key, workspace_id, endpoint):\n", + " # Init\n", + " page = 1\n", + " df = pd.DataFrame()\n", + " \n", + " while True:\n", + " # Requests\n", + " url = f\"https://api.clockify.me/api/v1/workspaces/{workspace_id}/{endpoint}\"\n", + " headers = {\n", + " \"X-Api-Key\": api_key\n", + " }\n", + " params = {\n", + " \"page\": page,\n", + " \"page-size\": 100\n", + " }\n", + " res = requests.get(url, headers=headers, params=params)\n", + " data = res.json()\n", + " if len(data) > 0:\n", + " for d in data:\n", + " res = flatten_dict(d)\n", + " tmp_df = pd.DataFrame([res])\n", + " df = pd.concat([df, tmp_df])\n", + " else:\n", + " break\n", + " page += 1\n", + " return df.reset_index(drop=True)" + ] + }, + { + "cell_type": "markdown", + "id": "76b0f06f-1a10-4c4d-9255-98b63b4de6bf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all users" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7f7c4e7a-0046-4dfe-b5f8-e9771ae3ad6a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_users = get_data(api_key, workspace_id, \"users\")\n", + "df_users = df_users.rename(columns={\"id\": \"userId\", \"name\": \"userName\"})\n", + "df_users = df_users[[\"userId\", \"userName\", \"email\"]]\n", + "print(\"Users fetched:\", len(df_users))\n", + "df_users.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "73314dab-6a39-43ff-8ce6-d294675f0f43", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get time entries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c6c4f77-88a1-4a3d-ab1a-9ff81934ee75", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_time_entries(\n", + " api_key,\n", + " workspace_id,\n", + " user_id,\n", + " start_date,\n", + " end_date\n", + "):\n", + " # Init\n", + " start_date = datetime.strptime(start_date, \"%Y-%m-%d\").astimezone().isoformat() # Format date\n", + " page = 1\n", + " df = pd.DataFrame()\n", + " \n", + " # Get raw data\n", + " while True:\n", + " url = f\"https://api.clockify.me/api/v1/workspaces/{workspace_id}/user/{user_id}/time-entries\"\n", + " headers = {\"X-Api-Key\": api_key}\n", + " params = {\n", + " \"start\": start_date,\n", + " \"end\": end_date,\n", + " \"page\": page,\n", + " \"page-size\": 100\n", + " }\n", + " res = requests.get(url, headers=headers, params=params)\n", + " data = res.json()\n", + " if len(data) > 0:\n", + " for d in data:\n", + " res = flatten_dict(d)\n", + " tmp_df = pd.DataFrame([res])\n", + " df = pd.concat([df, tmp_df]).reset_index(drop=True)\n", + " else:\n", + " break\n", + " page += 1\n", + " return df.reset_index(drop=True)\n", + "\n", + "# Init\n", + "database = pd.DataFrame()\n", + "\n", + "# Loop\n", + "for row in df_users.itertuples():\n", + " user_id = row.userId\n", + " user_name = row.userName\n", + " user_email = row.email\n", + " \n", + " # Get entries\n", + " df_time_entries = get_time_entries(api_key, workspace_id, user_id, start_date, end_date)\n", + "\n", + " # Concat\n", + " database = pd.concat([database, df_time_entries]).reset_index(drop=True)\n", + " \n", + "print(\"Time entries fetched:\", len(database))\n", + "database.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "aad582ab-a11b-4c60-b82b-95264cbe598a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all projects" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e40b2db-8e4a-4fc5-829a-9bd8e7816d83", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_projects = get_data(api_key, workspace_id, \"projects\")\n", + "df_projects = df_projects.rename(columns={\"id\": \"projectId\", \"name\": \"projectName\"})\n", + "df_projects = df_projects[[\"projectId\", \"projectName\", \"clientId\"]]\n", + "print(\"Projects fetched:\", len(df_projects))\n", + "df_projects.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "3d436d11-eab5-40d3-8899-57acf27312dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all clients" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fd31b887-3258-40d7-aa3a-19b4cb3d66be", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_clients = get_data(api_key, workspace_id, \"clients\")\n", + "df_clients = df_clients.rename(columns={\"id\": \"clientId\", \"name\": \"clientName\"})\n", + "df_clients = df_clients[[\"clientId\", \"clientName\"]]\n", + "print(\"Clients fetched:\", len(df_clients))\n", + "df_clients.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "cfefada0-880a-4187-9008-293996ef6df0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create final database\n", + "Enrich data with referentials from workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8b0e8dd-d621-4201-9c21-d248f5c03362", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "final_db = database.copy()\n", + "\n", + "# Final DB\n", + "final_db = pd.merge(final_db, df_users, how=\"left\", on=\"userId\")\n", + "final_db = pd.merge(final_db, df_projects, how=\"left\", on=\"projectId\")\n", + "final_db = pd.merge(final_db, df_clients, how=\"left\", on=\"clientId\")\n", + "\n", + "# Select column\n", + "to_select = [\n", + " \"id\",\n", + " \"description\",\n", + " \"isLocked\",\n", + " \"timeInterval_start\",\n", + " \"timeInterval_end\",\n", + " \"timeInterval_duration\",\n", + " \"userId\",\n", + " \"userName\",\n", + " \"email\",\n", + " \"projectId\",\n", + " \"projectName\",\n", + " \"clientId\",\n", + " \"clientName\",\n", + "]\n", + "final_db = final_db[to_select]\n", + "final_db[\"Month\"] = pd.to_datetime(final_db[\"timeInterval_end\"]).dt.strftime(\"%Y-%m\")\n", + "final_db[\"timeduration_Hours\"] = round((pd.to_datetime(final_db[\"timeInterval_end\"]) - pd.to_datetime(final_db[\"timeInterval_start\"])).dt.total_seconds() / 3600, 2)\n", + "final_db[\"Date Extract\"] = datetime.now().strftime(\"%Y%m%d%H%M%S\")\n", + "print(\"Time entries fetched:\", len(final_db))\n", + "final_db.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "4a694a0b-4917-489f-b4f1-09f8db79ead3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "0c8d8f9a-914e-4b15-987f-145a53fee316", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send dataframe to Google Sheets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce64e717-b876-46da-92a7-e4ecc43b0846", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "gsheet.connect(spreadsheet_url).send(sheet_name=sheet_name, data=final_db, append=False)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e21bbf-d9c4-4dfc-931d-1a8941720f8f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "6405749d-59bd-4102-beaa-c25e7c937ee7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Add scheduler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a9e47f8d-d137-46ef-af28-c4b9d4bb2035", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)\n", + "\n", + "# naas.scheduler.delete()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e9dd7f3721289c5cacbb673f835f8704f69b9c284464098a10e7a324a52b8a32", + "notebook_path": "Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Clockify/Clockify_Update_client.ipynb b/Clockify/Clockify_Update_client.ipynb index 6d9ab4aa3b..8bd05ce2bc 100644 --- a/Clockify/Clockify_Update_client.ipynb +++ b/Clockify/Clockify_Update_client.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Update client\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7254f9a0-2684-4f77-b644-a293ac837d5f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-16 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Clockify/Clockify_Update_project.ipynb b/Clockify/Clockify_Update_project.ipynb index 18c994442c..49054443d1 100644 --- a/Clockify/Clockify_Update_project.ipynb +++ b/Clockify/Clockify_Update_project.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Clockify - Update project\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b437f456-ccd7-47cc-91cc-c3ad6ef2f5d9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-17 (Created: 2023-05-17)" + ] + }, { "cell_type": "markdown", "id": "3422944e-43e0-437a-bacb-75f5a4c06962", diff --git a/Cloud Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb b/Cloud Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb index 424a1469ac..1e4ad03671 100644 --- a/Cloud Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb +++ b/Cloud Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Cloud Mercato - Compare VM pricing\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Anthony Monthe](https://www.linkedin.com/in/anthonymonthe/)" ] }, + { + "cell_type": "markdown", + "id": "da9fba7c-e8a9-4da2-836b-cf306a318481", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb b/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb index 90d6a3c437..b94cb3dd00 100644 --- a/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb +++ b/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Creditsafe - Get Company Credit Report\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "43f9e3fb-42f5-43ea-a629-d8790bd7cb9b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-08)" + ] + }, { "cell_type": "markdown", "id": "25807f1b-aec9-461c-82f8-5bfb4394481a", diff --git a/D-Tale/D-Tale_Visualize_dataframe.ipynb b/D-Tale/D-Tale_Visualize_dataframe.ipynb index ee09dfecc8..4b66c9bf27 100644 --- a/D-Tale/D-Tale_Visualize_dataframe.ipynb +++ b/D-Tale/D-Tale_Visualize_dataframe.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# D-Tale - Visualize dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "ddd67a92-553a-41ae-b906-1b7d0e419f6e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Dash/Dash_Add_a_customisable_sidebar.ipynb b/Dash/Dash_Add_a_customisable_sidebar.ipynb index ac23041175..f1b7858f86 100644 --- a/Dash/Dash_Add_a_customisable_sidebar.ipynb +++ b/Dash/Dash_Add_a_customisable_sidebar.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Add a customisable sidebar\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f976df12-efc9-4268-a251-a7f8c3185fd2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-05 (Created: 2023-06-05)" + ] + }, { "cell_type": "markdown", "id": "a04f45ce-c6b5-4ddd-9c95-9d9b359ba6e8", diff --git a/Dash/Dash_Create_Datatable_With_Dropdown.ipynb b/Dash/Dash_Create_Datatable_With_Dropdown.ipynb index 5b3e1c6672..5138b14f94 100644 --- a/Dash/Dash_Create_Datatable_With_Dropdown.ipynb +++ b/Dash/Dash_Create_Datatable_With_Dropdown.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Datatable With Dropdown\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Ismail Chihab](https://www.linkedin.com/in/ismail-chihab-4b0a04202/)" ] }, + { + "cell_type": "markdown", + "id": "41e7c4a7-4f10-4c05-97ee-ad9ebc4c52ae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-26)" + ] + }, { "cell_type": "markdown", "id": "96f20bb5-d815-4a57-aca7-9397b8677b3e", diff --git a/Dash/Dash_Create_Dropdown_Callback.ipynb b/Dash/Dash_Create_Dropdown_Callback.ipynb index 88f97d9690..54574fd6d4 100644 --- a/Dash/Dash_Create_Dropdown_Callback.ipynb +++ b/Dash/Dash_Create_Dropdown_Callback.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Dropdown Callback\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "43d0d24d-b07e-4c04-b3ed-37a5e85e7595", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-18)" + ] + }, { "cell_type": "markdown", "id": "96f20bb5-d815-4a57-aca7-9397b8677b3e", diff --git a/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb b/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb index b210604a58..99c65191fb 100644 --- a/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb +++ b/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Dropdown with multiples output callbacks\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2ecc08dc-9e57-452f-9f13-ed93d715f17f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-18)" + ] + }, { "cell_type": "markdown", "id": "96f20bb5-d815-4a57-aca7-9397b8677b3e", diff --git a/Dash/Dash_Create_Interactive_Plot.ipynb b/Dash/Dash_Create_Interactive_Plot.ipynb index cdfc2af023..721e4c1bdd 100644 --- a/Dash/Dash_Create_Interactive_Plot.ipynb +++ b/Dash/Dash_Create_Interactive_Plot.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Interactive Plot\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" ] }, + { + "cell_type": "markdown", + "id": "3bc16228-9a16-4f89-80a9-196f3af09aaf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2023-05-25)" + ] + }, { "cell_type": "markdown", "id": "96f20bb5-d815-4a57-aca7-9397b8677b3e", diff --git a/Dash/Dash_Create_Navbar.ipynb b/Dash/Dash_Create_Navbar.ipynb index fca3ea4ef8..4b7affa8d1 100644 --- a/Dash/Dash_Create_Navbar.ipynb +++ b/Dash/Dash_Create_Navbar.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Navbar\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "054f0284-5930-47f7-80f3-d184e4ea8626", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-17)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Dash/Dash_Create_Navbar_Dashboard.ipynb b/Dash/Dash_Create_Navbar_Dashboard.ipynb index 38a79c5194..252ae5ac29 100644 --- a/Dash/Dash_Create_Navbar_Dashboard.ipynb +++ b/Dash/Dash_Create_Navbar_Dashboard.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Navbar board\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ffc4684c-49ca-49cc-8780-94a3bfc31801", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Dash/Dash_Create_Navbar_Search.ipynb b/Dash/Dash_Create_Navbar_Search.ipynb index 6b536a2348..42c5b6dce1 100644 --- a/Dash/Dash_Create_Navbar_Search.ipynb +++ b/Dash/Dash_Create_Navbar_Search.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Create Navbar Search\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "86b1814e-3a8f-4fd4-a0bf-2a73c8d51b84", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-15)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Dash/Dash_Create_button_to_refresh_page.ipynb b/Dash/Dash_Create_button_to_refresh_page.ipynb index a93118bbc0..f189060d63 100644 --- a/Dash/Dash_Create_button_to_refresh_page.ipynb +++ b/Dash/Dash_Create_button_to_refresh_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Create button to refresh page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6e852463-72a3-4e1a-9c5c-3d95f8f54408", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-02 (Created: 2023-06-02)" + ] + }, { "cell_type": "markdown", "id": "3bf44485-252d-441d-a375-9e3ace239f54", diff --git a/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb b/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb index 09a4354d86..2d8b2e272c 100644 --- a/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb +++ b/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Create conditional formatting on HTML element\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "fa9be693-d180-48d1-a874-9400cc864786", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "38e670f1-a5f4-4a0f-832a-9271b0157139", diff --git a/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb b/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb index c3ad71dfaa..a0f9ce9bdf 100644 --- a/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb +++ b/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Create conditional formatting on number value\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a67a271b-d46a-48ff-8168-8b346d237f08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "38e670f1-a5f4-4a0f-832a-9271b0157139", diff --git a/Dash/Dash_Create_download_button.ipynb b/Dash/Dash_Create_download_button.ipynb index 232a672e77..fba3bc2a92 100644 --- a/Dash/Dash_Create_download_button.ipynb +++ b/Dash/Dash_Create_download_button.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Create download button\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1e443670-5548-4c0b-95ea-f2c94c2d9566", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "723fcf1e-8654-4d87-b54d-70c5c8fc3ea2", diff --git a/Dash/Dash_Create_loading_button.ipynb b/Dash/Dash_Create_loading_button.ipynb index 36ea39d450..d66db97f1b 100644 --- a/Dash/Dash_Create_loading_button.ipynb +++ b/Dash/Dash_Create_loading_button.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Create loading button\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c5132355-3b80-4904-9d40-0bbe51998538", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-02 (Created: 2023-06-02)" + ] + }, { "cell_type": "markdown", "id": "1c6d4082-6a4f-4427-8bee-400d441ed906", diff --git a/Dash/Dash_Create_spinner_button.ipynb b/Dash/Dash_Create_spinner_button.ipynb index b08f2dfc2d..72dfc30c65 100644 --- a/Dash/Dash_Create_spinner_button.ipynb +++ b/Dash/Dash_Create_spinner_button.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Create spinner button\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "12e830f0-b8e0-4f79-b87f-2c4840a23ee0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "723fcf1e-8654-4d87-b54d-70c5c8fc3ea2", diff --git a/Dash/Dash_Deploy_app_in_Naas.ipynb b/Dash/Dash_Deploy_app_in_Naas.ipynb index 78a9fc4b1d..dffb8b85a3 100644 --- a/Dash/Dash_Deploy_app_in_Naas.ipynb +++ b/Dash/Dash_Deploy_app_in_Naas.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Deploy app in Naas\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "84584eb5-2a49-4ce2-88f6-3c20cbedab74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -156,7 +167,8 @@ "tags": [] }, "source": [ - "### Initialize Dash app" + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." ] }, { diff --git a/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb b/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb index d00f8aa637..9342900e28 100644 --- a/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb +++ b/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - LinkedIn posts metrics dashboard\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2a3f112e-fbcb-4ccb-bf20-8f9f8a20d7cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Dash/Dash_Plotly_Dynamic_Link.ipynb b/Dash/Dash_Plotly_Dynamic_Link.ipynb index b6dc8bef3d..063d86f77c 100644 --- a/Dash/Dash_Plotly_Dynamic_Link.ipynb +++ b/Dash/Dash_Plotly_Dynamic_Link.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Dash - Plotly Dynamic Link\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Oguz Akif Tufekcioglu](https://www.linkedin.com/in/oguzakiftufekcioglu/)" ] }, + { + "cell_type": "markdown", + "id": "8debc332-2ac8-4d1d-a5c3-1d1fb3407c34", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb b/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb index f425191449..c3b17d7997 100644 --- a/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb +++ b/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dash - Upload mutiples CSV Excel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c3db3bad-404c-481b-ade6-eb45f293da1f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb b/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb index a411e7e103..6aaa0d9d18 100644 --- a/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb +++ b/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Dask - Parallelize operations on multiple csvs\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "39bcd3fa-3ed0-498e-81de-628f48aad67c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-13)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git "a/Data.gouv.fr/COVID19 - FR - Entr\303\251es et sorties par r\303\251gion pour 1 million d'hab..ipynb" "b/Data.gouv.fr/COVID19 - FR - Entr\303\251es et sorties par r\303\251gion pour 1 million d'hab..ipynb" index 239f64c7b6..2964afe319 100644 --- "a/Data.gouv.fr/COVID19 - FR - Entr\303\251es et sorties par r\303\251gion pour 1 million d'hab..ipynb" +++ "b/Data.gouv.fr/COVID19 - FR - Entr\303\251es et sorties par r\303\251gion pour 1 million d'hab..ipynb" @@ -22,7 +22,7 @@ }, "source": [ "# Data.gouv.fr - COVID19 - FR - Entrées et sorties par région pour 1 million d'hab.\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "7bc93268-c311-4689-8ecb-d199819b7ef4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git "a/Data.gouv.fr/Data.gouv.fr_R\303\251cup\303\251ration_donn\303\251es_l\303\251gales_entreprise.ipynb" "b/Data.gouv.fr/Data.gouv.fr_R\303\251cup\303\251ration_donn\303\251es_l\303\251gales_entreprise.ipynb" index 04c9cee4cb..38eeea03da 100644 --- "a/Data.gouv.fr/Data.gouv.fr_R\303\251cup\303\251ration_donn\303\251es_l\303\251gales_entreprise.ipynb" +++ "b/Data.gouv.fr/Data.gouv.fr_R\303\251cup\303\251ration_donn\303\251es_l\303\251gales_entreprise.ipynb" @@ -20,7 +20,7 @@ }, "source": [ "# Data.gouv.fr - Récupération données légales entreprise\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e20a65d1-22b7-47cf-a597-275308c2d2c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb b/Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb similarity index 81% rename from Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb rename to Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb index 7dc1c73ceb..8bf6fbda32 100644 --- a/Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb +++ b/Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# Python - Calculate relative time delta between two dates\n", - "

Template request | Bug report | Generate Data Product" + "# Datetime - Calculate relative time delta between two dates\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #datetime #relativedelta #calculate #date #time #dateutil" + "**Tags:** #datetime #datetime #relativedelta #calculate #date #time #dateutil" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d6eedc0a-8449-4b14-8e86-561e47f42996", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-05-22)" + ] + }, { "cell_type": "markdown", "id": "2e8b31cf-ccc0-4390-86cc-7a43e8afdbc5", @@ -244,8 +255,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "6abd8f37687cff0c3d7f985474fbc88aed362bc588a2f82ad4a77b5488ccfb32", - "notebook_path": "Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb" + "notebook_id": "14ddb09c734bc7d6e5f8c0adfd7ac2d7c8f2002d6e506149cf3e833c788c9ce9", + "notebook_path": "Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/Python/Python_Calculate_time_delta_between_two_dates.ipynb b/Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb similarity index 82% rename from Python/Python_Calculate_time_delta_between_two_dates.ipynb rename to Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb index 480313b678..261051adc4 100644 --- a/Python/Python_Calculate_time_delta_between_two_dates.ipynb +++ b/Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# Python - Calculate time delta between two dates\n", - "

Template request | Bug report | Generate Data Product" + "# Datetime - Calculate time delta between two dates\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #datetime #timedelta #calculate #date #time " + "**Tags:** #datetime #timedelta #calculate #date #time " ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "70c1d596-77e7-4671-8d05-6e5304d269ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-05-22)" + ] + }, { "cell_type": "markdown", "id": "2e8b31cf-ccc0-4390-86cc-7a43e8afdbc5", @@ -243,8 +254,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "3e9d2c55229b2a7b7f787f226854d421c8381f80dc8f3e272b04a5fd459515a3", - "notebook_path": "Python/Python_Calculate_time_delta_between_two_dates.ipynb" + "notebook_id": "f7399e612e827014cbd261e6dfd655c72c29ebdcaa7f136699463a2cb8d5ae82", + "notebook_path": "Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/Python/Python_Using_datetime_library.ipynb b/Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb similarity index 62% rename from Python/Python_Using_datetime_library.ipynb rename to Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb index ac78c7d1b9..126de3363d 100644 --- a/Python/Python_Using_datetime_library.ipynb +++ b/Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb @@ -21,8 +21,8 @@ "tags": [] }, "source": [ - "# Python - Using datetime library\n", - "

Template request | Bug report | Generate Data Product" + "# Datetime - Convert datetime object to a formatted date string\n", + "

Give Feedback | Bug report" ] }, { @@ -33,7 +33,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #datetime #snippet #operations" + "**Tags:** #datetime #snippet #operations #python " ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "07da9d46-7a6d-4bfb-a34a-f9bbad8680ac", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-07-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -60,6 +71,18 @@ "**Description:** This notebook provides an introduction to using the Python datetime library to work with dates and times." ] }, + { + "cell_type": "markdown", + "id": "1e8fe9ea-46f9-4496-8e50-0f76e52697d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python datetime library](https://docs.python.org/3/library/datetime.html)" + ] + }, { "cell_type": "markdown", "id": "d6ed8917", @@ -79,12 +102,12 @@ "tags": [] }, "source": [ - "### Import library" + "### Import libraries" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "aefef37f", "metadata": { "papermill": {}, @@ -97,19 +120,21 @@ }, { "cell_type": "markdown", - "id": "b7c1ad2b-ff24-43b9-b2fb-9a28b806e214", + "id": "4f76aee4-8fa6-47f1-a8fd-5c4cc29f9742", "metadata": { "papermill": {}, "tags": [] }, "source": [ "### Setup Variables\n", - "- To parse your date format : you can use the [d3 time format documentation](https://github.com/d3/d3-time-format)" + "To parse your date format : you can use the [d3 time format documentation](https://github.com/d3/d3-time-format)\n", + "- `datetime_obj`: Datetime object\n", + "- `string_date_format`: String date format" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "c25fdd9d-8517-4488-a88d-fc51a8d2e4f8", "metadata": { "papermill": {}, @@ -117,14 +142,11 @@ }, "outputs": [], "source": [ - "# Date string format\n", - "date_string = \"2022-02-25\"\n", - "\n", - "# Your date string format\n", - "current_format = \"%Y-%m-%d\"\n", + "# Datetime object\n", + "datetime_obj = datetime(2020, 8, 1)\n", "\n", "# New date format you want to use\n", - "new_format = \"%Y-W%U\"" + "string_date_format = \"%Y-W%U\"" ] }, { @@ -138,31 +160,6 @@ "## Model" ] }, - { - "cell_type": "markdown", - "id": "07164b8b", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Convert a string date to a datetime object" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "29972637", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "date_datetime = datetime.strptime(date_string, current_format)\n", - "date_datetime" - ] - }, { "cell_type": "markdown", "id": "340a1c51-6b86-49ab-b207-f8624c736b28", @@ -176,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "dffbcf8c-9a7d-4ab0-8eb5-ba12b1188645", "metadata": { "papermill": {}, @@ -184,32 +181,7 @@ }, "outputs": [], "source": [ - "new_date = date_datetime.strftime(new_format)\n", - "new_date" - ] - }, - { - "cell_type": "markdown", - "id": "d4d3b4c5-eed0-44e2-9f0f-0b35981c391f", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Convert a string date to a datetime object to another string date" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6f69fc2a-ed25-48c6-b7e8-db970f61c64a", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "new_date = datetime.strptime(date_string, current_format).strftime(new_format)\n", + "new_date = datetime_obj.strftime(string_date_format)\n", "new_date" ] }, @@ -237,7 +209,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "3b0cf348", "metadata": { "papermill": {}, @@ -268,8 +240,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "bc5e5a53dce086157760c18fbdfec9e5ac3def16134edf36a04e4f7eeaafb3a8", - "notebook_path": "Python/Python_Using_datetime_library.ipynb" + "notebook_id": "ee2454efaf6543bbecbe368327aa987b1cf2c65b67a0d60de28d59966ca7e3de", + "notebook_path": "Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb b/Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb similarity index 80% rename from Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb rename to Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb index d94c599816..3fa20d3a8c 100644 --- a/Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb +++ b/Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# Python - Convert Datetime with Timezone to ISO 8601 date string\n", - "

Template request | Bug report | Generate Data Product" + "# Datetime - Convert with Timezone to ISO 8601 date string\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #datetime #timezone #iso8601 #string #conversion" + "**Tags:** #datetime #timezone #iso8601 #string #conversion" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7946c6b6-2f65-4431-820f-2a34346dc5b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-02-15)" + ] + }, { "cell_type": "markdown", "id": "5027a01d-1d83-4d65-a29b-5ed7b7058cfe", @@ -64,7 +75,7 @@ "tags": [] }, "source": [ - "References:\n", + "**References:**\n", "- [Python datetime](https://docs.python.org/3/library/datetime.html)\n", "- [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)" ] @@ -232,8 +243,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "6ecbcc24aa72ffcd4dba78168b4bfc05f46a697de728b9192a9c21743b9fe43d", - "notebook_path": "Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb" + "notebook_id": "527179e27a2e54e5090aa8ae94593c5883ba100a886199344c55e8a046e103de", + "notebook_path": "Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/Python/Python_Convert_relative_time_delta_to_months.ipynb b/Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb similarity index 83% rename from Python/Python_Convert_relative_time_delta_to_months.ipynb rename to Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb index cd95b14af8..c00e16059a 100644 --- a/Python/Python_Convert_relative_time_delta_to_months.ipynb +++ b/Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# Python - Convert relative time delta to months\n", - "

Template request | Bug report | Generate Data Product" + "# Datetime - Convert relative time delta to months\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #datetime #relativedelta #calculate #date #time #dateutil" + "**Tags:** #datetime #relativedelta #calculate #date #time #dateutil" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a2c04186-8421-421d-abc2-ec3c22dc8f11", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-05-22)" + ] + }, { "cell_type": "markdown", "id": "2e8b31cf-ccc0-4390-86cc-7a43e8afdbc5", @@ -245,8 +256,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "067c20cbc754f3ea3f89b0109bb3942740458d14538a441fc71cbe86ccafd826", - "notebook_path": "Python/Python_Convert_relative_time_delta_to_months.ipynb" + "notebook_id": "2e58cf9199f74e34fc1aae9761efc23814d7a0f9ce53e6d9464203e0b82e651a", + "notebook_path": "Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/CSV/CSV_Read_file.ipynb b/Datetime/Datetime_Convert_string_to_datetime_object.ipynb similarity index 51% rename from CSV/CSV_Read_file.ipynb rename to Datetime/Datetime_Convert_string_to_datetime_object.ipynb index b3a4b648ff..46a2b05a69 100644 --- a/CSV/CSV_Read_file.ipynb +++ b/Datetime/Datetime_Convert_string_to_datetime_object.ipynb @@ -2,10 +2,12 @@ "cells": [ { "cell_type": "markdown", - "id": "22adc193-61a4-47e5-8575-63eec1d6e77d", + "id": "naas-logo", "metadata": { "papermill": {}, - "tags": [] + "tags": [ + "naas" + ] }, "source": [ "\"Naas\"" @@ -13,36 +15,47 @@ }, { "cell_type": "markdown", - "id": "elder-rugby", + "id": "db17b79b", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "# CSV - Read file\n", - "

Template request | Bug report | Generate Data Product" + "# Datetime - Convert a string date to a datetime object\n", + "

Give Feedback | Bug report" ] }, { "cell_type": "markdown", - "id": "e0a5cdec-021b-4cea-b045-eb951ce554ec", + "id": "13800319", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "**Tags:** #csv #pandas #read #opendata #johnshopkins #investors #snippet #dataframe" + "**Tags:** #datetime #snippet #operations #python" ] }, { "cell_type": "markdown", - "id": "42bcd196-a350-45ea-beef-dca26167d41f", + "id": "8761af40", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "07da9d46-7a6d-4bfb-a34a-f9bbad8680ac", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-07-05)" ] }, { @@ -55,12 +68,24 @@ ] }, "source": [ - "**Description:** This notebook provides a guide to reading and manipulating CSV files." + "**Description:** This notebook converts a string date to a datetime object" + ] + }, + { + "cell_type": "markdown", + "id": "1e8fe9ea-46f9-4496-8e50-0f76e52697d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python datetime library](https://docs.python.org/3/library/datetime.html)" ] }, { "cell_type": "markdown", - "id": "a4618223-4afc-4c27-9a2b-7f1067be498a", + "id": "d6ed8917", "metadata": { "papermill": {}, "tags": [] @@ -71,7 +96,7 @@ }, { "cell_type": "markdown", - "id": "25fde36a-fa80-4aad-b4da-c06038a7fb8d", + "id": "fb1b9009", "metadata": { "papermill": {}, "tags": [] @@ -83,50 +108,50 @@ { "cell_type": "code", "execution_count": 1, - "id": "ae091609-882a-4242-a32f-7b355403969d", + "id": "aefef37f", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "import pandas" + "from datetime import datetime" ] }, { "cell_type": "markdown", - "id": "84a10f73-ea4a-4331-8f30-ee190f76797d", + "id": "b7c1ad2b-ff24-43b9-b2fb-9a28b806e214", "metadata": { - "execution": { - "iopub.execute_input": "2021-10-01T13:33:58.370014Z", - "iopub.status.busy": "2021-10-01T13:33:58.369743Z", - "iopub.status.idle": "2021-10-01T13:33:58.373285Z", - "shell.execute_reply": "2021-10-01T13:33:58.372507Z", - "shell.execute_reply.started": "2021-10-01T13:33:58.369948Z" - }, "papermill": {}, "tags": [] }, "source": [ - "### Variable" + "### Setup Variables\n", + "To parse your date format : you can use the [d3 time format documentation](https://github.com/d3/d3-time-format)\n", + "- `date_string`: Date string\n", + "- `current_format`: Date string format" ] }, { "cell_type": "code", - "execution_count": 2, - "id": "617d6182-dd9b-462e-ad64-26df5faf18ac", + "execution_count": 5, + "id": "c25fdd9d-8517-4488-a88d-fc51a8d2e4f8", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "csv_path = \"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv\"" + "# Date string format\n", + "date_string = \"2022-02-25\"\n", + "\n", + "# Your date string format\n", + "current_format = \"%Y-%m-%d\"" ] }, { "cell_type": "markdown", - "id": "5473470e-9f7a-4c49-be1f-e812859f4b23", + "id": "93232477", "metadata": { "papermill": {}, "tags": [] @@ -137,43 +162,32 @@ }, { "cell_type": "markdown", - "id": "69ab62ff-1c59-4ed7-bc4a-f650b732b935", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Read the CSV from path" - ] - }, - { - "cell_type": "markdown", - "id": "790173fe-2b01-4a87-ba3a-d27031611d3c", + "id": "07164b8b", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "You want to add more parameters ?
\n", - "👉 Check out the pandas documentation here." + "### Convert a string date to a datetime object" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "suited-adelaide", + "execution_count": 6, + "id": "29972637", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "df = pandas.read_csv(csv_path)" + "datetime_obj = datetime.strptime(date_string, current_format)\n", + "datetime_obj" ] }, { "cell_type": "markdown", - "id": "63370a04-6b92-462b-b663-2af89c32436e", + "id": "02d1fc4b", "metadata": { "papermill": {}, "tags": [] @@ -184,7 +198,7 @@ }, { "cell_type": "markdown", - "id": "46f42343-1e53-4325-b708-bbbee1126a7a", + "id": "1c2b12ba-82a3-4831-b057-f429a5e6bd54", "metadata": { "papermill": {}, "tags": [] @@ -195,15 +209,15 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "dynamic-radius", + "execution_count": 7, + "id": "3b0cf348", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "df.head(5) # read the first 5 lines" + "print(datetime_obj)" ] } ], @@ -226,8 +240,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "2d6f1440de0d6bb9e72dcc16e49e5046540faf27efb8768291a03fd510a777ce", - "notebook_path": "CSV/CSV_Read_file.ipynb" + "notebook_id": "c2bafcf6bd3d8bd05a9b45ff7085dcc9a41d4300fdb65f762e0256546d40fd20", + "notebook_path": "Datetime/Datetime_Convert_string_to_datetime_object.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb b/Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb new file mode 100644 index 0000000000..e46da1862c --- /dev/null +++ b/Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9ec9ce91-1442-4ece-816f-a84c3bfde483", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "d2f9171e-0b6b-45e7-ad69-0e28ce4fa556", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Datetime - Convert timestamp to a datetime object\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "b7467c11-cf22-4f82-928d-c23e3f7d5459", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #datetime #python #timestamp #convert #datetimeobject #library" + ] + }, + { + "cell_type": "markdown", + "id": "669172da-2662-4715-bc07-fd82c7cd80ae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "65a1341b-c948-4a2b-91f5-e69c9dfd415f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-07-05)" + ] + }, + { + "cell_type": "markdown", + "id": "1ddadce4-cd43-4e82-bb7e-a38fe9c93fdd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to convert a timestamp to a datetime object in Python." + ] + }, + { + "cell_type": "markdown", + "id": "727bc23c-773c-450e-bb31-b4469497d031", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python datetime library](https://docs.python.org/3/library/datetime.html)" + ] + }, + { + "cell_type": "markdown", + "id": "1d7405e6-a5ec-4739-9d4d-c9db2fb536a6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "c606c4bf-c089-44a9-8402-05f94fe4c928", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "38fe9360-9889-4b98-b778-1e151f93db33", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from datetime import datetime" + ] + }, + { + "cell_type": "markdown", + "id": "c3fb9469-1cdf-4a79-a04f-e8eb3689735b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `timestamp`: timestamp to be converted to a datetime object" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1f1c9d27-dcbb-4835-83d2-9c07d1addabd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "timestamp = 1623456789" + ] + }, + { + "cell_type": "markdown", + "id": "3eab2150-a7bf-4219-a582-409b2ab576ef", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "06cd4f4b-b403-4d78-b365-9c1a0bf433a8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert timestamp to datetime object" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8ff96b84-2dbf-456f-9aee-1076bf8b5206", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Convert timestamp to a datetime object\n", + "datetime_obj = datetime.fromtimestamp(timestamp)\n", + "datetime_obj" + ] + }, + { + "cell_type": "markdown", + "id": "5cbe806e-9ed0-410e-880f-f09b78af3ac7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "89debd47-aa74-4195-8e06-c72caa36dbd1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "20d684af-47c5-4e65-8e48-7401bf13b816", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(datetime_obj)" + ] + }, + { + "cell_type": "markdown", + "id": "23553ce0-6a3e-4ce2-bb65-f863961902aa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "deacb63cb8ea46333f7b10672b968a20991c44cc34048cecbd7af276488cdc36", + "notebook_path": "Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Deepl/Deepl_Translated_string_to_txt.ipynb b/Deepl/Deepl_Translated_string_to_txt.ipynb index 66f5e16611..45f3d039d9 100644 --- a/Deepl/Deepl_Translated_string_to_txt.ipynb +++ b/Deepl/Deepl_Translated_string_to_txt.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Deepl - Translated string to txt\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "794e6683-7e61-47de-b414-cbf865d7bfc9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Draft Kings/Draft_Kings_Get_MLB_Moneylines.ipynb b/Draft Kings/Draft_Kings_Get_MLB_Moneylines.ipynb index 68490b4f1f..b0be6a9eb7 100644 --- a/Draft Kings/Draft_Kings_Get_MLB_Moneylines.ipynb +++ b/Draft Kings/Draft_Kings_Get_MLB_Moneylines.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Draft Kings - Get MLB Moneylines\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [JA Williams](https://www.linkedin.com/in/ja-williams-529517187/)" ] }, + { + "cell_type": "markdown", + "id": "b836d24f-9aba-4da1-a1c7-323716f408b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-15)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Draft Kings/Draft_Kings_Get_NBA_Moneylines.ipynb b/Draft Kings/Draft_Kings_Get_NBA_Moneylines.ipynb index 11d53fc1e1..ffbb12fcb5 100644 --- a/Draft Kings/Draft_Kings_Get_NBA_Moneylines.ipynb +++ b/Draft Kings/Draft_Kings_Get_NBA_Moneylines.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Draft Kings - Get NBA Moneylines\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [JA Williams](https://www.linkedin.com/in/ja-williams-529517187/)" ] }, + { + "cell_type": "markdown", + "id": "30f57977-9dd4-453d-8318-bca51c535fcd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-13)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/EM-DAT/EM-DAT_natural_disasters.ipynb b/EM-DAT/EM-DAT_natural_disasters.ipynb index d61b77100e..af9eb17285 100644 --- a/EM-DAT/EM-DAT_natural_disasters.ipynb +++ b/EM-DAT/EM-DAT_natural_disasters.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# EM-DAT - Natural disasters\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "d52141c3-c9dc-413e-91f5-9eb17ed04fd7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-28)" + ] + }, { "cell_type": "markdown", "id": "disciplinary-adapter", diff --git a/Elasticsearch/Elasticsearch_Connect_to_server.ipynb b/Elasticsearch/Elasticsearch_Connect_to_server.ipynb index 4fcedf3db6..d9af8666ae 100644 --- a/Elasticsearch/Elasticsearch_Connect_to_server.ipynb +++ b/Elasticsearch/Elasticsearch_Connect_to_server.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Elasticsearch - Connect to server\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Ebin Paulose](https://www.linkedin.com/in/ebinpaulose/)" ] }, + { + "cell_type": "markdown", + "id": "37df9e16-778b-4fd0-a914-10c46d6be943", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-20)" + ] + }, { "cell_type": "markdown", "id": "palestinian-deployment", diff --git a/Excel/Excel_Apply_Custom_Styles.ipynb b/Excel/Excel_Apply_Custom_Styles.ipynb index 6ad22f6110..c128035bfe 100644 --- a/Excel/Excel_Apply_Custom_Styles.ipynb +++ b/Excel/Excel_Apply_Custom_Styles.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Excel - Apply Custom Styles\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sébastien Grech](https://www.linkedin.com/in/s%C3%A9bastien-grech-4433a7150/)" ] }, + { + "cell_type": "markdown", + "id": "d8d05a3f-9eba-4054-ba34-8c391ab8c5e6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Excel/Excel_Consolidate_files.ipynb b/Excel/Excel_Consolidate_files.ipynb index 46de087069..6526bffe12 100644 --- a/Excel/Excel_Consolidate_files.ipynb +++ b/Excel/Excel_Consolidate_files.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Excel - Consolidate files\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "1d854dc5-bb8b-46a1-885a-9086168cfb86", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Excel/Excel_Get_dynamic_active_range.ipynb b/Excel/Excel_Get_dynamic_active_range.ipynb index c733748c79..e7e75329a3 100644 --- a/Excel/Excel_Get_dynamic_active_range.ipynb +++ b/Excel/Excel_Get_dynamic_active_range.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Excel - Get dynamic active range\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "88db2d83-8d7a-445c-950d-e5a7f84468d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-24)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Excel/Excel_List_sheets_in_workbook.ipynb b/Excel/Excel_List_sheets_in_workbook.ipynb index 9c1d8d6cf0..e33c672b8f 100644 --- a/Excel/Excel_List_sheets_in_workbook.ipynb +++ b/Excel/Excel_List_sheets_in_workbook.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Excel - List sheets in workbook\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "38d8ab04-c778-4852-a31b-d60accb3e039", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-29)" + ] + }, { "cell_type": "markdown", "id": "cd3aa444-1a0b-40f4-b452-735e7efc7bab", diff --git a/Excel/Excel_Read_file.ipynb b/Excel/Excel_Read_file.ipynb index 1ee4b7997e..ee2925a6a9 100644 --- a/Excel/Excel_Read_file.ipynb +++ b/Excel/Excel_Read_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Excel - Read file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "51bab36c-8a23-4df8-883b-a22f10a8f3d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Excel/Excel_Save_file.ipynb b/Excel/Excel_Save_file.ipynb index a2e0e26c46..5f983e1fe6 100644 --- a/Excel/Excel_Save_file.ipynb +++ b/Excel/Excel_Save_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Excel - Save file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "53814acf-e038-4d42-8b0d-f78bd7a1ae19", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FAO/FAO_Consumer_price_indice.ipynb b/FAO/FAO_Consumer_price_indice.ipynb index bbffc31c63..864131813d 100644 --- a/FAO/FAO_Consumer_price_indice.ipynb +++ b/FAO/FAO_Consumer_price_indice.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# FAO - Consumer price indice\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Dereck DANIEL](https://github.com/DANIEL-Dereck)" ] }, + { + "cell_type": "markdown", + "id": "22f321b7-8a74-4b71-aa05-0ac7c08a5b6c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-06-10)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb b/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb index 54db25b1f4..80370d4fc9 100644 --- a/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb +++ b/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FEC - Creer un dashboard PowerBI\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alexandre STEVENS](https://www.linkedin.com/in/alexandrestevenspbix/)" ] }, + { + "cell_type": "markdown", + "id": "ba7fb550-cfaf-4621-a145-464949927f1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FEC/FEC_Lecture_des_fichiers.ipynb b/FEC/FEC_Lecture_des_fichiers.ipynb index dae98c9832..ed1f8c5006 100644 --- a/FEC/FEC_Lecture_des_fichiers.ipynb +++ b/FEC/FEC_Lecture_des_fichiers.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FEC - Lecture des fichiers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "87bb240a-70c9-45b1-8b7d-6e0f06dde7b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "70112eac-5023-4f2d-88af-7d79ea99437c", diff --git a/FEC/FEC_Visualiser_Bilan_Treemap.ipynb b/FEC/FEC_Visualiser_Bilan_Treemap.ipynb index c7fcf52fed..c0d793c1cf 100644 --- a/FEC/FEC_Visualiser_Bilan_Treemap.ipynb +++ b/FEC/FEC_Visualiser_Bilan_Treemap.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# FEC - Visualiser Bilan Treemap\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e69bc2c4-bf7a-4c70-99f1-b2293015ce1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-31)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb b/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb index 9556e87374..e84d980d41 100644 --- a/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb +++ b/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FEC - Visualiser Charges Horizontal Barchart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "74945485-93cf-43c9-84ae-ac122f082550", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-23)" + ] + }, { "cell_type": "markdown", "id": "716a26f4-3720-4447-bbc6-0efd0ce1d514", diff --git a/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb b/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb index 624f46a476..6f8088d949 100644 --- a/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb +++ b/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# FEC - Visualiser Comparer Ventes Line Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "152ec86a-5770-47cf-a115-247e92141a30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git "a/FEC/FEC_Visualiser_Tr\303\251sorerie_Barline_Chart.ipynb" "b/FEC/FEC_Visualiser_Tr\303\251sorerie_Barline_Chart.ipynb" index 755843f398..05e8f54b4b 100644 --- "a/FEC/FEC_Visualiser_Tr\303\251sorerie_Barline_Chart.ipynb" +++ "b/FEC/FEC_Visualiser_Tr\303\251sorerie_Barline_Chart.ipynb" @@ -27,7 +27,7 @@ }, "source": [ "# FEC - Visualiser Trésorerie Barline Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "e9973731-0648-49c7-b0cf-e7a68a6fa550", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FED/FED_Visualize_Inflation_Rate.ipynb b/FED/FED_Visualize_Inflation_Rate.ipynb index c579ed063f..d7dd3469a3 100644 --- a/FED/FED_Visualize_Inflation_Rate.ipynb +++ b/FED/FED_Visualize_Inflation_Rate.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FED - Visualize Inflation Rate\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "992645f4-9f3c-4c95-9de3-a6891175100d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-06)" + ] + }, { "cell_type": "markdown", "id": "c5b89b33-c2f2-47cc-83c5-86d8127a4857", diff --git a/FTP/FTPS_Connect.ipynb b/FTP/FTPS_Connect.ipynb index 8e6c5be56f..96a7d47907 100644 --- a/FTP/FTPS_Connect.ipynb +++ b/FTP/FTPS_Connect.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FTP - S Connect\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "b84a3a24-f0bc-4472-a711-6360ab1cddc2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FTP/FTP_Connect.ipynb b/FTP/FTP_Connect.ipynb index 152c56dd58..b64bbf8ccd 100644 --- a/FTP/FTP_Connect.ipynb +++ b/FTP/FTP_Connect.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FTP - Connect\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "952978d3-77f5-41c4-a568-c1397d1610e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FTP/FTP_Get_file.ipynb b/FTP/FTP_Get_file.ipynb index 0c365722ea..e0f79ff1e6 100644 --- a/FTP/FTP_Get_file.ipynb +++ b/FTP/FTP_Get_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FTP - Get file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "cab87042-2c0b-4207-85da-67767bd9f1b5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/FTP/FTP_Send_file.ipynb b/FTP/FTP_Send_file.ipynb index 6a5d5b6d79..fc77990bc6 100644 --- a/FTP/FTP_Send_file.ipynb +++ b/FTP/FTP_Send_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# FTP - Send file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "7ab056e1-e8fe-4523-b32d-6832b3902603", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Faker/Faker_Anonymize_Address_from_dataframe.ipynb b/Faker/Faker_Anonymize_Address_from_dataframe.ipynb index ff185f803b..2f05b8b5e2 100644 --- a/Faker/Faker_Anonymize_Address_from_dataframe.ipynb +++ b/Faker/Faker_Anonymize_Address_from_dataframe.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Faker - Anonymize Address from dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6db6b2f0-c678-42ac-94d4-f376f22ce424", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb b/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb index c7ab15fcc8..070ffda5e2 100644 --- a/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb +++ b/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Faker - Anonymize Personal Names from dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3091a597-8bd5-4afb-8081-f87a7075232d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Folium/Folium_Add_markers_on_map.ipynb b/Folium/Folium_Add_markers_on_map.ipynb new file mode 100644 index 0000000000..57be3ccca1 --- /dev/null +++ b/Folium/Folium_Add_markers_on_map.ipynb @@ -0,0 +1,322 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Folium - Add markers on map\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #folium #map #markers #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "a601ec81-2aa3-41dd-917e-d37289aedd9e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to add markers on a map using `folium`." + ] + }, + { + "cell_type": "markdown", + "id": "12d7ebc7-7831-425f-a733-d6a98a09656c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Folium Mapping: Displaying Markers on a Map](https://towardsdatascience.com/folium-mapping-displaying-markers-on-a-map-6bd56f3e3420)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import folium\n", + "except ModuleError:\n", + " !pip install folium --user\n", + " import folium" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `location1_coordinates`: Coordinates to be used for location: latitude, longitude\n", + "- `location2_coordinates`: Coordinates to be used for location: latitude, longitude\n", + "\n", + "**Optional**\n", + "\n", + "- `zoom_start`: This parameter sets the initial zoom level on the map. A value of 0 indicates the lowest level of zoom." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "location1_coordinates = 42.657188, 23.2846605\n", + "location2_coordinates = 37.4217636, -122.084614\n", + "\n", + "# Optional\n", + "zoom_start = 2" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "85b23876-a958-49f9-ace9-df4da49fbd12", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "16eae684-565f-4f1f-9a9d-905eeb7e0619", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# location 1\n", + "location1_latitude = location1_coordinates[0]\n", + "location1_longitude = location1_coordinates[1]\n", + "\n", + "# location 2\n", + "location2_latitude = location2_coordinates[0]\n", + "location2_longitude = location2_coordinates[1]" + ] + }, + { + "cell_type": "markdown", + "id": "5f0e7b46-14c6-402d-9e46-9c1c94b3bba4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create map" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create a map centered around the two locations\n", + "avg_latitude = (location1_latitude + location2_latitude) / 2\n", + "avg_longitude = (location1_longitude + location2_longitude) / 2\n", + "folium_map = folium.Map(location=[avg_latitude, avg_longitude], zoom_start=zoom_start)\n", + "\n", + "# Add markers for the specified locations\n", + "folium.Marker([location1_latitude, location1_longitude]).add_to(folium_map)\n", + "folium.Marker([location2_latitude, location2_longitude]).add_to(folium_map)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display map" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4af1598f-b4fe-4da2-94f3-1cfb20996fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "folium_map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "caf51a69-90b1-4eb6-817e-86c0f683e59d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "4580c539c8dc22fe627c347782220eb1211d51d3ac534c0074061911c83afbab", + "notebook_path": "Folium/Folium_Add_markers_on_map.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Folium/Folium_Build_route_maps.ipynb b/Folium/Folium_Build_route_maps.ipynb new file mode 100644 index 0000000000..9b6b0ed5a9 --- /dev/null +++ b/Folium/Folium_Build_route_maps.ipynb @@ -0,0 +1,292 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ae52aeb7-e723-4a12-ba20-02652fc4a03c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "a12e5f57-8c01-4642-8a8d-2cd1be2d7a59", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Folium - Build route maps\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "552f4924-c584-43e7-97c5-beaf461ce5ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #folium #maps #routes #python #visualization #data" + ] + }, + { + "cell_type": "markdown", + "id": "e5a327fa-76d2-4d77-9b17-1d78aad794ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "661ebb35-4b72-4173-a6d4-cc8aa53ea9e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "68d60bf3-8196-4276-96b9-24c0dfbfcb4c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to use Folium to build route maps." + ] + }, + { + "cell_type": "markdown", + "id": "557a5b48-34d9-4b8f-a4c6-156b0f491b9b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Folium Documentation](https://python-visualization.github.io/folium/)\n", + "- [Folium Examples](https://nbviewer.jupyter.org/github/python-visualization/folium/tree/master/examples/)" + ] + }, + { + "cell_type": "markdown", + "id": "c102f6f6-616e-43e0-bdad-6bb4657bcfc3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "2be61704-e768-4914-81a3-64c2cec96bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "5a22447f-97fa-4426-acde-eb611661614f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import folium\n", + "except:\n", + " !pip install folium --user\n", + " import folium" + ] + }, + { + "cell_type": "markdown", + "id": "ebd15039-04f0-41a2-8cb6-ca3ad898245d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `start_point`: Starting point of the route\n", + "- `end_point`: Ending point of the route\n", + "- `waypoints`: List of waypoints to be included in the route" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "19d5c8f3-ceeb-456c-b61f-38469cf81bcd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "start_point = (48.85837009999999, 2.2944813)\n", + "end_point = (48.85837009999999, 2.2944813)\n", + "waypoints = [(48.85837009999999, 2.2944813), (48.85837009999999, 2.2944813)]" + ] + }, + { + "cell_type": "markdown", + "id": "295dad87-d4dd-4139-9f81-fef29421f7ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "52d10243-9798-4da8-a01d-5c42f5da1f2b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create route map" + ] + }, + { + "cell_type": "markdown", + "id": "13256d79-8a22-49ec-97f4-eb51657f7dfc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "Long description of the function without break" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d86d3979-87a2-4d68-a095-b598f681480d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create route map\n", + "route_map = folium.Map(location=start_point, zoom_start=13)\n", + "\n", + "# Create route\n", + "folium.PolyLine(\n", + " locations=[start_point, end_point], color=\"red\", weight=2.5, opacity=1\n", + ").add_to(route_map)\n", + "\n", + "# Add waypoints\n", + "for point in waypoints:\n", + " folium.Marker(location=point).add_to(route_map)" + ] + }, + { + "cell_type": "markdown", + "id": "d17f0d42-1d5d-4f09-8217-74cfc097b3b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ebc49f05-1722-4b8b-981a-c8bbcc4ca70e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "effb0054-1a1b-4a56-ae4e-9f0cd669c7a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "route_map" + ] + }, + { + "cell_type": "markdown", + "id": "7d41aa33-019b-46cf-b15d-e57f5be90dfe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "cccf6467c3889278ee01c94fc28e2e0c58a81c12959ef887209eb2206a85971c", + "notebook_path": "Folium/Folium_Build_route_maps.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Folium/Folium_Create_map.ipynb b/Folium/Folium_Create_map.ipynb new file mode 100644 index 0000000000..dd6dadf460 --- /dev/null +++ b/Folium/Folium_Create_map.ipynb @@ -0,0 +1,249 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Folium - Create map\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #folium #map #leaflet #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "a601ec81-2aa3-41dd-917e-d37289aedd9e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates a map with Folium and Leaflet.js." + ] + }, + { + "cell_type": "markdown", + "id": "12d7ebc7-7831-425f-a733-d6a98a09656c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [PyPI folium](https://pypi.org/project/folium/)\n", + "- [Using Leaflet and Folium to make interactive maps in Python](https://www.earthdatascience.org/tutorials/introduction-to-leaflet-animated-maps/)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import folium\n", + "except:\n", + " !pip install folium --user\n", + " import folium" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "5f0e7b46-14c6-402d-9e46-9c1c94b3bba4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "folium_map = folium.Map()" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4af1598f-b4fe-4da2-94f3-1cfb20996fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "folium_map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "caf51a69-90b1-4eb6-817e-86c0f683e59d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "0b4cee6175ae01bdba70e486dae08388db62860db483724d3feb06a0fbe59a94", + "notebook_path": "Folium/Folium_Create_map.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Forecast/Forecast_List_all_assignments.ipynb b/Forecast/Forecast_List_all_assignments.ipynb new file mode 100644 index 0000000000..66726c2026 --- /dev/null +++ b/Forecast/Forecast_List_all_assignments.ipynb @@ -0,0 +1,404 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2a47dd5-bd4b-40ae-807a-33733f54526c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7b1332f0-6461-48ed-937b-d596e7355431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Forecast - List all assignments\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "798bab33-186a-4734-a231-29d04ee4bf74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #forecast #assignments #api #list #python #get" + ] + }, + { + "cell_type": "markdown", + "id": "7f10c96e-15a4-4ad0-8d3f-986439cd148f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Landry Christensen](https://github.com/lchristensen6)" + ] + }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-08 (Created: 2023-08-08)" + ] + }, + { + "cell_type": "markdown", + "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list all assignments from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects." + ] + }, + { + "cell_type": "markdown", + "id": "ab0b9e99-1655-4e11-a2c9-bbb4e391a4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Forecast Help Center](https://help.getharvest.com/forecast/faqs/faq-list/api/)" + ] + }, + { + "cell_type": "markdown", + "id": "88f174b4-0ae5-4585-adb4-40a1a5e3f7e0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "Kindly be aware that the Forecast API is currently not available for public use or documentation. If you wish to customize and utilize this template for your specific needs, please reach out to the author.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "c13b8aad-48a0-4802-9179-d98608369f46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4092d0fe-1091-4865-8047-107dce67f67a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0be5433a-7621-427c-87e3-a23cde697521", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import naas\n", + "import datetime" + ] + }, + { + "cell_type": "markdown", + "id": "c9a72c9a-516c-4cf6-9229-356ce62bd494", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `account_id`: Account ID from Forecast\n", + "- `client_id`: Client ID from Forecast\n", + "- `client_secret`: Client Secret from Forecast\n", + "- `refresh_token`: Refresh Token from Forecast\n", + "- `limit`: assignments limit, to get all assignments enter -1\n", + "\n", + "**Optional**\n", + "\n", + "This notebook will filter all of the assignments that include any date going from `start_date` to `end_date`.\n", + "Maximum timeframe of 180 days from `start_date` to `end_date`. Default start date is 90 days before current date, and default end date is 90 days after current date.\n", + "- `start_date`: Starting date to filter from (ISO 8601 Format), Example date '2023-08-04'\n", + "- `end_date`: Ending date to filter from (ISO 8601 Format), Example date '2023-08-04'\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1146059a-d69a-46c6-877f-3b64cb3844b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "account_id = naas.secret.get(\"FORECAST_ACCOUNT_ID\") or \"YOUR_FORECAST_ACCOUNT_ID\"\n", + "client_id = naas.secret.get(\"FORECAST_CLIENT_ID\") or \"YOUR_FORECAST_CLIENT_ID\"\n", + "client_secret = naas.secret.get(\"FORECAST_CLIENT_SECRET\") or \"YOUR_FORECAST_CLIENT_SECRET\"\n", + "refresh_token = naas.secret.get(\"FORECAST_REFRESH_TOKEN\") or \"YOUR_FORECAST_REFRESH_TOKEN\"\n", + "limit = 1000\n", + "\n", + "# Optional\n", + "start_date = None\n", + "end_date = None" + ] + }, + { + "cell_type": "markdown", + "id": "b6e5afde-6a5b-4813-a4a9-280c34b68790", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "18b5d596-5730-4755-acd0-bf83f9da5dcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all assignments" + ] + }, + { + "cell_type": "markdown", + "id": "2bf3c5e8-1072-4c54-898a-7f5aa6cb9f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list all assignments from the Forecast API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3044b9c3-2ae0-432b-9227-24ed5d08c1d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get Harvest Access token\n", + "def get_access_token():\n", + " res = requests.post(\n", + " url=\"https://id.getharvest.com/api/v2/oauth2/token\",\n", + " data={\n", + " \"client_id\": client_id,\n", + " \"client_secret\": client_secret,\n", + " \"refresh_token\": refresh_token,\n", + " \"grant_type\": \"refresh_token\",\n", + " },\n", + " headers={\"User-Agent\": 'Harvest-Scraper'},\n", + " )\n", + " res_json = res.json()\n", + " if res.status_code == 201:\n", + " return res_json[\"access_token\"]\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " return \"\"\n", + " \n", + "def list_assignments(\n", + " account_id,\n", + " access_token,\n", + " limit=-1,\n", + " start_date=None,\n", + " end_date=None\n", + "):\n", + " # Init\n", + " data = []\n", + " df = pd.DataFrame()\n", + " \n", + " # Requests\n", + " url = f\"https://api.forecastapp.com/assignments\"\n", + " headers = {\n", + " \"Accept\": \"application/json\",\n", + " \"Forecast-Account-ID\": account_id,\n", + " \"Authorization\": \"Bearer \" + access_token,\n", + " }\n", + " \n", + " today = datetime.date.today()\n", + " \n", + " if start_date:\n", + " start_date_param = datetime.date.fromisoformat(start_date)\n", + " else:\n", + " start_date_param = today - datetime.timedelta(days=90)\n", + " \n", + " if end_date: \n", + " end_date_param = datetime.date.fromisoformat(end_date)\n", + " else:\n", + " end_date_param = today + datetime.timedelta(days=90)\n", + " \n", + " params = {\"start_date\": start_date_param, \"end_date\": end_date_param}\n", + " \n", + " res = requests.get(url=url, params=params, headers=headers)\n", + " while True:\n", + " if res.status_code == 200:\n", + " # Get data\n", + " res_json = res.json()\n", + " assignments = res_json.get(\"assignments\")\n", + " for assignment in assignments:\n", + " data.append(assignment)\n", + "\n", + " # Manage limit\n", + " if limit != -1 and len(data) >= limit:\n", + " break\n", + " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", + "\n", + " # Transform in dataframes\n", + " df = pd.DataFrame(data)\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9fd9975b-2db5-4c00-916b-0e08f32d1668", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "536197c4-3909-4b5e-a87f-346d07c32308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f312a847-d9e6-4481-aca9-61ada7f96fe4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_assignments = list_assignments(\n", + " account_id,\n", + " get_access_token(),\n", + " limit,\n", + " start_date,\n", + " end_date\n", + ")\n", + "print(\"Row fetched:\", len(df_assignments))\n", + "df_assignments.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2e7f2ab-673e-4c60-ab0a-7c1f6f09c2dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d99f3d4-849d-4383-8577-df8424516818", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "92843af029dccefb840512cc32f2146422288d20bf883643c3012da6da46c604", + "notebook_path": "Forecast/Forecast_List_all_assignments.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Forecast/Forecast_List_all_clients.ipynb b/Forecast/Forecast_List_all_clients.ipynb new file mode 100644 index 0000000000..5e95f34112 --- /dev/null +++ b/Forecast/Forecast_List_all_clients.ipynb @@ -0,0 +1,379 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2a47dd5-bd4b-40ae-807a-33733f54526c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7b1332f0-6461-48ed-937b-d596e7355431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Forecast - List all clients\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "798bab33-186a-4734-a231-29d04ee4bf74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #forecast #clients #api #list #python #get" + ] + }, + { + "cell_type": "markdown", + "id": "7f10c96e-15a4-4ad0-8d3f-986439cd148f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Landry Christensen](https://github.com/lchristensen6)" + ] + }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-08 (Created: 2023-08-08)" + ] + }, + { + "cell_type": "markdown", + "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list all clients from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects." + ] + }, + { + "cell_type": "markdown", + "id": "ab0b9e99-1655-4e11-a2c9-bbb4e391a4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Forecast Help Center](https://help.getharvest.com/forecast/faqs/faq-list/api/)" + ] + }, + { + "cell_type": "markdown", + "id": "40a3a19c-22a2-4303-a647-253eb78b1e7e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "Kindly be aware that the Forecast API is currently not available for public use or documentation. If you wish to customize and utilize this template for your specific needs, please reach out to the author.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "c13b8aad-48a0-4802-9179-d98608369f46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4092d0fe-1091-4865-8047-107dce67f67a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0be5433a-7621-427c-87e3-a23cde697521", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "c9a72c9a-516c-4cf6-9229-356ce62bd494", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `account_id`: Account ID from Forecast\n", + "- `client_id`: Client ID from Forecast\n", + "- `client_secret`: Client Secret from Forecast\n", + "- `refresh_token`: Refresh Token from Forecast\n", + "\n", + "**Optional**\n", + "- `limit`: clients limit, to get all clients enter -1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1146059a-d69a-46c6-877f-3b64cb3844b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "account_id = naas.secret.get(\"FORECAST_ACCOUNT_ID\") or \"YOUR_FORECAST_ACCOUNT_ID\"\n", + "client_id = naas.secret.get(\"FORECAST_CLIENT_ID\") or \"YOUR_FORECAST_CLIENT_ID\"\n", + "client_secret = naas.secret.get(\"FORECAST_CLIENT_SECRET\") or \"YOUR_FORECAST_CLIENT_SECRET\"\n", + "refresh_token = naas.secret.get(\"FORECAST_REFRESH_TOKEN\") or \"YOUR_FORECAST_REFRESH_TOKEN\"\n", + "\n", + "# Optional\n", + "limit = 1000" + ] + }, + { + "cell_type": "markdown", + "id": "b6e5afde-6a5b-4813-a4a9-280c34b68790", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "18b5d596-5730-4755-acd0-bf83f9da5dcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all clients" + ] + }, + { + "cell_type": "markdown", + "id": "2bf3c5e8-1072-4c54-898a-7f5aa6cb9f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list all clients from the Forecast API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3044b9c3-2ae0-432b-9227-24ed5d08c1d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get Harvest Access token\n", + "def get_access_token():\n", + " res = requests.post(\n", + " url=\"https://id.getharvest.com/api/v2/oauth2/token\",\n", + " data={\n", + " \"client_id\": client_id,\n", + " \"client_secret\": client_secret,\n", + " \"refresh_token\": refresh_token,\n", + " \"grant_type\": \"refresh_token\",\n", + " },\n", + " headers={\"User-Agent\": 'Harvest-Scraper'},\n", + " )\n", + " res_json = res.json()\n", + " if res.status_code == 201:\n", + " return res_json[\"access_token\"]\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " return \"\"\n", + " \n", + "def list_clients(\n", + " account_id,\n", + " access_token,\n", + " limit=-1,\n", + "):\n", + " # Init\n", + " data = []\n", + " df = pd.DataFrame()\n", + " \n", + " # Requests\n", + " url = f\"https://api.forecastapp.com/clients\"\n", + " headers = {\n", + " \"Accept\": \"application/json\",\n", + " \"Forecast-Account-ID\": account_id,\n", + " \"Authorization\": \"Bearer \" + access_token,\n", + " }\n", + " \n", + " res = requests.get(url=url, headers=headers)\n", + " while True:\n", + " if res.status_code == 200:\n", + " # Get data\n", + " res_json = res.json()\n", + "\n", + " clients = res_json.get(\"clients\")\n", + " for client in clients:\n", + " data.append(client)\n", + "\n", + " # Manage limit\n", + " if limit != -1 and len(data) >= limit:\n", + " break\n", + " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", + "\n", + " # Transform in dataframes\n", + " df = pd.DataFrame(data)\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9fd9975b-2db5-4c00-916b-0e08f32d1668", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "536197c4-3909-4b5e-a87f-346d07c32308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f312a847-d9e6-4481-aca9-61ada7f96fe4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_clients = list_clients(\n", + " account_id,\n", + " get_access_token(),\n", + " limit\n", + ")\n", + "print(\"Row fetched:\", len(df_clients))\n", + "df_clients.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2e7f2ab-673e-4c60-ab0a-7c1f6f09c2dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d99f3d4-849d-4383-8577-df8424516818", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "ec42b7671812e53369957d3aed72789a828f597c008d8b93070df4e423e92c8c", + "notebook_path": "Forecast/Forecast_List_all_clients.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Forecast/Forecast_List_all_people.ipynb b/Forecast/Forecast_List_all_people.ipynb new file mode 100644 index 0000000000..a9f5ffee3f --- /dev/null +++ b/Forecast/Forecast_List_all_people.ipynb @@ -0,0 +1,370 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2a47dd5-bd4b-40ae-807a-33733f54526c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7b1332f0-6461-48ed-937b-d596e7355431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Forecast - List all people\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "798bab33-186a-4734-a231-29d04ee4bf74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #forecast #people #api #list #python #get" + ] + }, + { + "cell_type": "markdown", + "id": "7f10c96e-15a4-4ad0-8d3f-986439cd148f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Landry Christensen](https://github.com/lchristensen6)" + ] + }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-07 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list all people from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects." + ] + }, + { + "cell_type": "markdown", + "id": "ab0b9e99-1655-4e11-a2c9-bbb4e391a4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Forecast Help Center](https://help.getharvest.com/forecast/faqs/faq-list/api/)" + ] + }, + { + "cell_type": "markdown", + "id": "6f641d0a-a77d-4569-a787-b2c8a303c439", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "Kindly be aware that the Forecast API is currently not available for public use or documentation. If you wish to customize and utilize this template for your specific needs, please reach out to the author.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "c13b8aad-48a0-4802-9179-d98608369f46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4092d0fe-1091-4865-8047-107dce67f67a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0be5433a-7621-427c-87e3-a23cde697521", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "c9a72c9a-516c-4cf6-9229-356ce62bd494", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `account_id`: Account ID from Forecast\n", + "- `client_id`: Client ID from Forecast\n", + "- `client_secret`: Client Secret from Forecast\n", + "- `refresh_token`: Refresh Token from Forecast\n", + "\n", + "**Optional**\n", + "- `limit`: people limit, to get all people enter -1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1146059a-d69a-46c6-877f-3b64cb3844b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "account_id = naas.secret.get(\"FORECAST_ACCOUNT_ID\") or \"YOUR_FORECAST_ACCOUNT_ID\"\n", + "client_id = naas.secret.get(\"FORECAST_CLIENT_ID\") or \"YOUR_FORECAST_CLIENT_ID\"\n", + "client_secret = naas.secret.get(\"FORECAST_CLIENT_SECRET\") or \"YOUR_FORECAST_CLIENT_SECRET\"\n", + "refresh_token = naas.secret.get(\"FORECAST_REFRESH_TOKEN\") or \"YOUR_FORECAST_REFRESH_TOKEN\"\n", + "\n", + "# Optional\n", + "limit = 1000" + ] + }, + { + "cell_type": "markdown", + "id": "b6e5afde-6a5b-4813-a4a9-280c34b68790", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "18b5d596-5730-4755-acd0-bf83f9da5dcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all people" + ] + }, + { + "cell_type": "markdown", + "id": "2bf3c5e8-1072-4c54-898a-7f5aa6cb9f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list all people from the Forecast API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3044b9c3-2ae0-432b-9227-24ed5d08c1d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get Harvest Access token\n", + "def get_access_token():\n", + " res = requests.post(\n", + " url=\"https://id.getharvest.com/api/v2/oauth2/token\",\n", + " data={\n", + " \"client_id\": client_id,\n", + " \"client_secret\": client_secret,\n", + " \"refresh_token\": refresh_token,\n", + " \"grant_type\": \"refresh_token\",\n", + " },\n", + " headers={\"User-Agent\": 'Harvest-Scraper'},\n", + " )\n", + "\n", + " res_json = res.json()\n", + " if res.status_code == 201:\n", + " return res_json[\"access_token\"]\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " return \"\"\n", + " \n", + "def list_people(\n", + " account_id,\n", + " access_token,\n", + " limit=-1,\n", + "):\n", + " # Init\n", + " data = []\n", + " df = pd.DataFrame()\n", + " \n", + " # Requests\n", + " url = f\"https://api.forecastapp.com/people\"\n", + " headers = {\n", + " \"Accept\": \"application/json\",\n", + " \"Forecast-Account-ID\": account_id,\n", + " \"Authorization\": \"Bearer \" + access_token,\n", + " }\n", + " \n", + " while True:\n", + " res = requests.get(url=url, headers=headers)\n", + "\n", + " if res.status_code == 200:\n", + " # Get data\n", + " res_json = res.json()\n", + "\n", + " people = res_json.get(\"people\")\n", + " for person in people:\n", + " data.append(person)\n", + "\n", + " # Manage limit\n", + " if limit != -1 and len(data) >= limit:\n", + " break\n", + " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", + "\n", + " # Transform in dataframes\n", + " df = pd.DataFrame(data)\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9fd9975b-2db5-4c00-916b-0e08f32d1668", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "536197c4-3909-4b5e-a87f-346d07c32308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f312a847-d9e6-4481-aca9-61ada7f96fe4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_people = list_people(\n", + " account_id,\n", + " get_access_token(),\n", + " limit\n", + ")\n", + "print(\"Row fetched:\", len(df_people))\n", + "df_people.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2e7f2ab-673e-4c60-ab0a-7c1f6f09c2dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1e3981cbb25a39575b8a02a7f99ced455da1778da4ea90bffc9e80a5fc67ae76", + "notebook_path": "Forecast/Forecast_List_all_people.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Forecast/Forecast_List_all_projects.ipynb b/Forecast/Forecast_List_all_projects.ipynb new file mode 100644 index 0000000000..4c2601b1eb --- /dev/null +++ b/Forecast/Forecast_List_all_projects.ipynb @@ -0,0 +1,379 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2a47dd5-bd4b-40ae-807a-33733f54526c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7b1332f0-6461-48ed-937b-d596e7355431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Forecast - List all projects\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "798bab33-186a-4734-a231-29d04ee4bf74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #forecast #projects #api #list #python #get" + ] + }, + { + "cell_type": "markdown", + "id": "7f10c96e-15a4-4ad0-8d3f-986439cd148f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Landry Christensen](https://github.com/lchristensen6)" + ] + }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-08 (Created: 2023-08-08)" + ] + }, + { + "cell_type": "markdown", + "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list all projects from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects." + ] + }, + { + "cell_type": "markdown", + "id": "ab0b9e99-1655-4e11-a2c9-bbb4e391a4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Forecast Help Center](https://help.getharvest.com/forecast/faqs/faq-list/api/)" + ] + }, + { + "cell_type": "markdown", + "id": "cd739c04-c008-47c7-8f0c-3b0c5a62fb6b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "Kindly be aware that the Forecast API is currently not available for public use or documentation. If you wish to customize and utilize this template for your specific needs, please reach out to the author.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "c13b8aad-48a0-4802-9179-d98608369f46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4092d0fe-1091-4865-8047-107dce67f67a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0be5433a-7621-427c-87e3-a23cde697521", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "c9a72c9a-516c-4cf6-9229-356ce62bd494", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `account_id`: Account ID from Forecast\n", + "- `client_id`: Client ID from Forecast\n", + "- `client_secret`: Client Secret from Forecast\n", + "- `refresh_token`: Refresh Token from Forecast\n", + "\n", + "**Optional**\n", + "- `limit`: projects limit, to get all projects enter -1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1146059a-d69a-46c6-877f-3b64cb3844b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "account_id = naas.secret.get(\"FORECAST_ACCOUNT_ID\") or \"YOUR_FORECAST_ACCOUNT_ID\"\n", + "client_id = naas.secret.get(\"FORECAST_CLIENT_ID\") or \"YOUR_FORECAST_CLIENT_ID\"\n", + "client_secret = naas.secret.get(\"FORECAST_CLIENT_SECRET\") or \"YOUR_FORECAST_CLIENT_SECRET\"\n", + "refresh_token = naas.secret.get(\"FORECAST_REFRESH_TOKEN\") or \"YOUR_FORECAST_REFRESH_TOKEN\"\n", + "\n", + "# Optional\n", + "limit = 1000" + ] + }, + { + "cell_type": "markdown", + "id": "b6e5afde-6a5b-4813-a4a9-280c34b68790", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "18b5d596-5730-4755-acd0-bf83f9da5dcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all projects" + ] + }, + { + "cell_type": "markdown", + "id": "2bf3c5e8-1072-4c54-898a-7f5aa6cb9f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list all projects from the Forecast API" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3044b9c3-2ae0-432b-9227-24ed5d08c1d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get Harvest Access token\n", + "def get_access_token():\n", + " res = requests.post(\n", + " url=\"https://id.getharvest.com/api/v2/oauth2/token\",\n", + " data={\n", + " \"client_id\": client_id,\n", + " \"client_secret\": client_secret,\n", + " \"refresh_token\": refresh_token,\n", + " \"grant_type\": \"refresh_token\",\n", + " },\n", + " headers={\"User-Agent\": 'Harvest-Scraper'},\n", + " )\n", + " res_json = res.json()\n", + " if res.status_code == 201:\n", + " return res_json[\"access_token\"]\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " return \"\"\n", + " \n", + "def list_projects(\n", + " account_id,\n", + " access_token,\n", + " limit=-1,\n", + "):\n", + " # Init\n", + " data = []\n", + " df = pd.DataFrame()\n", + " \n", + " # Requests\n", + " url = f\"https://api.forecastapp.com/projects\"\n", + " headers = {\n", + " \"Accept\": \"application/json\",\n", + " \"Forecast-Account-ID\": account_id,\n", + " \"Authorization\": \"Bearer \" + access_token,\n", + " }\n", + " \n", + " res = requests.get(url=url, headers=headers)\n", + " while True:\n", + " if res.status_code == 200:\n", + " # Get data\n", + " res_json = res.json()\n", + "\n", + " projects = res_json.get(\"projects\")\n", + " for project in projects:\n", + " data.append(project)\n", + "\n", + " # Manage limit\n", + " if limit != -1 and len(data) >= limit:\n", + " break\n", + " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", + "\n", + " # Transform in dataframes\n", + " df = pd.DataFrame(data)\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9fd9975b-2db5-4c00-916b-0e08f32d1668", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "536197c4-3909-4b5e-a87f-346d07c32308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f312a847-d9e6-4481-aca9-61ada7f96fe4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_projects = list_projects(\n", + " account_id,\n", + " get_access_token(),\n", + " limit\n", + ")\n", + "print(\"Row fetched:\", len(df_projects))\n", + "df_projects.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2e7f2ab-673e-4c60-ab0a-7c1f6f09c2dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d99f3d4-849d-4383-8577-df8424516818", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "f0fba9e2e8ab797314e1454cd85c86759be2856b0c0fffa55a916148ae49d9b3", + "notebook_path": "Forecast/Forecast_List_all_projects.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Formant/Formant_Query_Device_Network.ipynb b/Formant/Formant_Query_Device_Network.ipynb index 5ca79b3613..bcf6609eb6 100644 --- a/Formant/Formant_Query_Device_Network.ipynb +++ b/Formant/Formant_Query_Device_Network.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Formant - Query Device Network\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Nicolas Binford](https://www.linkedin.com/in/nicolasbinford)" ] }, + { + "cell_type": "markdown", + "id": "7dcb55ac-d3c2-47de-8540-4a205d2680ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-25 (Created: 2023-05-25)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb b/Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb new file mode 100644 index 0000000000..197fe5ee14 --- /dev/null +++ b/Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb @@ -0,0 +1,268 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Geopy - Calculate distance between two locations in kilometers\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #geopy #distance #navigation #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "573600e2-190d-4f3f-9b5e-077abc2678a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to calculate distance between two locations in kilometers using `geopy`." + ] + }, + { + "cell_type": "markdown", + "id": "6a712396-71f5-4a79-a3bf-3b60ab7058f7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Nominatim geocoder for OpenStreetMap data](https://geopy.readthedocs.io/en/stable/#nominatim)\n", + "- [Calculating Distance](https://geopy.readthedocs.io/en/stable/index.html?highlight=distance#module-geopy.distance)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from geopy.geocoders import Nominatim\n", + "from geopy.distance import geodesic" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `address1`: Address to be used to get coordinates\n", + "- `address2`: Address to be used to get coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "address1 = \"Bulgaria Blvd 69, 1404 Manastirski Livadi, Sofia, Bulgaria\"\n", + "address2 = \"Sofia, 1680, Bulgaria\"" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "0ec83cc1-1a4f-4cac-97c6-108493349c27", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get locations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95e253a1-5dc9-4649-939f-a96fb45e22ce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "geolocator = Nominatim(user_agent=\"distance_calculator\")\n", + "location1 = geolocator.geocode(address1)\n", + "location2 = geolocator.geocode(address2)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "d9136ed3-5305-4aca-ae8a-1c3a9dc4c2e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Calculate distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06d94c6d-9602-4ea7-9ff9-ac719d949505", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "distance = geodesic((location1.latitude, location1.longitude), (location2.latitude, location2.longitude)).kilometers\n", + "rounded_distance = round(distance, 2)\n", + "print(\"Distance between the two addresses:\", rounded_distance, \"km\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "afb1d171e3d6d01f64e538e5218cb05bcb151bbf7b3bdc4aede393413b6795d8", + "notebook_path": "Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb b/Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb new file mode 100644 index 0000000000..8904aefbf0 --- /dev/null +++ b/Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb @@ -0,0 +1,268 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Geopy - Calculate distance between two locations in miles\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #geopy #distance #navigation #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "573600e2-190d-4f3f-9b5e-077abc2678a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to calculate distance between two locations in miles using `geopy`." + ] + }, + { + "cell_type": "markdown", + "id": "6a712396-71f5-4a79-a3bf-3b60ab7058f7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Nominatim geocoder for OpenStreetMap data](https://geopy.readthedocs.io/en/stable/#nominatim)\n", + "- [Calculating Distance](https://geopy.readthedocs.io/en/stable/index.html?highlight=distance#module-geopy.distance)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from geopy.geocoders import Nominatim\n", + "from geopy.distance import geodesic" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `address1`: Address to be used to get coordinates\n", + "- `address2`: Address to be used to get coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "address1 = \"Bulgaria Blvd 69, 1404 Manastirski Livadi, Sofia, Bulgaria\"\n", + "address2 = \"Sofia, 1680, Bulgaria\"" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "0ec83cc1-1a4f-4cac-97c6-108493349c27", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get locations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95e253a1-5dc9-4649-939f-a96fb45e22ce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "geolocator = Nominatim(user_agent=\"distance_calculator\")\n", + "location1 = geolocator.geocode(address1)\n", + "location2 = geolocator.geocode(address2)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "d9136ed3-5305-4aca-ae8a-1c3a9dc4c2e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Calculate distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06d94c6d-9602-4ea7-9ff9-ac719d949505", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "distance = geodesic((location1.latitude, location1.longitude), (location2.latitude, location2.longitude)).miles\n", + "rounded_distance = round(distance, 2)\n", + "print(\"Distance between the two addresses:\", rounded_distance, \"miles\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "63101b2ad458f9d789b07b0da6879d15330e9333534fcf1bfa68256633388959", + "notebook_path": "Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Geopy/Geopy_Display_markers_on_map.ipynb b/Geopy/Geopy_Display_markers_on_map.ipynb new file mode 100644 index 0000000000..6687b9cc62 --- /dev/null +++ b/Geopy/Geopy_Display_markers_on_map.ipynb @@ -0,0 +1,309 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Geopy - Display markers on map from addresses\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #geopy #folium #operations #navigation" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "a601ec81-2aa3-41dd-917e-d37289aedd9e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to display markers on a map from addresses using `geopy` and `folium`." + ] + }, + { + "cell_type": "markdown", + "id": "12d7ebc7-7831-425f-a733-d6a98a09656c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Nominatim geocoder for OpenStreetMap data](https://geopy.readthedocs.io/en/stable/#nominatim)\n", + "- [Folium Mapping: Displaying Markers on a Map](https://towardsdatascience.com/folium-mapping-displaying-markers-on-a-map-6bd56f3e3420)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from geopy.geocoders import Nominatim\n", + "try:\n", + " import folium\n", + "except ModuleError:\n", + " !pip install folium --user\n", + " import folium" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `address1`: Address to be used to get coordinates\n", + "- `address2`: Address to be used to get coordinates\n", + "\n", + "**Optional**\n", + "\n", + "- `zoom_start`: This parameter sets the initial zoom level on the map. A value of 0 indicates the lowest level of zoom." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "address1 = \"Bulgaria Blvd 69, 1404 Manastirski Livadi, Sofia, Bulgaria\"\n", + "address2 = \"1600 Amphitheatre Parkway Mountain View, CA 94043, USA\"\n", + "\n", + "# Optional\n", + "zoom_start = 2" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "85b23876-a958-49f9-ace9-df4da49fbd12", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get locations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16eae684-565f-4f1f-9a9d-905eeb7e0619", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "geolocator = Nominatim(user_agent=\"geoapiExercises\")\n", + "location1 = geolocator.geocode(address1)\n", + "location2 = geolocator.geocode(address2)" + ] + }, + { + "cell_type": "markdown", + "id": "5f0e7b46-14c6-402d-9e46-9c1c94b3bba4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create a map centered around the two locations\n", + "avg_latitude = (location1.latitude + location2.latitude) / 2\n", + "avg_longitude = (location1.longitude + location2.longitude) / 2\n", + "folium_map = folium.Map(location=[avg_latitude, avg_longitude], zoom_start=zoom_start)\n", + "\n", + "# Add markers for the specified locations\n", + "folium.Marker([location1.latitude, location1.longitude], popup=folium.Popup(location1.address)).add_to(folium_map)\n", + "folium.Marker([location2.latitude, location2.longitude], popup=folium.Popup(location2.address)).add_to(folium_map)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4af1598f-b4fe-4da2-94f3-1cfb20996fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "folium_map" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "993ce0d908ba89f3ea2afcdec012b379878997c9398eb0fd49ef9cfb39647805", + "notebook_path": "Geopy/Geopy_Display_markers_on_map.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb b/Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb new file mode 100644 index 0000000000..acf457efad --- /dev/null +++ b/Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb @@ -0,0 +1,358 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Geopy - Display route itinerary between two locations\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #geopy #folium #polyline #googlemaps #itinerary #navigation" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "7ad3366d-e35f-4091-8ec0-b9717c6e5a9c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "df1a9dc8-1b97-4830-96cc-3dc4aec3b79d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to display a route initnerary between two locations using `geopy`, `folium`, `polyline` and Google Maps API." + ] + }, + { + "cell_type": "markdown", + "id": "9537e01b-e755-4371-904d-82121bbfdec8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Nominatim geocoder for OpenStreetMap data](https://geopy.readthedocs.io/en/stable/#nominatim)\n", + "- [Folium Mapping: Displaying Markers on a Map](https://towardsdatascience.com/folium-mapping-displaying-markers-on-a-map-6bd56f3e3420)\n", + "- [PyPI polyline](https://pypi.org/project/polyline)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from geopy.geocoders import Nominatim\n", + "import polyline\n", + "import folium\n", + "import naas\n", + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "Pre-requisite: \n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Make sure to enable \"Routes API\" in the \"Additional APIs\" section in the google cloud console (https://console.cloud.google.com/apis/credentials/key/).\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key. The key is retrieved from the secret variable using the Naas secret manager.\n", + "- `origin`: This variable represents the starting location for a journey.\n", + "- `destination`: This variable indicates the end location or destination for a journey.\n", + "\n", + "\n", + "**Optional**\n", + "\n", + "- `zoom_start`: This parameter sets the initial zoom level on the map. A value of 0 indicates the lowest level of zoom." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") or \"YOUR_GCP_MAP_API_KEY\" # Read API key from the secret variable GCP_MAP_API_KEY\n", + "origin = \"Bulgaria Blvd 69, 1404 Manastirski Livadi, Sofia, Bulgaria\"\n", + "destination = \"Sofia, 1680, Bulgaria\"\n", + "\n", + "# Optional\n", + "zoom_start = 12" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4f4d4874-08b8-4abb-9017-eb0c1b9235b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4628d118-b59d-4c16-9d27-4e07e91ef81a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "geolocator = Nominatim(user_agent=\"geoapiExercises\")\n", + "location1 = geolocator.geocode(origin)\n", + "location2 = geolocator.geocode(destination)" + ] + }, + { + "cell_type": "markdown", + "id": "08bf53f8-5418-4b44-be4f-0c3ec8340b6a", + "metadata": { + "execution": { + "iopub.execute_input": "2023-07-31T10:09:18.531652Z", + "iopub.status.busy": "2023-07-31T10:09:18.531335Z", + "iopub.status.idle": "2023-07-31T10:09:18.536237Z", + "shell.execute_reply": "2023-07-31T10:09:18.535480Z", + "shell.execute_reply.started": "2023-07-31T10:09:18.531612Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get points between the two locations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fdbc4ab2-ad3d-41c9-acf2-0ee7956ba363", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get points using Google Maps API (Routes/Directions)\n", + "url = f\"https://maps.googleapis.com/maps/api/directions/json?origin={location1.latitude},{location1.longitude}&destination={location2.latitude},{location2.longitude}&key={api_key}\"\n", + "response = requests.get(url)\n", + "data = response.json()\n", + "points = data[\"routes\"][0][\"overview_polyline\"][\"points\"]\n", + "\n", + "# use polyline to decode points\n", + "decoded_points = polyline.decode(points) " + ] + }, + { + "cell_type": "markdown", + "id": "5f0e7b46-14c6-402d-9e46-9c1c94b3bba4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create a map centered around the two locations\n", + "avg_latitude = (location1.latitude + location2.latitude) / 2\n", + "avg_longitude = (location1.longitude + location2.longitude) / 2\n", + "map_routes = folium.Map(location=[avg_latitude, avg_longitude], zoom_start=zoom_start)\n", + "\n", + "# Add markers for the specified locations\n", + "folium.Marker([location1.latitude, location1.longitude], popup=folium.Popup(location1.address)).add_to(map_routes)\n", + "folium.Marker([location2.latitude, location2.longitude], popup=folium.Popup(location2.address)).add_to(map_routes)\n", + "\n", + "# Create route\n", + "folium.PolyLine(locations=decoded_points, color='blue').add_to(map_routes)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4af1598f-b4fe-4da2-94f3-1cfb20996fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "map_routes" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1c652e1306432bebf00b0ff980057b2b61e37ea66a9f78d36593e441fadda873", + "notebook_path": "Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Geopy/Geopy_Get_address_from_coordinates.ipynb b/Geopy/Geopy_Get_address_from_coordinates.ipynb new file mode 100644 index 0000000000..f4873b94e2 --- /dev/null +++ b/Geopy/Geopy_Get_address_from_coordinates.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Geopy - Get address from coordinates\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #geopy #coordinates #address #navigation #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "e4af7f8b-db28-41dd-86a9-0b3b02e1048b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to utilize Geopy to convert a location(latitude and longitude) to its corresponding address." + ] + }, + { + "cell_type": "markdown", + "id": "164ff216-7e90-4c3a-bfd3-d8304e0068fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Nominatim geocoder for OpenStreetMap data](https://geopy.readthedocs.io/en/stable/#nominatim)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from geopy.geocoders import Nominatim" + ] + }, + { + "cell_type": "markdown", + "id": "cdb03c8b-52c2-424e-a63c-a4dad7c572b5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `latitude`: This variable represents the position of a point on Earth's surface in terms of degrees north or south of the equator.\n", + "- `longitude`: This variable represents the position of a point on Earth's surface in terms of degrees east or west of the Prime Meridian. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# The variables `latitude` and `longitude` are utilized to store geographical coordinates.\n", + "latitude = 42.6641527\n", + "longitude = 23.2881605" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "fe2c64dd-0f04-4f2b-9e05-e2761574368a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get address" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "geolocator = Nominatim(user_agent=\"geopy_exercise\")\n", + "location = geolocator.reverse((latitude, longitude), exactly_one=True, language=\"en\")\n", + "address = location.address if location else \"Address not found\"" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bf144bb-6c2e-40f7-9eb1-493a95d3fc61", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Address:\", address)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "63fd46f3d47b86684983e648b8ce1b52533ad5e25df8521927f614d42973c09e", + "notebook_path": "Geopy/Geopy_Get_address_from_coordinates.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Geopy/Geopy_Get_coordinates_from_address.ipynb b/Geopy/Geopy_Get_coordinates_from_address.ipynb new file mode 100644 index 0000000000..fc3bd27cd0 --- /dev/null +++ b/Geopy/Geopy_Get_coordinates_from_address.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Geopy - Get coordinates from address\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #geopy #coordinates #address #navigation #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "99803030-203f-4abd-b73b-f912fba4ee4f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to utilize Geopy to the coordinates(longitude and latitude) of a given address." + ] + }, + { + "cell_type": "markdown", + "id": "931353f2-ff13-444a-8a66-2c875f79303e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Nominatim geocoder for OpenStreetMap data](https://geopy.readthedocs.io/en/stable/#nominatim)" + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from geopy.geocoders import Nominatim" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `address`: Address to be used to get coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "address = \"Bulgaria Blvd 69, 1404 Manastirski Livadi, Sofia, Bulgaria\"" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "d10c3515-bf08-43ea-aeb7-6a024c899d2c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get location" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "geolocator = Nominatim(user_agent=\"geopy_exercise\")\n", + "location = geolocator.geocode(address)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da518339-2db2-44f6-8596-2bd1c2c3583f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if location:\n", + " print(\"Latitude:\", location.latitude)\n", + " print(\"Longitude:\", location.longitude)\n", + "else:\n", + " print(\"Location not found.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e58363280d4ff558e10c90bb9294d8ad7f0467db115d5dca1be059dc911939f5", + "notebook_path": "Geopy/Geopy_Get_coordinates_from_address.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb b/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb index 0dbe6b1b31..8072fae37f 100644 --- a/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb +++ b/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Add new issues as page in Notion database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "3dba1c73-548d-4008-82ad-fdb2cb376771", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Add_new_member_to_team.ipynb b/GitHub/GitHub_Add_new_member_to_team.ipynb index 93c044a4cf..09135659e3 100644 --- a/GitHub/GitHub_Add_new_member_to_team.ipynb +++ b/GitHub/GitHub_Add_new_member_to_team.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Add new member to team\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)\n" ] }, + { + "cell_type": "markdown", + "id": "329fff2a-3bbd-40d1-9ad7-7a4a2d8e87dd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb b/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb index 01286b4d50..7d40a4ba35 100644 --- a/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb +++ b/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Add or update team membership for a user\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "f2b628d7-7b44-4648-a2fc-c5b91adcd562", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-26 (Created: 2023-04-18)" + ] + }, { "cell_type": "markdown", "id": "479957e9-1b4e-4723-95f6-68ec794e6910", diff --git a/GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb b/GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb new file mode 100644 index 0000000000..d35e2fb321 --- /dev/null +++ b/GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb @@ -0,0 +1,423 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "injured-evolution", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "substantial-decline", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - Clone open branches from repository on my local\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "00619b69-5ce8-417a-b8b1-c81af6342f9c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #snippet #operations #repository #efficiency" + ] + }, + { + "cell_type": "markdown", + "id": "1446840e-74d1-4c76-afb6-4752a6b4a0c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "7031048f-6ff0-4d21-b322-a75f72f5c311", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "54ad3d5e-10a0-4cff-bab7-e4f20cfaaeeb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook streamlines your workflow by cloning open branches from a GitHub repository to your local machine, renaming the repository to match the branch name, and switching to the respective branch. This approach enhances efficiency by enabling you to work on multiple branches simultaneously without the need to constantly switch, thus avoiding conflicts. Before using this on Naas, ensure your SSH is properly configured (you can use the Naas_Configure_SSH.ipynb template for this)." + ] + }, + { + "cell_type": "markdown", + "id": "2bf7fc9a-24f6-4a40-a85c-e564df9f915b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub Documentation - Cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository)" + ] + }, + { + "cell_type": "markdown", + "id": "ba4e2faf-9cbd-4405-b3a5-09ff543951e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "e1db5a47-1aef-4cb8-b939-4341cf6d7007", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89dfc24e-90e9-43b6-a5a9-329d404b58ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import naas\n", + "import pandas as pd\n", + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "e295de8b-d6b2-447d-aaca-11aa8adb0fe7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: [Generate a personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)\n", + "- `repo_url`: URL of the repository to clone\n", + "- `cron`: cron params for naas scheduler\n", + "- `output_dir`: Output directory to clone repo. If None, we will create a folder with the name of the repo" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "61e258bc-250b-4013-9bc3-f26a198ce405", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "repo_url = \"https://github.com/jupyter-naas/awesome-notebooks\"\n", + "token = naas.secret.get(name=\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "cron = \"0 * * * *\"\n", + "\n", + "# Outputs\n", + "output_dir = None" + ] + }, + { + "cell_type": "markdown", + "id": "0002a818-8861-436c-a34d-5eaee3993d2f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "e4bcfce7-c1e9-4463-a8f5-0770fe5d141e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get branches with open PRs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "143bee7f-aae8-4a7d-80f8-fd0f60fc1089", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_branches_with_open_prs(\n", + " token,\n", + " repo_url\n", + "):\n", + " # Init\n", + " data = []\n", + " owner = repo_url.split(\"https://github.com/\")[-1].split(\"/\")[0]\n", + " repository = repo_url.split(f\"https://github.com/{owner}/\")[-1].split(\"/\")[0]\n", + " \n", + " # Requests\n", + " url = f\"https://api.github.com/repos/{owner}/{repository}/pulls\"\n", + " headers = {\"Authorization\": f\"token {token}\"}\n", + " response = requests.get(url, headers=headers)\n", + " pulls = response.json()\n", + " \n", + " # Data\n", + " for pull in pulls:\n", + " branch = pull['head']['ref']\n", + " creator = pull['user']['login']\n", + " creation_date = pull['created_at']\n", + " \n", + " data.append({\n", + " 'branch': branch,\n", + " 'creator': creator,\n", + " 'creation_date': creation_date\n", + " })\n", + " \n", + " df = pd.DataFrame(data)\n", + " \n", + " # Sort values\n", + " if len(df) > 0:\n", + " df = df.sort_values(by=\"creation_date\", ascending=False)\n", + " return df.reset_index(drop=True)\n", + "\n", + "branches_with_open_prs = get_branches_with_open_prs(token, repo_url)\n", + "print(\"Branches with open PRs:\", len(branches_with_open_prs))\n", + "branches_with_open_prs.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "e6e998de-aef7-457f-8dd5-3b31694b09b5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get branches already cloned on my local" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1052f15-38d4-4ede-bc6e-476402458eca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_all_folders(directory):\n", + " if not directory:\n", + " directory = '/home/ftp/'\n", + " folders = []\n", + " for item in os.listdir(directory):\n", + " item_path = os.path.join(directory, item)\n", + " if os.path.isdir(item_path):\n", + " folders.append(item_path.split(\"/\")[-1])\n", + " return sorted(folders)\n", + "\n", + "folders = get_all_folders(output_dir)\n", + "print('Branches in local:', len(folders))\n", + "folders[-1]" + ] + }, + { + "cell_type": "markdown", + "id": "37eee78d-2fb5-4bf8-a362-6bcc56e6469c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Identify missing branches on local" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9fe81198-0135-4b18-988c-29ac6988e1d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "missing_branches = [branch for branch in branches_with_open_prs['branch'] if not branch in folders]\n", + "print(\"Missing branches not cloned on my local machine:\", len(missing_branches))\n", + "missing_branches" + ] + }, + { + "cell_type": "markdown", + "id": "311f8d12-b0d1-47fa-84a0-e31297f247fd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "1b382dcd-104c-42af-a822-202afdc46775", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Clone repository & Switch branch\n", + "Clone the repository from the given URL and create a local copy of it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e8876dc2-0af8-48d7-b6f6-91df06d288ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def clone_branch(repo_url, output_dir, branch_name):\n", + " # Get GitHub owner and repo name\n", + " owner = repo_url.split(\"https://github.com/\")[-1].split(\"/\")[0]\n", + " repo_name = repo_url.split(\"/\")[-1]\n", + " \n", + " # Add repo name with .git extension\n", + " if not repo_name.endswith(\".git\"):\n", + " repo_name = f\"{repo_name}.git\"\n", + " repo = f\"{owner}/{repo_name}\"\n", + " \n", + " # Init output dir\n", + " if not output_dir:\n", + " output_dir = branch_name\n", + " else:\n", + " output_dir = os.path.join(output_dir, branch_name)\n", + " \n", + " # Create output directoy\n", + " if not os.path.exists(output_dir):\n", + " os.makedirs(output_dir)\n", + " \n", + " # GitHub Action\n", + " !cd '{output_dir}'\n", + " !git clone git@github.com:'{repo}' '{output_dir}'\n", + " print(f\"✅ GitHub repo cloned: {output_dir}\")\n", + " return output_dir\n", + "\n", + "def switch_branch(output_dir, branch_name):\n", + " # GitHub action\n", + " !cd '{output_dir}' && git checkout '{branch_name}'\n", + " print(f\"✅ Switched to branch '{branch_name}'\")\n", + " \n", + "for branch_name in missing_branches:\n", + " # Clone repo\n", + " output_dir_repo = clone_branch(repo_url, output_dir, branch_name)\n", + " \n", + " # Switch branch\n", + " switch_branch(output_dir_repo, branch_name)" + ] + }, + { + "cell_type": "markdown", + "id": "82edaad5-ec0a-4e73-aae0-25de4e6f75be", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Schedule the notebook" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb3911c6-ac74-42e7-a222-1e90cc7fa13d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b8cc352b30977a358e1bb8128a3462f0e6385185fe45c76b5b5a83a702223d3f", + "notebook_path": "GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "toc-autonumbering": false, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Clone_repository.ipynb b/GitHub/GitHub_Clone_repository.ipynb index c389c67566..27f201e298 100644 --- a/GitHub/GitHub_Clone_repository.ipynb +++ b/GitHub/GitHub_Clone_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Clone repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4d7b870f-eee6-4865-8a04-0c846da984fd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-09 (Created: 2022-12-07)" + ] + }, { "cell_type": "markdown", "id": "2bf7fc9a-24f6-4a40-a85c-e564df9f915b", diff --git a/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb b/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb index bf759bab9e..0c5e68a236 100644 --- a/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb +++ b/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Clone repository and switch branch\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "9952b204-5d4c-44af-8b55-028baed4bafb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-09 (Created: 2023-05-09)" + ] + }, { "cell_type": "markdown", "id": "33b77a09-e96c-4849-907d-9bbdc40e388e", @@ -53,7 +64,7 @@ "tags": [] }, "source": [ - "**Description:** This notebook explains how to clone a repository from GitHub and switch to a specific branch." + "**Description:** This notebook clones a branche from a GitHub repository to your local machine, rename the repository with the branch name, and switch to it to the designated branch. This approach enhances efficiency by enabling you to work on multiple branches simultaneously without the need to constantly switch, thus avoiding conflicts. Before using this on Naas, ensure your SSH is properly configured (you can use the Naas_Configure_SSH.ipynb template for this)." ] }, { @@ -181,6 +192,8 @@ " # Init output dir\n", " if not output_dir:\n", " output_dir = branch_name\n", + " else:\n", + " output_dir = os.path.join(output_dir, branch_name)\n", " \n", " # Create output directoy\n", " if not os.path.exists(output_dir):\n", diff --git a/GitHub/GitHub_Close_issue.ipynb b/GitHub/GitHub_Close_issue.ipynb index 78e4a462f5..ed46353efc 100644 --- a/GitHub/GitHub_Close_issue.ipynb +++ b/GitHub/GitHub_Close_issue.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Close issue\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "29065efd-6af9-4c53-a136-280f74c3eeb5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-26 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "4e3aadfe-6d61-41b9-80f2-a790718018ee", diff --git a/GitHub/GitHub_Create_Repo.ipynb b/GitHub/GitHub_Create_Repo.ipynb index aa82c119ba..42059e1e56 100644 --- a/GitHub/GitHub_Create_Repo.ipynb +++ b/GitHub/GitHub_Create_Repo.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# GitHub - Create Repo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Kanishk Pareek](https://in.linkedin.com/in/kanishkpareek/)" ] }, + { + "cell_type": "markdown", + "id": "a2472b8d-552b-42c8-890a-48d1330a2344", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Create_an_issue_comment.ipynb b/GitHub/GitHub_Create_an_issue_comment.ipynb index 0d34a798ef..ea21a0a1f8 100644 --- a/GitHub/GitHub_Create_an_issue_comment.ipynb +++ b/GitHub/GitHub_Create_an_issue_comment.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Create an issue comment\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "cccd65c2-f097-429b-a9a4-4ff6d7953f10", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-26 (Created: 2023-05-26)" + ] + }, { "cell_type": "markdown", "id": "dc9481f3-d140-455d-925a-c47a1b41307c", diff --git a/GitHub/GitHub_Create_issue.ipynb b/GitHub/GitHub_Create_issue.ipynb index 94f954061c..42c0ef09be 100644 --- a/GitHub/GitHub_Create_issue.ipynb +++ b/GitHub/GitHub_Create_issue.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Create issue\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "90744196-801e-48ed-a14d-9f05bebafe1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb b/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb index cb65a574a9..6726893ff5 100644 --- a/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb +++ b/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# GitHub - Create leaderboard of contributors\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Suhas B](https://www.linkedin.com/in/suhasbrao/)\n" ] }, + { + "cell_type": "markdown", + "id": "53ded090-2e67-419c-9f85-e6a186d7fa95", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-01)" + ] + }, { "cell_type": "markdown", "id": "6720b93e-aa24-4b59-9e96-f15d64ac3436", diff --git a/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb b/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb index f3c72ca48d..58198d6818 100644 --- a/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb +++ b/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# GitHub - Create newsletter based on repository activity\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Suhas B](https://www.linkedin.com/in/suhasbrao/)" ] }, + { + "cell_type": "markdown", + "id": "d6de8a3e-f043-49c5-9e08-027c8927eeb5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Create_pull_request.ipynb b/GitHub/GitHub_Create_pull_request.ipynb index bad01f4977..fc9060fd27 100644 --- a/GitHub/GitHub_Create_pull_request.ipynb +++ b/GitHub/GitHub_Create_pull_request.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Create pull request\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bbeeaaa2-0712-48c7-ac05-09ac8c42ff9d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-09)" + ] + }, { "cell_type": "markdown", "id": "ae0b030c-6330-4622-9cb3-7316923b6bbd", diff --git a/GitHub/GitHub_Create_repository_on_personal_account.ipynb b/GitHub/GitHub_Create_repository_on_personal_account.ipynb index 69b2604a64..99aa762c62 100644 --- a/GitHub/GitHub_Create_repository_on_personal_account.ipynb +++ b/GitHub/GitHub_Create_repository_on_personal_account.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# GitHub - Create repository on personal account\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Kanishk Pareek](https://in.linkedin.com/in/kanishkpareek/)" ] }, + { + "cell_type": "markdown", + "id": "1c3679e7-9be4-484e-a6f9-5200d606e2d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Delete_an_issue_comment.ipynb b/GitHub/GitHub_Delete_an_issue_comment.ipynb index c9719dc40d..7135b3a59b 100644 --- a/GitHub/GitHub_Delete_an_issue_comment.ipynb +++ b/GitHub/GitHub_Delete_an_issue_comment.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Delete an issue comment\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "64a14c12-ca0e-481d-bc36-73c0ebb87c02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-26 (Created: 2023-05-26)" + ] + }, { "cell_type": "markdown", "id": "dc9481f3-d140-455d-925a-c47a1b41307c", diff --git a/GitHub/GitHub_Download_Excel_file_from_URL.ipynb b/GitHub/GitHub_Download_Excel_file_from_URL.ipynb index 6681b67cfd..684ce95904 100644 --- a/GitHub/GitHub_Download_Excel_file_from_URL.ipynb +++ b/GitHub/GitHub_Download_Excel_file_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Download Excel file from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "2eba208d-a82f-45ca-8b5a-5a9d293a175a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-29)" + ] + }, { "cell_type": "markdown", "id": "b1d4be05-ee3f-459c-9501-704cffe7707a", diff --git a/GitHub/GitHub_Download_file_from_url.ipynb b/GitHub/GitHub_Download_file_from_url.ipynb index 0b5f8a08cd..25af8c643c 100644 --- a/GitHub/GitHub_Download_file_from_url.ipynb +++ b/GitHub/GitHub_Download_file_from_url.ipynb @@ -34,7 +34,7 @@ }, "source": [ "# GitHub - Download file from url\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -66,6 +66,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "6dd4e028-c1c6-469d-9852-2f1ca98a5e55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Download_repository_from_URL.ipynb b/GitHub/GitHub_Download_repository_from_URL.ipynb index 8ff014f74c..830787840a 100644 --- a/GitHub/GitHub_Download_repository_from_URL.ipynb +++ b/GitHub/GitHub_Download_repository_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Download repository from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "7df8099f-1e92-405f-9598-f2f9346e4c08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-10)" + ] + }, { "cell_type": "markdown", "id": "55aebec7-d8db-4ad1-8fa4-136e546ce940", diff --git a/GitHub/GitHub_Follow_stargazers_trend.ipynb b/GitHub/GitHub_Follow_stargazers_trend.ipynb index f94e21849e..558c8836b5 100644 --- a/GitHub/GitHub_Follow_stargazers_trend.ipynb +++ b/GitHub/GitHub_Follow_stargazers_trend.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Follow stargazers trend\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "d816ac9d-cf78-4185-a501-e0182ba6d1ef", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb b/GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb new file mode 100644 index 0000000000..8482f10b35 --- /dev/null +++ b/GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb @@ -0,0 +1,352 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "717048ed-d26c-4569-b295-e75c349bf21d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "432caf78-c690-40cf-a65e-529c6f00cb3b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - Get DataFrame with issue estimate from project view\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "6e203af2-4d97-41a8-9127-8b96ca922731", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #dataframe #beautifulsoup #projectview #scraping #python" + ] + }, + { + "cell_type": "markdown", + "id": "d8b98120-6757-4306-a58d-9f07d839dd19", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "e365185d-9d62-4874-90b7-cbca6d882586", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "c2c462a0-cd8d-48b0-a114-fb4e061c8324", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to retrieve a dataframe containing issue estimates from the project view using BeautifulSoup. Since GitHub's API doesn't offer a way to fetch issue estimates directly, this method allows us to obtain these estimates and generate statistics by assignee and iteration. To use this template, you must create a view with columns in the following order:\n", + "- Issue Title\n", + "- Assginees\n", + "- Estimate\n", + "- LinkedIn pull request" + ] + }, + { + "cell_type": "markdown", + "id": "f619128e-0350-4110-bb6d-7681c2f477c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [BeautifulSoup Documentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/)\n", + "- [GitHub Project View](https://help.github.com/en/github/managing-your-work-on-github/about-project-boards)" + ] + }, + { + "cell_type": "markdown", + "id": "c96862b4-a30a-4b61-a64f-2e0ce1f3a355", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "67f41d1e-9a29-43a3-b17c-5987aa73535a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c5974e5-adfb-439f-84ed-ce26aac061c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "import pandas as pd\n", + "from IPython.display import display" + ] + }, + { + "cell_type": "markdown", + "id": "296bbef1-fd06-4044-84d4-bde345a070ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `url`: URL of the project view page\n", + "- `assignee`: Define the name of the assignee for filtering" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5828a627-685c-4a53-84f7-2ab6bc58551d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "url = \"https://github.com/orgs/jupyter-naas/projects/10/views/20\"\n", + "assignee_name = None #If the variable is equal to None then the function will not filter the dataframe" + ] + }, + { + "cell_type": "markdown", + "id": "c3792947-66da-4514-845e-976c2a476ef8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "8f9ff22d-f923-47b8-92cf-6b7503576ee5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data from project view" + ] + }, + { + "cell_type": "markdown", + "id": "036d4552-c7f8-4d8b-96e9-8fb9777d77ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function returns organised data from the project view soup using BeautifulSoup." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ac51224-39ad-4a49-b5e3-568166939879", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Init\n", + "data = []\n", + "\n", + "# Get HTML from URL\n", + "response = requests.get(url)\n", + "html = response.text\n", + "\n", + "# Parse HTML\n", + "soup = BeautifulSoup(html, \"html.parser\")\n", + "\n", + "# Get cards\n", + "elements = soup.find_all(\"script\", {\"id\": \"memex-items-data\"})\n", + "\n", + "# Iterate over the elements and split their text\n", + "for element in elements:\n", + " text = element.text\n", + " split_text = text.split('{\"contentId\":')[1:] # Split the text as needed\n", + " \n", + " # Split the soup for each element\n", + " for s in split_text:\n", + " s = s.split('\"memexProjectColumnId\":')[1:]\n", + " # Get the values using splits\n", + " title = s[0].split('\"raw\":\"')[-1].split('\"')[0]\n", + " issue_number = s[0].split('\"number\":')[-1].split(',')[0]\n", + " assignees = s[1].split('\"login\":\"')[-1].split('\"')[0]\n", + " PR_url = s[2].split('\"url\":\"')[-1].split('\"')[0]\n", + " estimate = s[3].split('\"value\":')[-1].split('}')[0]\n", + " \n", + " # Handle possible error\n", + " if not str(issue_number).isdigit():\n", + " issue_number = \"❌ Error\"\n", + " \n", + " # Create a dictionary with the values\n", + " tmp = {\n", + " \"Title\": title,\n", + " \"Issue Number\": issue_number,\n", + " \"Assignees\": assignees,\n", + " \"PR URL\": PR_url,\n", + " \"Estimate\": estimate,\n", + " }\n", + " # Append the dictionary to the data list\n", + " data.append(tmp)\n", + " \n", + "# Create a DataFrame from the data list\n", + "df_init = pd.DataFrame(data)\n", + "df_init" + ] + }, + { + "cell_type": "markdown", + "id": "503c93d1-e7bc-475a-b544-78cd83fb4102", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "fb9c604b-f038-4cd8-9468-6d329974e4fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Creating and customising a dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "615d723f-4c3d-4a69-bf1a-e60d3ef7751c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = df_init.copy()\n", + "\n", + "# Convert 'Estimate' column to numerical data type\n", + "df['Estimate'] = df['Estimate'].str.replace(\"null\", \"0\")\n", + "df['Estimate'] = pd.to_numeric(df['Estimate'], errors='coerce').astype(int)\n", + "\n", + "# Check if assignee is not None before filtering\n", + "if assignee_name is not None:\n", + " # Filter by assignee\n", + " filtered_df = df[df['Assignees'] == assignee_name].reset_index(drop=True)\n", + "else:\n", + " # Use the original DataFrame without filtering\n", + " filtered_df = df\n", + "\n", + "# Format PR URL as clickable link\n", + "filtered_df.loc[:, 'PR URL'] = filtered_df['PR URL'].apply(lambda x: f'{x}')\n", + "\n", + "# Apply custom styling to the DataFrame\n", + "styled_df = filtered_df.style \\\n", + " .set_properties(**{'max-width': '200px'}) \\\n", + " .background_gradient(subset=['Estimate'], cmap='Blues') \\\n", + " .highlight_null(color='lightgrey') \\\n", + " .highlight_max(subset=['Estimate'], color='lightgreen') \\\n", + " .highlight_min(subset=['Estimate'], color='lightcoral')\n", + "styled_df" + ] + }, + { + "cell_type": "markdown", + "id": "a9887dae-0cb4-4a10-bcf6-2c250b7cb12f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "320908ffbe4931be40be2e749cd53cef0ae7448e70673b5b014314e7535adf59", + "notebook_path": "GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb b/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb index d68bde2462..47c7956ff3 100644 --- a/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb +++ b/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get Traffic Clones on repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4ab40716-6c01-450f-87ef-d8ae313d8251", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-08)" + ] + }, { "cell_type": "markdown", "id": "c655a064-0d03-4a2c-b72d-91cd42007165", diff --git a/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb b/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb index c9cc825e70..93c8ceaf99 100644 --- a/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb +++ b/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get Traffic Views on repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2be38eab-d4f3-4e45-ae55-1542ff64f328", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-16)" + ] + }, { "cell_type": "markdown", "id": "c95d4387-2aeb-491c-bb18-0922b2d479ab", diff --git a/GitHub/GitHub_Get_a_repository.ipynb b/GitHub/GitHub_Get_a_repository.ipynb index 99aaeb672f..d8ab96d1a6 100644 --- a/GitHub/GitHub_Get_a_repository.ipynb +++ b/GitHub/GitHub_Get_a_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get a repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "fc412eb3-e862-405b-8780-7bdc6684bc56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-05)" + ] + }, { "cell_type": "markdown", "id": "df640666-f775-4fad-915e-d60907367948", diff --git a/GitHub/GitHub_Get_active_projects.ipynb b/GitHub/GitHub_Get_active_projects.ipynb index d2155a6650..803c4b13a5 100644 --- a/GitHub/GitHub_Get_active_projects.ipynb +++ b/GitHub/GitHub_Get_active_projects.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get active projects\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "b276d183-1d1c-4ae2-ba75-5bc720c8e5db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_commits_from_repository.ipynb b/GitHub/GitHub_Get_commits_from_repository.ipynb index 463a6e1ad3..a486b8adf0 100644 --- a/GitHub/GitHub_Get_commits_from_repository.ipynb +++ b/GitHub/GitHub_Get_commits_from_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get commits from repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b7263972-b84b-4013-811e-0420db437d40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-09)" + ] + }, { "cell_type": "markdown", "id": "e6cf788e-e4c6-4671-8a0d-cfd905f4c70d", diff --git a/GitHub/GitHub_Get_commits_history_from_file_path.ipynb b/GitHub/GitHub_Get_commits_history_from_file_path.ipynb new file mode 100644 index 0000000000..a556772fb1 --- /dev/null +++ b/GitHub/GitHub_Get_commits_history_from_file_path.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b96a1e6d-e18e-4b90-9192-2aa111d694a2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "1e0b104c-3f5c-4557-810c-510ad5c01aed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - List commits history from file path\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "62bb926c-e38e-45fe-82fb-46ee85a7c33e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #commits #history #snippet #operations #tracking" + ] + }, + { + "cell_type": "markdown", + "id": "bed3a749-ba5e-405f-a93b-696e583bb499", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "0f6fc8b8-47e5-4ad7-9c69-5067c4fa5298", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-03 (Created: 2023-07-03)" + ] + }, + { + "cell_type": "markdown", + "id": "e6cf788e-e4c6-4671-8a0d-cfd905f4c70d", + "metadata": { + "execution": { + "iopub.execute_input": "2023-01-09T09:02:15.821493Z", + "iopub.status.busy": "2023-01-09T09:02:15.821264Z", + "iopub.status.idle": "2023-01-09T09:02:15.831949Z", + "shell.execute_reply": "2023-01-09T09:02:15.831043Z", + "shell.execute_reply.started": "2023-01-09T09:02:15.821470Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrateshow to retrieve a list of commits containing a file path that exists in master branch." + ] + }, + { + "cell_type": "markdown", + "id": "10582a10-1618-46f1-837b-9fcc8c0857dc", + "metadata": { + "execution": { + "iopub.execute_input": "2023-01-09T09:02:15.821493Z", + "iopub.status.busy": "2023-01-09T09:02:15.821264Z", + "iopub.status.idle": "2023-01-09T09:02:15.831949Z", + "shell.execute_reply": "2023-01-09T09:02:15.831043Z", + "shell.execute_reply.started": "2023-01-09T09:02:15.821470Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub - List commits parameters](https://docs.github.com/fr/rest/commits/commits?apiVersion=2022-11-28#list-commits--parameters)" + ] + }, + { + "cell_type": "markdown", + "id": "3699bd74-3eba-4ebd-91a3-12ee02ddeb63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "5b0ec3ef-d1bb-496d-8c78-90539991de3b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e802bdc0-6a85-4dac-8ef9-bba364e5d8c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "5c45ef2a-b8b7-4f26-960c-880f20952e95", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: [Generate a personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)\n", + "- `owner`: The account owner of the repository. The name is not case sensitive.\n", + "- `repository`: The name of the repository without the .git extension. The name is not case sensitive.\n", + "- `file_path`: Only commits containing this file path will be returned." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a556e978-9376-4379-bef5-73d2738eb6c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "token = naas.secret.get(name=\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "owner = \"jupyter-naas\" # Replace with the owner/username of the repository\n", + "repository = \"awesome-notebooks\" # Replace with the name of the repository\n", + "file_path = \"generate_readme.ipynb\" # Replace with the path to the file in the repository" + ] + }, + { + "cell_type": "markdown", + "id": "0f2b7704-60e7-4e97-a1f9-b09779e7130a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "bb7f0cb3-dfe6-4031-8c10-77d1610184fd", + "metadata": { + "execution": { + "iopub.execute_input": "2022-01-27T15:20:01.862544Z", + "iopub.status.busy": "2022-01-27T15:20:01.862252Z", + "iopub.status.idle": "2022-01-27T15:20:01.865361Z", + "shell.execute_reply": "2022-01-27T15:20:01.864765Z", + "shell.execute_reply.started": "2022-01-27T15:20:01.862513Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### List commits history from file path" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "334fee0f-2c06-41b0-b54c-56f78e2ec4f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_commits(token, owner, repository, file_path):\n", + " # Requests\n", + " url = f\"https://api.github.com/repos/{owner}/{repository}/commits?path={file_path}\"\n", + " headers = {\"Authorization\": f\"token {token}\"}\n", + " response = requests.get(url, headers=headers)\n", + " \n", + " # Response\n", + " res = requests.get(url)\n", + " if res.status_code == 200:\n", + " return res.json()\n", + " else:\n", + " print(res.json())\n", + " return {}\n", + "\n", + "commits = list_commits(token, owner, repository, file_path)\n", + "print(\"Commits found:\", len(commits))" + ] + }, + { + "cell_type": "markdown", + "id": "f4087b7c-0347-45ee-95c4-b547f24b1bc2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "8d5c0e98-bf60-48ea-8764-d1b118c935bb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display results" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "a6bd32bd-0230-45a4-993f-92529c71a1bf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(commits) > 0:\n", + " created_at = commits[-1]['commit']['committer']['date']\n", + " updated_at = commits[0]['commit']['committer']['date']\n", + " print(\"File first commit date:\", created_at)\n", + " print(\"File last commit date:\", updated_at)\n", + "else:\n", + " print(\"File not found or no commits found for the file.\")\n", + "commits[0]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "4f2312393c84b6863a931e5e5af8c99bd0ea48b34dfeda84093855cca17b510e", + "notebook_path": "GitHub/GitHub_Get_commits_history_from_file_path.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb b/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb index 88ef88d37f..33e7138c3f 100644 --- a/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb +++ b/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get commits ranking from repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "259eb680-400b-4421-850e-4068b72ee0ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_files_added_on_pull_request.ipynb b/GitHub/GitHub_Get_files_added_on_pull_request.ipynb index bfca4dde00..9ef76a470f 100644 --- a/GitHub/GitHub_Get_files_added_on_pull_request.ipynb +++ b/GitHub/GitHub_Get_files_added_on_pull_request.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get files added on pull request\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2c09981f-858e-4e02-986b-044aad679b37", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-13)" + ] + }, { "cell_type": "markdown", "id": "6f626969-d13e-4917-abd3-ddf68edf3f1c", diff --git a/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb b/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb index 4e558a4660..e00189bca4 100644 --- a/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb +++ b/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get files changed on pull request\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4e34cdc8-78b0-4219-828e-0fde03b5521c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-09)" + ] + }, { "cell_type": "markdown", "id": "99365514-8f30-4773-aeff-244cc6509f90", diff --git a/GitHub/GitHub_Get_issues_from_repo.ipynb b/GitHub/GitHub_Get_issues_from_repo.ipynb index f35933100f..95c2d02f85 100644 --- a/GitHub/GitHub_Get_issues_from_repo.ipynb +++ b/GitHub/GitHub_Get_issues_from_repo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get issues from repo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "280cfe16-e634-4467-8d00-93d3575870c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_most_starred_repos.ipynb b/GitHub/GitHub_Get_most_starred_repos.ipynb index c12f279f91..11f079bd63 100644 --- a/GitHub/GitHub_Get_most_starred_repos.ipynb +++ b/GitHub/GitHub_Get_most_starred_repos.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# GitHub - Get most starred repos\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190)" ] }, + { + "cell_type": "markdown", + "id": "6142adaa-cdeb-4f01-a57a-6a16084ec466", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_open_pull_requests.ipynb b/GitHub/GitHub_Get_open_pull_requests.ipynb index 3cb7c1579f..4abb5017c9 100644 --- a/GitHub/GitHub_Get_open_pull_requests.ipynb +++ b/GitHub/GitHub_Get_open_pull_requests.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get open pull requests\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "0355dd04-73e9-4b14-8ce2-59f4dfa9986e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_profile_from_user.ipynb b/GitHub/GitHub_Get_profile_from_user.ipynb index 3ba10c564e..c1c130fd32 100644 --- a/GitHub/GitHub_Get_profile_from_user.ipynb +++ b/GitHub/GitHub_Get_profile_from_user.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get profile from user\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "8b19baa3-f323-4c42-87ea-d99663ca4875", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_profiles_from_teams.ipynb b/GitHub/GitHub_Get_profiles_from_teams.ipynb index 2b9d4003c7..4fd65e0004 100644 --- a/GitHub/GitHub_Get_profiles_from_teams.ipynb +++ b/GitHub/GitHub_Get_profiles_from_teams.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get profiles from teams\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "075d1014-a1f4-4346-9cab-491021ae71fa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Get_team_membership_for_a_user.ipynb b/GitHub/GitHub_Get_team_membership_for_a_user.ipynb index e7cb6883a0..93421bbe9f 100644 --- a/GitHub/GitHub_Get_team_membership_for_a_user.ipynb +++ b/GitHub/GitHub_Get_team_membership_for_a_user.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get team membership for a user\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "281fe4c5-c28c-4e6e-b894-259b46e73d00", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-26 (Created: 2023-04-18)" + ] + }, { "cell_type": "markdown", "id": "39753038-1387-440b-ae4a-4f4851b320c1", diff --git a/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb b/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb index d3b5da72b7..30db3be2d4 100644 --- a/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb +++ b/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Get weekly commits from repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "807a79f6-1559-4efb-9a44-dd563b8d46c8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_List_all_pull_requests.ipynb b/GitHub/GitHub_List_all_pull_requests.ipynb index 2b5c1e6bf4..10ea31607a 100644 --- a/GitHub/GitHub_List_all_pull_requests.ipynb +++ b/GitHub/GitHub_List_all_pull_requests.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List all pull requests\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "8f1df0d8-5a98-458b-815f-632aabc44614", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-09)" + ] + }, { "cell_type": "markdown", "id": "d2f016ec-10a6-46e2-9730-4e111c10371a", diff --git a/GitHub/GitHub_List_branches.ipynb b/GitHub/GitHub_List_branches.ipynb new file mode 100644 index 0000000000..0695430a45 --- /dev/null +++ b/GitHub/GitHub_List_branches.ipynb @@ -0,0 +1,300 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "352d312f-7434-4010-a99b-e413f17fea40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "196a6e22-38b0-42af-aa8b-53f050c864de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - List branches\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1bfdeea3-b3c1-4313-a9c4-0cb07ded0800", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #branches #list #api #rest #python" + ] + }, + { + "cell_type": "markdown", + "id": "d2288e33-f6dd-4898-8f6b-c9b078c1867e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "cca12d44-ce23-4386-9730-2c71a2f3b9cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-26 (Created: 2023-06-20)" + ] + }, + { + "cell_type": "markdown", + "id": "ccdcb65f-dd8b-49c4-ba5b-bbb78df54403", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list all branches from a given GitHub repository;" + ] + }, + { + "cell_type": "markdown", + "id": "8493f6fb-59f3-4c7b-b15a-451beb599bce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub - List branches](https://docs.github.com/en/rest/branches/branches?apiVersion=2022-11-28#list-branches)\n", + "- [GitHub - Authentication](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#authentication)" + ] + }, + { + "cell_type": "markdown", + "id": "c134d691-cfa6-4f0e-ba25-ce5e6b4e7294", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f402bd95-68ba-41b5-8f8f-ac60a6157851", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d185778c-8bce-4b7e-b494-694ad609c7e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import pandas as pd\n", + "try:\n", + " from github import Github\n", + "except:\n", + " !pip install PyGithub --user\n", + " from github import Github\n", + "from pprint import pprint" + ] + }, + { + "cell_type": "markdown", + "id": "f27d6294-0792-4995-8813-8d410a446cb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: [Generate a personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)\n", + "- `owner`: owner of the repository\n", + "- `repository`: name of the repository" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ddc91127-3315-4dda-88e5-8229d5c53176", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "token = naas.secret.get(name=\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "owner = \"jupyter-naas\" #This is an example for naas\n", + "repository = \"awesome-notebooks\" #This is an example for naas" + ] + }, + { + "cell_type": "markdown", + "id": "b6e0e4e4-4881-425a-9751-ef97d202562d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ae781b5e-06db-4345-a287-44f760462548", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List branches" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43620d60-48cb-4c8a-8fcc-48189bd14b15", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_branches(owner, repository):\n", + " g = Github(token)\n", + "\n", + " try:\n", + " repo = g.get_repo(f\"{owner}/{repository}\")\n", + " branches = repo.get_branches()\n", + "\n", + " data = []\n", + " for branch in branches:\n", + " branch_data = {\n", + " 'branch': branch.name,\n", + " 'creation_date': branch.commit.commit.author.date,\n", + " 'creator': branch.commit.commit.author.name\n", + " }\n", + " data.append(branch_data)\n", + "\n", + " df = pd.DataFrame(data)\n", + " return df\n", + "\n", + " except Exception as e:\n", + " print(f\"An error occurred: {e}\")\n", + " return pd.DataFrame()\n", + "\n", + "branches_df = list_branches(owner, repository)" + ] + }, + { + "cell_type": "markdown", + "id": "f94c42ab-2a53-406d-8423-f2f19c57e5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9d86ad23-9f7e-45f8-8ddd-ea451365754c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c14344f-f4c0-4473-9a9a-9172e3299cb4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"Branches for {owner}/{repository}:\", len(branches_df))\n", + "print(\"-\" * 50)\n", + "pprint(branches_df['branch'].tolist())\n", + "print(\"-\" * 50)" + ] + }, + { + "cell_type": "markdown", + "id": "ff36ed17-b795-447d-9ed3-9ef638b5c904", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "9c502c94394240a77a6261022e61b720843f587f1694bc5067f24e85ca04b1cf", + "notebook_path": "GitHub/GitHub_List_branches.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_List_branches_with_open_PR.ipynb b/GitHub/GitHub_List_branches_with_open_PR.ipynb new file mode 100644 index 0000000000..9ee99a2719 --- /dev/null +++ b/GitHub/GitHub_List_branches_with_open_PR.ipynb @@ -0,0 +1,310 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "352d312f-7434-4010-a99b-e413f17fea40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "196a6e22-38b0-42af-aa8b-53f050c864de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - List branches with open PR\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1bfdeea3-b3c1-4313-a9c4-0cb07ded0800", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #branches #list #api #rest #python #active" + ] + }, + { + "cell_type": "markdown", + "id": "d2288e33-f6dd-4898-8f6b-c9b078c1867e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "a2210bb4-ebff-42c8-95ce-e3b4fec14150", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-26 (Created: 2023-06-26)" + ] + }, + { + "cell_type": "markdown", + "id": "ccdcb65f-dd8b-49c4-ba5b-bbb78df54403", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list branches with open PR from a given GitHub repository." + ] + }, + { + "cell_type": "markdown", + "id": "8493f6fb-59f3-4c7b-b15a-451beb599bce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub - List branches](https://docs.github.com/en/rest/branches/branches?apiVersion=2022-11-28#list-branches)\n", + "- [GitHub - Authentication](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#authentication)" + ] + }, + { + "cell_type": "markdown", + "id": "c134d691-cfa6-4f0e-ba25-ce5e6b4e7294", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f402bd95-68ba-41b5-8f8f-ac60a6157851", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d185778c-8bce-4b7e-b494-694ad609c7e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import pandas as pd\n", + "import requests\n", + "from pprint import pprint" + ] + }, + { + "cell_type": "markdown", + "id": "f27d6294-0792-4995-8813-8d410a446cb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: [Generate a personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)\n", + "- `owner`: owner of the repository\n", + "- `repository`: name of the repository" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ddc91127-3315-4dda-88e5-8229d5c53176", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "token = naas.secret.get(name=\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "owner = \"jupyter-naas\" #Example for naas\n", + "repository = \"awesome-notebooks\" #Example for naas awesome-notebooks repository" + ] + }, + { + "cell_type": "markdown", + "id": "b6e0e4e4-4881-425a-9751-ef97d202562d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ae781b5e-06db-4345-a287-44f760462548", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List branches with open PR's" + ] + }, + { + "cell_type": "markdown", + "id": "c9a6f9f7-0c6a-4300-bafe-b0be3f06a880", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list get active branches, creator and Creation date from a given GitHub repository." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43620d60-48cb-4c8a-8fcc-48189bd14b15", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_branches_with_open_prs(\n", + " token,\n", + " owner,\n", + " repository\n", + "):\n", + " url = f\"https://api.github.com/repos/{owner}/{repository}/pulls\"\n", + " headers = {\"Authorization\": f\"token {token}\"}\n", + " response = requests.get(url, headers=headers)\n", + " pulls = response.json()\n", + " \n", + " branches_data = []\n", + " \n", + " for pull in pulls:\n", + " branch = pull['head']['ref']\n", + " creator = pull['user']['login']\n", + " creation_date = pull['created_at']\n", + " \n", + " branches_data.append({\n", + " 'branch': branch,\n", + " 'creator': creator,\n", + " 'creation_date': creation_date\n", + " })\n", + " \n", + " branches_df = pd.DataFrame(branches_data)\n", + " return branches_df\n", + "\n", + "branches_with_open_prs = get_branches_with_open_prs(token, owner, repository)" + ] + }, + { + "cell_type": "markdown", + "id": "f94c42ab-2a53-406d-8423-f2f19c57e5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9d86ad23-9f7e-45f8-8ddd-ea451365754c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c14344f-f4c0-4473-9a9a-9172e3299cb4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"Branches with open pull requests in {owner}/{repository}:\", len(branches_with_open_prs))\n", + "print(\"-\" * 70)\n", + "pprint(branches_with_open_prs['branch'].tolist())\n", + "print(\"-\" * 70)" + ] + }, + { + "cell_type": "markdown", + "id": "ff36ed17-b795-447d-9ed3-9ef638b5c904", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "8f69f5fa373908c7173719e4b762a4944449492ad6b68e4fff8be0a5650d9fe2", + "notebook_path": "GitHub/GitHub_List_branches_with_open_PR.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_List_closed_pull_requests.ipynb b/GitHub/GitHub_List_closed_pull_requests.ipynb index 60f26d70c7..604f6fde6b 100644 --- a/GitHub/GitHub_List_closed_pull_requests.ipynb +++ b/GitHub/GitHub_List_closed_pull_requests.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List closed pull requests\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "66388235-085f-4588-be1a-a26019b3d7fa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-09)" + ] + }, { "cell_type": "markdown", "id": "d2f016ec-10a6-46e2-9730-4e111c10371a", diff --git a/GitHub/GitHub_List_issue_comments.ipynb b/GitHub/GitHub_List_issue_comments.ipynb index 0cf15c355f..83939ba0e6 100644 --- a/GitHub/GitHub_List_issue_comments.ipynb +++ b/GitHub/GitHub_List_issue_comments.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List issue comments\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4420eb77-f71b-4a59-90e9-ceeeb4d2d950", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-26 (Created: 2023-05-26)" + ] + }, { "cell_type": "markdown", "id": "dc9481f3-d140-455d-925a-c47a1b41307c", diff --git a/GitHub/GitHub_List_open_pull_requests.ipynb b/GitHub/GitHub_List_open_pull_requests.ipynb index b246117b58..8e5917977a 100644 --- a/GitHub/GitHub_List_open_pull_requests.ipynb +++ b/GitHub/GitHub_List_open_pull_requests.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List open pull requests\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c1e69ff4-2941-43f9-b7cd-33f747d26e55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-09)" + ] + }, { "cell_type": "markdown", "id": "d2f016ec-10a6-46e2-9730-4e111c10371a", diff --git a/GitHub/GitHub_List_organization_repositories.ipynb b/GitHub/GitHub_List_organization_repositories.ipynb index 0edd1e3793..e95305c136 100644 --- a/GitHub/GitHub_List_organization_repositories.ipynb +++ b/GitHub/GitHub_List_organization_repositories.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List organization repositories\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a8869945-edbd-4af4-837c-47655a634f25", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-05)" + ] + }, { "cell_type": "markdown", "id": "ff1302e1-d541-4a45-96dc-f45b336640ef", diff --git a/GitHub/GitHub_List_pending_team_invitations.ipynb b/GitHub/GitHub_List_pending_team_invitations.ipynb index 2fb90c2639..9faa087ae5 100644 --- a/GitHub/GitHub_List_pending_team_invitations.ipynb +++ b/GitHub/GitHub_List_pending_team_invitations.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List pending team invitations\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "7357c441-5ad0-4aba-8e46-60590f3cb4e0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-19 (Created: 2023-04-18)" + ] + }, { "cell_type": "markdown", "id": "d116166d-1170-4869-aac7-1645ed6ac5e2", diff --git a/GitHub/GitHub_List_stargazers_from_repository.ipynb b/GitHub/GitHub_List_stargazers_from_repository.ipynb index 970f178ba6..cec5649ee0 100644 --- a/GitHub/GitHub_List_stargazers_from_repository.ipynb +++ b/GitHub/GitHub_List_stargazers_from_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List stargazers from repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "f7c6cb90-9726-4fc8-8158-b56955c16360", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_List_team_members.ipynb b/GitHub/GitHub_List_team_members.ipynb index 1af0d5a6da..17c2d2d53f 100644 --- a/GitHub/GitHub_List_team_members.ipynb +++ b/GitHub/GitHub_List_team_members.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - List team members\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "b969a8ac-e4f9-4e9f-a6dd-c8e90d6e15de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-19 (Created: 2023-04-18)" + ] + }, { "cell_type": "markdown", "id": "713bc947-519a-41a9-a5bc-2c6f1f841d74", diff --git a/GitHub/GitHub_Peform_basic_actions.ipynb b/GitHub/GitHub_Peform_basic_actions.ipynb index 09ebd5a49e..75d3a5f6b9 100644 --- a/GitHub/GitHub_Peform_basic_actions.ipynb +++ b/GitHub/GitHub_Peform_basic_actions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Peform basic actions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "1a5008e6-494c-4714-88b7-e1bca2d697d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Read_issue.ipynb b/GitHub/GitHub_Read_issue.ipynb index b1ed666d4f..e11541be36 100644 --- a/GitHub/GitHub_Read_issue.ipynb +++ b/GitHub/GitHub_Read_issue.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Read issue\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "ccb1f9fa-f87c-430c-9ef3-9c5f50053ad8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb b/GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb new file mode 100644 index 0000000000..aef4955a7a --- /dev/null +++ b/GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb @@ -0,0 +1,371 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "352d312f-7434-4010-a99b-e413f17fea40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "196a6e22-38b0-42af-aa8b-53f050c864de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - Remove directories with branches closed on my local\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1bfdeea3-b3c1-4313-a9c4-0cb07ded0800", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #branches #list #api #rest #python #active" + ] + }, + { + "cell_type": "markdown", + "id": "81b977cb-713a-4104-b598-c6bd53a9fc9e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "a2210bb4-ebff-42c8-95ce-e3b4fec14150", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "ccdcb65f-dd8b-49c4-ba5b-bbb78df54403", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook facilitates the removal of directories associated with branches on your local machine. If you need to clone and create directories based on active branches, you can use either of the following notebooks: GitHub_Clone_open_branches_from_repository_on_my_local or GitHub_Clone_repository_and_switch_branch." + ] + }, + { + "cell_type": "markdown", + "id": "8493f6fb-59f3-4c7b-b15a-451beb599bce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub - List branches](https://docs.github.com/en/rest/branches/branches?apiVersion=2022-11-28#list-branches)\n", + "- [GitHub - Authentication](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#authentication)" + ] + }, + { + "cell_type": "markdown", + "id": "c134d691-cfa6-4f0e-ba25-ce5e6b4e7294", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f402bd95-68ba-41b5-8f8f-ac60a6157851", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d185778c-8bce-4b7e-b494-694ad609c7e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import pandas as pd\n", + "import requests\n", + "import shutil\n", + "import os\n", + "from datetime import datetime, timedelta" + ] + }, + { + "cell_type": "markdown", + "id": "f27d6294-0792-4995-8813-8d410a446cb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `token`: [Generate a personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)\n", + "- `repo_url`: URL of the repository to clone\n", + "- `days_limit`: The number of days a branch can remain on your local after the associated issue has been closed.\n", + "- `output_dir`: Output directory to clone repo. If None, we will create a folder with the name of the repo" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ddc91127-3315-4dda-88e5-8229d5c53176", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "token = naas.secret.get(name=\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "repo_url = \"https://github.com/jupyter-naas/awesome-notebooks\"\n", + "days_limit = 30\n", + "\n", + "# Outputs\n", + "output_dir = None" + ] + }, + { + "cell_type": "markdown", + "id": "b6e0e4e4-4881-425a-9751-ef97d202562d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "3de1664c-7e93-4383-aebe-36b4424ff073", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List local branches" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f89a5e86-ff6f-4c3f-a4b6-7565ed8212d3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "output_branches = sorted(os.listdir(output_dir))\n", + "print(f\"Branches on my local\", len(output_branches))" + ] + }, + { + "cell_type": "markdown", + "id": "ae781b5e-06db-4345-a287-44f760462548", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List active branches with open PR's" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43620d60-48cb-4c8a-8fcc-48189bd14b15", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_branches_with_open_prs(\n", + " token,\n", + " repo_url\n", + "):\n", + " # Init\n", + " data = []\n", + " owner = repo_url.split(\"https://github.com/\")[-1].split(\"/\")[0]\n", + " repository = repo_url.split(f\"https://github.com/{owner}/\")[-1].split(\"/\")[0]\n", + " \n", + " # Requests\n", + " url = f\"https://api.github.com/repos/{owner}/{repository}/pulls\"\n", + " headers = {\"Authorization\": f\"token {token}\"}\n", + " response = requests.get(url, headers=headers)\n", + " pulls = response.json()\n", + " \n", + " # Data\n", + " for pull in pulls:\n", + " branch = pull['head']['ref']\n", + " creator = pull['user']['login']\n", + " creation_date = pull['created_at']\n", + " \n", + " data.append({\n", + " 'branch': branch,\n", + " 'creator': creator,\n", + " 'creation_date': creation_date\n", + " })\n", + " \n", + " df = pd.DataFrame(data)\n", + " \n", + " # Sort values\n", + " if len(df) > 0:\n", + " df = df.sort_values(by=\"creation_date\", ascending=False)\n", + " return df.reset_index(drop=True)\n", + "\n", + "branches_with_open_prs = get_branches_with_open_prs(token, repo_url)\n", + "print(f\"Branches with open pull requests in {repo_url}:\", len(branches_with_open_prs))\n", + "branches_with_open_prs.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "f94c42ab-2a53-406d-8423-f2f19c57e5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "6ae97f8b-7b37-4ce5-a721-e3f5c04db323", + "metadata": { + "execution": { + "iopub.execute_input": "2023-07-05T05:04:49.864923Z", + "iopub.status.busy": "2023-07-05T05:04:49.864574Z", + "iopub.status.idle": "2023-07-05T05:04:49.868953Z", + "shell.execute_reply": "2023-07-05T05:04:49.867819Z", + "shell.execute_reply.started": "2023-07-05T05:04:49.864887Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Removed branches on my local" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3f55d62b-8a17-4f59-bc55-f87a1f56905c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "active_branches = branches_with_open_prs[\"branch\"].unique()\n", + "\n", + "# Loop\n", + "for branch in output_branches:\n", + " if not output_dir:\n", + " output_dir = '/home/ftp/'\n", + " folder = os.path.join(output_dir, branch)\n", + " \n", + " # Extract the relevant information from the metadata\n", + " folder_stat = os.stat(folder).st_mtime\n", + " \n", + " # Convert timestamp to a datetime object\n", + " datetime_obj = datetime.fromtimestamp(folder_stat)\n", + " \n", + " # Convert datetime object to a formatted date string\n", + " date_string = datetime_obj.strftime('%Y-%m-%d %H:%M:%S')\n", + " \n", + " # Get the current date\n", + " current_date = datetime.now()\n", + "\n", + " # Create limit date\n", + " date_limit = current_date - timedelta(days=days_limit)\n", + " \n", + " # Remove folder on conditions\n", + " if branch not in active_branches and not branch.startswith(\".\") and datetime_obj < date_limit:\n", + " shutil.rmtree(folder)\n", + " print(f\"✅ Branch '{branch}' removed from outputs\")" + ] + }, + { + "cell_type": "markdown", + "id": "ff36ed17-b795-447d-9ed3-9ef638b5c904", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1d105e6fd6ce6afd43b108739842b18b3af440c768cd23db3fa62d9ddf6521e3", + "notebook_path": "GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Remove_member_from_team.ipynb b/GitHub/GitHub_Remove_member_from_team.ipynb index f0e1411680..b438569e83 100644 --- a/GitHub/GitHub_Remove_member_from_team.ipynb +++ b/GitHub/GitHub_Remove_member_from_team.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Remove member from team\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)\n" ] }, + { + "cell_type": "markdown", + "id": "11b9acc3-3252-4ba9-b88f-948b562f700c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb b/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb index e4a61eda33..7200bfc05b 100644 --- a/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb +++ b/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Remove team membership for a user\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "ac53e661-29e1-4791-ab64-30034f7d54d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-26 (Created: 2023-04-19)" + ] + }, { "cell_type": "markdown", "id": "b6d2d763-d02e-4d23-9192-a4ff3dce90a5", diff --git a/GitHub/GitHub_Reopen_issue.ipynb b/GitHub/GitHub_Reopen_issue.ipynb index 71d49d15e8..86dc065d28 100644 --- a/GitHub/GitHub_Reopen_issue.ipynb +++ b/GitHub/GitHub_Reopen_issue.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Reopen issue\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3d0db6bf-44e9-41cf-9683-3d9872c9f8aa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-26 (Created: 2023-05-26)" + ] + }, { "cell_type": "markdown", "id": "4e3aadfe-6d61-41b9-80f2-a790718018ee", diff --git a/GitHub/GitHub_Send_contributor_activity_on_slack.ipynb b/GitHub/GitHub_Send_contributor_activity_on_slack.ipynb new file mode 100644 index 0000000000..baae1e626e --- /dev/null +++ b/GitHub/GitHub_Send_contributor_activity_on_slack.ipynb @@ -0,0 +1,794 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ada9f2a9-8daa-4b89-a03c-ffcdae2fd220", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "373a7231-6f7d-47da-b3cd-6b8f5250223a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - Send contributor activity on slack\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "611b4f12-8112-4e0f-b6ac-5bb96855fa7f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #activity #update #api #snippet #operations #slack " + ] + }, + { + "cell_type": "markdown", + "id": "7903a6e2-70c3-4149-8279-c603417a7836", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "8d267b91-c0c9-4c23-9bf9-946c2b9531af", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-28 (Created: 2023-06-16)" + ] + }, + { + "cell_type": "markdown", + "id": "4e3aadfe-6d61-41b9-80f2-a790718018ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to send GitHub activity of a contributor of awesome notebook templates to Slack. It includes the sections below:\n", + "- ✅ **Templates created:** the total number of templates created (overall, by month, by week).\n", + "- 👀 **In review:** the number of PRs ready reviewed. Make sure you made a comment with **\"Ready to review\"** inside the PR.\n", + "- 🏗 **In progress:** the current PRs you are working on.\n", + "- 📋 **Backlog:** the issues you are assigned to with no PRs opened.\n", + "\n", + "*NB: Execution time may takes between 2 to 5 min.*" + ] + }, + { + "cell_type": "markdown", + "id": "2b5dcc40-1fac-47c9-b577-26229548f2b1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub REST API Documentation](https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#update-an-issue)\n", + "- [os](https://docs.python.org/3/library/os.html)\n", + "- [json](https://docs.python.org/3/library/json.html)\n", + "- [datetime](https://docs.python.org/3/library/datetime.html)\n", + "- [pandas](https://pandas.pydata.org/docs/)\n", + "- [requests](https://docs.python-requests.org/en/latest/)\n", + "- [slack (naas_drivers)](https://pypi.org/project/naas-drivers/)\n", + "- [Slack Block Kit Builder](https://app.slack.com/block-kit-builder/)" + ] + }, + { + "cell_type": "markdown", + "id": "892d0dd8-86b4-4788-86ac-a8a34a29cb94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "727b3406-2d41-41ff-aad6-10007bda4a69", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c14a82ed-deca-4d54-a1ba-da6356c3865b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import json\n", + "from datetime import datetime\n", + "from github import Github\n", + "import naas\n", + "import pandas as pd\n", + "import requests\n", + "from naas_drivers import slack\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "# The function \"pd.set_option('display.max_colwidth', None)\" is used in pandas, a data manipulation library in Python, to set the maximum width for displaying column contents in a tabular format to be unlimited, allowing the full content of each column to be displayed without truncation.\n", + "pd.set_option('display.max_colwidth', None)" + ] + }, + { + "cell_type": "markdown", + "id": "18a7ce29-9182-4b79-8f5f-5032b8b8774f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `github_token`: [GitHub token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)\n", + "- `repo_name`: name of the repository in two part: owner_name/repository_name\n", + "- `contributor_profile`: your GitHub username\n", + "- `cron`: cron params for naas scheduler\n", + "- `slack_bot_token`: [Slack Bot token](https://docs.celigo.com/hc/en-us/articles/7140655476507-How-to-create-an-app-and-retrieve-OAuth-token-in-Slack)\n", + "- `slack_channel`: The name of the channel you want to send the message" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad68a533-dfdb-44ba-b1f8-860bbe5c8d08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "github_token = naas.secret.get(\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "repo_name = \"jupyter-naas/awesome-notebooks\"\n", + "contributor_profile = \"GITHUB_USERNAME\" #example: \"FlorentLvr\" \n", + "cron = \"30 9,12,17 * * 1-5\"\n", + "\n", + "# Outputs\n", + "slack_bot_token = naas.secret.get(\"SLACK_BOT_TOKEN\") or \"YOUR_SLACK_TOKEN\"\n", + "slack_channel = \"YOUR_CHANNEL_NAME\" #example: \"naas-templates-contributors\"" + ] + }, + { + "cell_type": "markdown", + "id": "ef6aae6b-fe4b-4bc9-955b-533690997ea9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "82c29745-93c1-4d26-bb13-f2a005dde1f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to GitHub repo" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfae72db-a4b1-40e8-8a13-1e4817ada39b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Connect to the GitHub API using pygithub library\n", + "g = Github(github_token)\n", + "\n", + "# Get the repository\n", + "repo = g.get_repo(repo_name)" + ] + }, + { + "cell_type": "markdown", + "id": "b8be7b04-6d74-4d48-8435-0ea180116c7d", + "metadata": { + "execution": { + "iopub.execute_input": "2023-06-26T09:10:37.794637Z", + "iopub.status.busy": "2023-06-26T09:10:37.794315Z", + "iopub.status.idle": "2023-06-26T09:10:37.808867Z", + "shell.execute_reply": "2023-06-26T09:10:37.807524Z", + "shell.execute_reply.started": "2023-06-26T09:10:37.794602Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs closed\n", + "So here we're filtering out all closed PRs on the `contributor_profile`, then we retrieve the files added by each PR and classify them by month and week." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b89149bc-9d7b-4d8b-87bc-65c3dc9c2b21", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get the closed PR\n", + "pull_requests = repo.get_pulls(state='closed', sort='updated', direction='desc')\n", + "print(\"✅ Pull Requests fetched:\", pull_requests.totalCount)\n", + "\n", + "# Iterate over the pull requests and filter by assignee\n", + "assigned_pull_requests = [pr for pr in pull_requests if pr.assignee and pr.assignee.login == contributor_profile]\n", + "\n", + "# Print the closed PR count\n", + "print(f\"📌Number of assigned closed PR: {len(assigned_pull_requests)}\")" + ] + }, + { + "cell_type": "markdown", + "id": "ac69381c-a7ee-4568-93eb-413309f73b50", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get templates added by PRs closed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69882a68-5f95-4670-a696-db94b5815ac9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create an empty list to store the files added in closed pull requests\n", + "files_added_month = []\n", + "files_added_week = []\n", + "files_added = []\n", + "\n", + "# Get the current date\n", + "current_date = datetime.now()\n", + "\n", + "# Iterate over the assigned closed pull requests\n", + "for pr in assigned_pull_requests: \n", + " # Get files added\n", + " files = pr.get_files()\n", + " \n", + " # Get the date the file was created\n", + " file_created = pr.merged_at\n", + " \n", + " days_diff = None # Initialize days_diff\n", + " \n", + " if file_created is not None:\n", + " # Calculate the difference in days between the current date and file creation date\n", + " days_diff = (current_date - file_created).days\n", + " \n", + " # Iterate over the files added in the pull request\n", + " for file in files:\n", + " if file.status == \"added\":\n", + " file_path = file.filename\n", + " file_url = file.raw_url\n", + "\n", + " # Prep data\n", + " tmp = {\n", + " \"file_path\": file_path,\n", + " \"file_url\": file_url,\n", + " \"file_created\": pr.merged_at,\n", + " \"pr_number\": pr.number,\n", + " \"pr_title\": pr.title,\n", + " \"pr_url\": pr.url,\n", + " }\n", + "\n", + " # Add the data to the respective lists based on the file creation date\n", + " if days_diff is not None and days_diff <= 30:\n", + " files_added_month.append(tmp)\n", + " if days_diff is not None and days_diff <= 7:\n", + " files_added_week.append(tmp)\n", + "\n", + " # Add the data to the files_added list\n", + " files_added.append(tmp)\n", + "\n", + "# Calculate the variation between the current month and the last month\n", + "current_month = current_date.month\n", + "last_month = current_month - 1 if current_month > 1 else 12\n", + "files_added_current_month = [file for file in files_added_month if file['file_created'].month == current_month]\n", + "files_added_last_month = [file for file in files_added_month if file['file_created'].month == last_month]\n", + "variation_month = len(files_added_current_month) - len(files_added_last_month)\n", + "\n", + "# Calculate the variation between the current week and the last week\n", + "current_week = current_date.isocalendar()[1]\n", + "last_week = current_week - 1 if current_week > 1 else 52\n", + "files_added_current_week = [file for file in files_added_week if file['file_created'].isocalendar()[1] == current_week]\n", + "files_added_last_week = [file for file in files_added_week if file['file_created'].isocalendar()[1] == last_week]\n", + "variation_week = len(files_added_current_week) - len(files_added_last_week)\n", + "\n", + "# Prepare the variation strings\n", + "variation_month_str = f\"+{variation_month}\" if variation_month > 0 else str(variation_month)\n", + "variation_week_str = f\"+{variation_week}\" if variation_week > 0 else str(variation_week)\n", + "\n", + "# Print the number of files added and the variations\n", + "print(f\"📈 Number of Files added: {len(files_added)}\")\n", + "print(f\"📁 Number of Files added this month: {len(files_added_current_month)} ({variation_month_str} vs last month)\")\n", + "print(f\"📂 Number of Files added this week: {len(files_added_current_week)} ({variation_week_str} vs last week)\")" + ] + }, + { + "cell_type": "markdown", + "id": "528c059d-c5dc-4379-b364-5d8ca8bf7af9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs opened" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88872b50-4781-4226-bcf4-1983b5968990", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get the closed PR\n", + "pull_requests = repo.get_pulls(state=\"open\")\n", + "\n", + "# Print the closed PR\n", + "print(\"✅ Pull Requests fetched:\", pull_requests.totalCount)\n", + "data = []\n", + "for index, pr in enumerate(pull_requests):\n", + " # Init\n", + " assignee_login = None\n", + " assignee = pr.raw_data.get(\"assignee\")\n", + " if assignee:\n", + " assignee_login = assignee.get(\"login\")\n", + " tmp = {\n", + " \"title\": pr.title,\n", + " \"number\": pr.number,\n", + " \"url\": pr.raw_data.get(\"url\"),\n", + " \"assignee\": assignee_login,\n", + " \"created_at\": pr.raw_data.get(\"created_at\"),\n", + " \"updated_at\": pr.raw_data.get(\"updated_at\"),\n", + " }\n", + " data.append(tmp)\n", + "\n", + "df_pr = pd.DataFrame(data)\n", + "df_pr.head(3)" + ] + }, + { + "cell_type": "markdown", + "id": "ceafa407-d67a-4654-818d-e63c2f7854b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs opened assigned to contributor" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c1552cd-5db7-4fd6-be06-17f6f6ef9101", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contributor_filtered_df = df_pr[df_pr['assignee'] == contributor_profile].reset_index(drop=True)\n", + "print(\"✅ PR Opened:\", len(contributor_filtered_df))\n", + "contributor_filtered_df.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "1629a4ed-89fd-444f-b99e-23d6a92a93c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs \"In progress\" and \"To be reviewed\"" + ] + }, + { + "cell_type": "markdown", + "id": "7bde03f0-5cca-4e13-8e60-3a8e74ce837c", + "metadata": { + "execution": { + "iopub.execute_input": "2023-06-26T08:54:48.608487Z", + "iopub.status.busy": "2023-06-26T08:54:48.608244Z", + "iopub.status.idle": "2023-06-26T08:54:48.613827Z", + "shell.execute_reply": "2023-06-26T08:54:48.612781Z", + "shell.execute_reply.started": "2023-06-26T08:54:48.608461Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "We loop over each PR to see if the last message is \"Ready to review\", if so we put it in the finished category otherwise in work in progress. We also look to see if there is a link to a PR in the description, which allows us to sort the new issues more easily and reliably." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "363b9853-cd64-4448-b735-2bc69dba23cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Init - Create empty list\n", + "prs_in_review = []\n", + "prs_work_in_progress = []\n", + "prs_linked_to_issues = []\n", + "prs_numbers = []\n", + "\n", + "# Loop in df and last message on each PR\n", + "for row in contributor_filtered_df.itertuples():\n", + " # Display PR number\n", + " pr_number = row.number\n", + " \n", + " # Append prs numbers\n", + " prs_numbers.append(str(pr_number))\n", + " \n", + " # Get PR object\n", + " pr = next((pr for pr in pull_requests if pr.number == pr_number), None)\n", + " \n", + " # If PR exists then get comments\n", + " if pr:\n", + " # Get PR description\n", + " pr_description = pr.body\n", + " issue_number = None\n", + " if pr_description:\n", + " # Split description to get issue number\n", + " split_result = pr_description.split(\"https://github.com/jupyter-naas/awesome-notebooks/issues/\")\n", + "\n", + " # If list > 1 then issue number exists\n", + " if len(split_result) > 1:\n", + " # Get issue number\n", + " issue_number = split_result[1]\n", + " if issue_number:\n", + " prs_linked_to_issues.append(issue_number)\n", + "\n", + " # Get comments from PR\n", + " comments = pr.get_issue_comments()\n", + " \n", + " # Check if nb comments > 0 else PR status = WIP\n", + " if comments.totalCount > 0:\n", + " last_comment = comments[comments.totalCount-1].body.lower()\n", + " \n", + " # Check if \"read to review\" else PR status = WIP\n", + " if \"ready to review\" in last_comment:\n", + " prs_in_review.append(pr)\n", + " else:\n", + " prs_work_in_progress.append(pr)\n", + " else:\n", + " prs_work_in_progress.append(pr)\n", + " \n", + "print(\"✅ Pull Requests in Review:\", len(prs_in_review))\n", + "print(\"👨‍💻 Pull Requests Work in Progress:\", len(prs_work_in_progress))\n", + "print(\"💻 Issues linked in PRs:\", len(prs_linked_to_issues))" + ] + }, + { + "cell_type": "markdown", + "id": "d4fb0b7d-21a7-41e2-8acb-8b6155097b5b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get new issues by contributor\n", + "Here we retrieve the issues and sort them on the `contributor_profile`, then we exclude issues linked to a PR." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "004fd8ac-a3f9-4b8b-bb6a-7970dd356b8c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get the repository\n", + "repository = g.get_repo(f'{repo_name}')\n", + "\n", + "# Get issues assigned to the contributor\n", + "issues = repository.get_issues(assignee=contributor_profile)\n", + "\n", + "# Print number of issues\n", + "print(\"✅ Issues fetched:\", issues.totalCount)\n", + "\n", + "# Init variables\n", + "new_issues = []\n", + "\n", + "# Loop\n", + "for issue in issues:\n", + " # Init\n", + " issue_number = issue.number\n", + " \n", + " # List events in issues\n", + " events = issue.get_events()\n", + " list_events = [event.event for event in events]\n", + " \n", + " # Exclude issues linked to PR or with events connected\n", + " if (str(issue_number) not in prs_linked_to_issues) and ('connected' not in list_events) and (str(issue_number) not in prs_numbers):\n", + " new_issues.append(issue)\n", + "\n", + "print(\"✅ New issues:\", len(new_issues))" + ] + }, + { + "cell_type": "markdown", + "id": "a8dee826-263c-4434-8116-5f2e0eb89d88", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Slack message with blocks\n", + "We used [Block kit builder](https://app.slack.com/block-kit-builder/) to create our templates and adapt it with the dynamic variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b5cccca-89dc-46cb-a11f-ea70da61150b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Sort the lists\n", + "prs_in_review.sort(key=lambda pr: pr.number, reverse=True)\n", + "prs_work_in_progress.sort(key=lambda pr: pr.number, reverse=True)\n", + "new_issues.sort(key=lambda issue: issue.number, reverse=True)\n", + "\n", + "# Get the current date and time\n", + "current_date = datetime.now().strftime(\"%B %d, %Y %H:%M\")\n", + "\n", + "# Calculate the variations\n", + "variation_month_str = f\"+{variation_month}\" if variation_month > 0 else str(variation_month)\n", + "variation_week_str = f\"+{variation_week}\" if variation_week > 0 else str(variation_week)\n", + "\n", + "# Blocks\n", + "blocks = [\n", + " {\n", + " \"type\": \"header\",\n", + " \"text\": {\n", + " \"type\": \"plain_text\",\n", + " \"text\": f\"{contributor_profile} - Activity update as of {current_date}\",\n", + " \"emoji\": True\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"✅ *Templates created: {len(files_added)}*\",\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"This month: {len(files_added_current_month)} ({variation_month_str} vs last month)\\nThis week: {len(files_added_current_week)} ({variation_week_str} vs last week)\"\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"👀 *In review: {len(prs_in_review)}*\"\n", + " }\n", + " },\n", + " *[\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"- <{pr.html_url}|#{pr.number} {pr.title}>\"\n", + " }\n", + " }\n", + " for pr in prs_in_review\n", + " ],\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"🏗 *In progress: {len(prs_work_in_progress)}*\"\n", + " }\n", + " },\n", + " *[\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"- <{pr.html_url}|#{pr.number} {pr.title}>\"\n", + " }\n", + " }\n", + " for pr in prs_work_in_progress\n", + " ],\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"📋 *Backlog: {len(new_issues)}*\"\n", + " }\n", + " },\n", + " *[\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"- <{issue.html_url}|#{issue.number} {issue.title}>\"\n", + " }\n", + " }\n", + " for issue in new_issues\n", + " ]\n", + "]" + ] + }, + { + "cell_type": "markdown", + "id": "04c0ae0c-1d5b-49bf-beab-f3d7f57d13a4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "a9939de6-9ebd-4814-905c-e5c4edc9aa6a", + "metadata": { + "execution": { + "iopub.execute_input": "2023-06-16T14:58:21.299673Z", + "iopub.status.busy": "2023-06-16T14:58:21.299316Z", + "iopub.status.idle": "2023-06-16T14:58:21.306875Z", + "shell.execute_reply": "2023-06-16T14:58:21.306132Z", + "shell.execute_reply.started": "2023-06-16T14:58:21.299635Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send message on Slack" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97cb8cb4-24e5-411c-a27a-ff58a355d3d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "slack.connect(slack_bot_token).send(slack_channel, text=None, blocks=blocks)" + ] + }, + { + "cell_type": "markdown", + "id": "d577e451-0859-4ed2-8657-c9502ccbadc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Add scheduler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f89c7f58-9054-47ac-84b4-f58a677cbc07", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "3d075044a53de36f530c33cdb1aec8ba83ab4108b44d2584062e37c5344cb45e", + "notebook_path": "GitHub/GitHub_Send_contributor_activity_on_slack.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb b/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb index cdce143f1f..bd23188d9e 100644 --- a/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb +++ b/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Send stargazers to Google Sheets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "861b0e69-595f-4c3f-b38a-780fea7ae2e6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-23)" + ] + }, { "cell_type": "markdown", "id": "2778e07e-1c08-4dd0-8a94-8efa6239f934", diff --git a/GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb b/GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb new file mode 100644 index 0000000000..079f34283f --- /dev/null +++ b/GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb @@ -0,0 +1,615 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ada9f2a9-8daa-4b89-a03c-ffcdae2fd220", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "373a7231-6f7d-47da-b3cd-6b8f5250223a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - Send template maintainer monthly report\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "611b4f12-8112-4e0f-b6ac-5bb96855fa7f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #issues #merged #rest #api #snippet #operations #email #awesomenotebooks #maintainer" + ] + }, + { + "cell_type": "markdown", + "id": "7903a6e2-70c3-4149-8279-c603417a7836", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "1a7a6048-1548-4cbe-b908-0a5279535847", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "4e3aadfe-6d61-41b9-80f2-a790718018ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook retrieves data to ascertain the sponsorships provided by Naas for template maintainers and dispatches a notification on every 7th day of the month, as well as the last three days. It incorporates the monthly count of issue closed with estimates, and the number of Pull Requests reviewed within the month." + ] + }, + { + "cell_type": "markdown", + "id": "2b5dcc40-1fac-47c9-b577-26229548f2b1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub REST API Documentation](https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#update-an-issue)\n", + "- [os](https://docs.python.org/3/library/os.html)\n", + "- [json](https://docs.python.org/3/library/json.html)\n", + "- [datetime](https://docs.python.org/3/library/datetime.html)\n", + "- [pandas](https://pandas.pydata.org/docs/)\n", + "- [requests](https://docs.python-requests.org/en/latest/)" + ] + }, + { + "cell_type": "markdown", + "id": "892d0dd8-86b4-4788-86ac-a8a34a29cb94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "727b3406-2d41-41ff-aad6-10007bda4a69", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d897d321-fa8c-4012-a743-b8178d9d41c1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from github import Github\n", + "from datetime import datetime, timezone\n", + "import requests\n", + "from bs4 import BeautifulSoup\n", + "from IPython.display import display, HTML\n", + "import numpy as np\n", + "from datetime import datetime\n", + "import naas\n", + "from naas_drivers import naasauth, emailbuilder\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "markdown", + "id": "18a7ce29-9182-4b79-8f5f-5032b8b8774f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "- `github_token`: [GitHub token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)\n", + "- `contributor_profile`: GitHub username of the contributor\n", + "\n", + "**Optional**\n", + "\n", + "- `repo_name`: name of the repository in two part: owner_name/repository_name\n", + "- `estimates_view_url`:Url of the project where the estimated are located\n", + "- `cron`: cron params for naas scheduler change it using [Crontab](https://crontab.guru/)\n", + "- `email_to`: This variable is used for storing a list of email addresses that will receive the notification email\n", + "- `email_from`: Email sender: Replace with your email account or notification@naas.ai\n", + "- `subject`: Email subject" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad68a533-dfdb-44ba-b1f8-860bbe5c8d08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "github_token = naas.secret.get(\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "contributor_profile = \"FlorentLvr\"\n", + "\n", + "# Optional\n", + "scenario = \"This Month\" #\"Last month\"\n", + "repo_name = \"jupyter-naas/awesome-notebooks\" #Example: jupyter-naas/awesome-notebooks\n", + "estimates_view_url = \"https://github.com/orgs/jupyter-naas/projects/10/views/20\" #example: https://github.com/orgs/jupyter-naas/projects/10/views/20\n", + "cron = \"0 0 7,14,21,28,30,31 * *\" # At 00:00 on every day-of-month from 28 through 31\n", + "email_to = [naasauth.connect().user.me().get(\"username\")] # List to emails address of the receiver(s)\n", + "email_from = \"notification@naas.ai\"\n", + "subject = \"Templates Maintainer Monthly Report\"" + ] + }, + { + "cell_type": "markdown", + "id": "ef6aae6b-fe4b-4bc9-955b-533690997ea9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "528c059d-c5dc-4379-b364-5d8ca8bf7af9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to GitHub repo" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97cb8cb4-24e5-411c-a27a-ff58a355d3d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Connect to the GitHub API using pygithub library\n", + "g = Github(github_token)\n", + "\n", + "# Get the repository\n", + "repo = g.get_repo(repo_name)" + ] + }, + { + "cell_type": "markdown", + "id": "24803d7e-669a-461f-9baa-27cffaf3797f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs merged on scenario" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b0b3db0-acdb-46cc-9248-e3eb8cfa0cc2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create scenario to filter PRs\n", + "def get_scenario(scenario):\n", + " # Init\n", + " current_date = datetime.now(timezone.utc)\n", + " date_scenario = current_date\n", + " \n", + " # Get date from scenario\n", + " if scenario == \"Last Month\":\n", + " month_scenario = current_date.month - 1 \n", + " date_scenario = current_date.replace(month=month_scenario)\n", + " return date_scenario\n", + "\n", + "scenario_filter = get_scenario(scenario)\n", + "\n", + "# Get PRs closed\n", + "pull_requests = repo.get_pulls(state='closed', sort='updated', direction='desc')\n", + "print(\"✅ Pull Requests closed:\", pull_requests.totalCount)\n", + "\n", + "# Get PRs merged on scenario\n", + "merged_pr = []\n", + "for pr in pull_requests:\n", + " # Get PRs merged\n", + " if pr.merged_at:\n", + " merged_at = pr.merged_at.strftime(\"%Y%m\")\n", + " \n", + " # Get PRs merged on scenario\n", + " if int(merged_at) == int(scenario_filter.strftime(\"%Y%m\")):\n", + " merged_pr.append(pr)\n", + " if int(merged_at) < int(scenario_filter.strftime(\"%Y%m\")):\n", + " break\n", + " \n", + "print(f\"📌 Pull Requests merged on {scenario_filter.strftime('%Y-%m')}:\", len(merged_pr))" + ] + }, + { + "cell_type": "markdown", + "id": "fe2043a3-0093-4105-8017-ca527f28e624", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs assigned and reviewed by contributor" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e973208f-b299-4e07-a5e4-dbde4c2ef38f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "assigned_pr = []\n", + "reviewed_pr = []\n", + "\n", + "for pr in merged_pr:\n", + " # Get PRs assigned\n", + " if pr.assignee and pr.assignee.login == contributor_profile:\n", + " assigned_pr.append(pr)\n", + " \n", + " # Get PRs reviewed\n", + " if pr.requested_reviewers:\n", + " for r in pr.requested_reviewers:\n", + " if r.login == contributor_profile:\n", + " reviewed_pr.append(pr)\n", + "\n", + "print(f\"🧑‍💻 Pull Requests assigned:\", len(assigned_pr))\n", + "print(f\"👀 Pull Requests reviewed:\", len(reviewed_pr))" + ] + }, + { + "cell_type": "markdown", + "id": "b97ec4af-a6b2-41e8-a29e-c65fffd9d037", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get estimates from project view" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59c0b2c9-9dc8-4071-bbca-d6fffed67a68", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Init\n", + "data_bs4 = []\n", + "\n", + "# Get HTML from URL\n", + "response = requests.get(estimates_view_url)\n", + "html = response.text\n", + "\n", + "# Parse HTML\n", + "soup = BeautifulSoup(html, \"html.parser\")\n", + "\n", + "# Get cards\n", + "elements = soup.find_all(\"script\", {\"id\": \"memex-items-data\"})\n", + "\n", + "# Iterate over the elements and split their text\n", + "for element in elements:\n", + " text = element.text\n", + " split_text = text.split('{\"contentId\":')[1:] # Split the text as needed\n", + " \n", + " # Split the soup for each element\n", + " for s in split_text:\n", + " s = s.split('\"memexProjectColumnId\":')[1:]\n", + " # Get the values using splits\n", + " title = s[0].split('\"raw\":\"')[-1].split('\"')[0]\n", + " issue_number = s[0].split('\"number\":')[-1].split(',')[0]\n", + " assignees = s[1].split('\"login\":\"')[-1].split('\"')[0]\n", + " PR_url = s[2].split('\"url\":\"')[-1].split('\"')[0]\n", + " estimate = s[3].split('\"value\":')[-1].split('}')[0]\n", + " \n", + " # Handle possible error\n", + " if not str(issue_number).isdigit():\n", + " issue_number = \"❌ Error\"\n", + " \n", + " # Create a dictionary with the values\n", + " tmp_bs4 = {\n", + " \"Title\": title,\n", + " \"Issue Number\": issue_number,\n", + " \"Assignees\": assignees,\n", + " \"PR URL\": PR_url,\n", + " \"Estimate\": estimate,\n", + " }\n", + " # Append the dictionary to the data list\n", + " data_bs4.append(tmp_bs4)\n", + "\n", + "# Create a DataFrame from the data list\n", + "df_estimates = pd.DataFrame(data_bs4) \n", + "print(\"✅ Row fetched on estimates view:\", len(df_estimates))\n", + "# df_estimates.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "f14411e4-400a-4eeb-974c-d209794b3b39", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Calculate estimates on issue closed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fb9b47e-b774-4955-8b5b-0a4ffff0b49d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Store the relevant information in a DataFrame\n", + "data = []\n", + "total_estimate = 0\n", + "filtered_df_init = pd.DataFrame()\n", + "\n", + "for pr in assigned_pr:\n", + " tmp = {\n", + " \"title\": pr.title,\n", + " \"number\": pr.number,\n", + " \"url\": pr.html_url,\n", + " \"assignee\": pr.assignee.login,\n", + " \"created_at\": pr.created_at.isoformat(),\n", + " \"updated_at\": pr.updated_at.isoformat(),\n", + " \"merged_at\": pr.merged_at.isoformat(),\n", + " }\n", + " data.append(tmp)\n", + "df_pr = pd.DataFrame(data)\n", + "\n", + "if len(df_pr) > 0:\n", + " # Filter df_init with the URLs from df_pr\n", + " filtered_df_init = df_estimates[df_estimates[\"PR URL\"].isin(df_pr[\"url\"])]\n", + " filtered_df_init['Estimate'] = filtered_df_init['Estimate'].str.replace(\"null\", \"0\")\n", + "\n", + " # Set the display option for max column width to ensure the link is fully displayed\n", + " pd.set_option('display.max_colwidth', None)\n", + "\n", + " # Convert the \"PR URL\" column values into clickable links using HTML formatting\n", + " filtered_df_init[\"PR URL\"] = filtered_df_init[\"PR URL\"].apply(lambda x: f'{x}')\n", + "\n", + " # Calculate the total of the \"Estimate\" column and convert it to an integer\n", + " total_estimate = int(filtered_df_init[\"Estimate\"].astype(float).sum())\n", + "\n", + " # Display the DataFrame with clickable links and format the \"Estimate\" column as integers\n", + " filtered_df_init[\"Estimate\"] = filtered_df_init[\"Estimate\"].astype(float).astype(int)\n", + " filtered_df_init[\"Email_List\"] = filtered_df_init[\"Title\"] + \": \" + filtered_df_init[\"Estimate\"].astype(str)\n", + " display(HTML(filtered_df_init.to_html(escape=False, index=False)))\n", + "\n", + "# Separate sentence with emoji for the total estimate\n", + "print(f\"\\n🚀 The total estimate is: {total_estimate}\")" + ] + }, + { + "cell_type": "markdown", + "id": "79755e02-a51e-4857-ab66-e1064bb9d9dd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Creating the E-mail\n", + "We used `Naas_emailbuilder_demo.ipynb` to create our email." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9311339-e5f0-4ed2-a347-43aceec3382d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Sample logo URL\n", + "logo_img = \"https://landen.imgix.net/jtci2pxwjczr/assets/5ice39g4.png?w=186\"\n", + "\n", + "# Get the current date\n", + "scenario_display = scenario_filter.strftime(\"%B %Y\")\n", + "\n", + "# Convert the \"Estimate\" column values to string\n", + "sum_estimates = 0\n", + "list_issues = []\n", + "if len(filtered_df_init) > 0:\n", + " sum_estimates = filtered_df_init[\"Estimate\"].astype(int).sum()\n", + " list_issues = [emailbuilder.link(row[\"PR URL\"], row[\"Email_List\"]) for index, row in filtered_df_init.iterrows()]\n", + "list_prs = [emailbuilder.link(pr.html_url, pr.title) for pr in reviewed_pr]\n", + "\n", + "reward_issues_merged = sum_estimates * 5\n", + "reward_prs_reviewed = len(list_prs) * 10\n", + "rewards = reward_issues_merged + reward_prs_reviewed\n", + "\n", + "# Define the content for the email using the email builder\n", + "email_content = {\n", + "# \"element\": naas_drivers.emailbuilder.title(f'
📝 Report on templates created for {contributor_profile}
'),\n", + " \"heading\": emailbuilder.heading(f'Monthly Report - {scenario_display}'),\n", + " \"intro\": emailbuilder.text(f\"Hi {contributor_profile},\"),\n", + " \"reward\": emailbuilder.text(f'💵 Here is the reward your contribution as templates maintainer: {rewards}$'),\n", + " \"reward_det\": emailbuilder.list([f\"Issues closed by PRs merged: {reward_issues_merged} $\", f\"PRs reviewed: {reward_prs_reviewed} $\"]),\n", + " \"contrib\": emailbuilder.text(f'Please find below the detail of your contributions.'),\n", + " \"assign\": emailbuilder.text(f'🧑‍💻 Issues closed by PRs merged: {len(filtered_df_init)} (Total estimates: {sum_estimates})'),\n", + " \"assign_list\": emailbuilder.list(list_issues),\n", + " \"review\": emailbuilder.text(f'👀💻 PRs reviewed: {len(reviewed_pr)}'),\n", + " \"review_list\": emailbuilder.list(list_prs),\n", + " \"footer\": emailbuilder.footer_company(naas=True),\n", + "}\n", + "\n", + "# Generate the email content as HTML\n", + "content = emailbuilder.generate(display=\"iframe\", **email_content)" + ] + }, + { + "cell_type": "markdown", + "id": "04c0ae0c-1d5b-49bf-beab-f3d7f57d13a4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "b840ab64-0a49-420e-aff7-e15d45c28636", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send email" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "216048d6-3c43-45ac-812a-081354e441b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Send the email using naas.notification\n", + "naas.notification.send(email_to=email_to, subject=subject, html=content, email_from=email_from)" + ] + }, + { + "cell_type": "markdown", + "id": "6588288f-c9e0-4950-a322-2a733b27ab06", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Add scheduler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "178b1e5a-a74b-408c-bf4b-fa5aaa03caad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)" + ] + }, + { + "cell_type": "markdown", + "id": "8626fe95-eb67-4da1-ba0a-a97042ad090e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c10a991b52bbeb12828cfcc922d3d1126bc807071ecf6038d593adbe94fbc6e8", + "notebook_path": "GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb b/GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb new file mode 100644 index 0000000000..bcafce3204 --- /dev/null +++ b/GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb @@ -0,0 +1,591 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ada9f2a9-8daa-4b89-a03c-ffcdae2fd220", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "373a7231-6f7d-47da-b3cd-6b8f5250223a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# GitHub - Send templates created on a notebooks to Slack channel\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "611b4f12-8112-4e0f-b6ac-5bb96855fa7f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #github #templates #created #rest #api #snippet #operations #slack" + ] + }, + { + "cell_type": "markdown", + "id": "7903a6e2-70c3-4149-8279-c603417a7836", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "1a7a6048-1548-4cbe-b908-0a5279535847", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-11 (Created: 2023-07-11)" + ] + }, + { + "cell_type": "markdown", + "id": "4e3aadfe-6d61-41b9-80f2-a790718018ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to send the templates created on GitHub to a specific Slack channel. It includes the sections below:\n", + "\n", + "- ✅ **Templates created:** the total number of templates created (overall, by month, by week).\n", + "- 📊 **Bar chart:** a barchart of the templates created the last 8 weeks\n", + "\n", + "*NB: Execution time may takes between 1 to 4 min.*" + ] + }, + { + "cell_type": "markdown", + "id": "2b5dcc40-1fac-47c9-b577-26229548f2b1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [GitHub REST API Documentation](https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#update-an-issue)\n", + "- [os](https://docs.python.org/3/library/os.html)\n", + "- [Plotly ](https://plotly.com/python/)\n", + "- [Slack Block Kit Builder](https://app.slack.com/block-kit-builder/)" + ] + }, + { + "cell_type": "markdown", + "id": "892d0dd8-86b4-4788-86ac-a8a34a29cb94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "727b3406-2d41-41ff-aad6-10007bda4a69", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c14a82ed-deca-4d54-a1ba-da6356c3865b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from github import Github\n", + "import naas\n", + "import pandas as pd\n", + "from naas_drivers import slack\n", + "import plotly.graph_objects as go\n", + "from datetime import datetime, timedelta, date\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "markdown", + "id": "18a7ce29-9182-4b79-8f5f-5032b8b8774f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `github_token`: [GitHub token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)\n", + "- `repo_name`: name of the repository in two part: owner_name/repository_name\n", + "- `contributor_profile`: your GitHub username\n", + "- `cron`: cron params for naas scheduler\n", + "- `slack_bot_token`: [Slack Bot token](https://docs.celigo.com/hc/en-us/articles/7140655476507-How-to-create-an-app-and-retrieve-OAuth-token-in-Slack)\n", + "- `slack_channel`: The name of the channel you want to send the message" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad68a533-dfdb-44ba-b1f8-860bbe5c8d08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "github_token = naas.secret.get(\"GITHUB_TOKEN\") or \"YOUR_GITHUB_TOKEN\"\n", + "repo_name = \"jupyter-naas/awesome-notebooks\"\n", + "contributor_profile = \"Benjifilly\" #example: \"FlorentLvr\" \n", + "cron = \"0 17 * * 0\"\n", + "\n", + "# Outputs\n", + "slack_bot_token = naas.secret.get(\"SLACK_BOT_TOKEN\") or \"YOUR_SLACK_TOKEN\"\n", + "slack_channel = \"bot-naas-contributors\" #example: \"naas-templates-contributors\"\n", + "image_path = f\"bar_chart.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "ef6aae6b-fe4b-4bc9-955b-533690997ea9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "528c059d-c5dc-4379-b364-5d8ca8bf7af9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to GitHub repo" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97cb8cb4-24e5-411c-a27a-ff58a355d3d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Connect to the GitHub API using pygithub library\n", + "g = Github(github_token)\n", + "\n", + "# Get the repository\n", + "repo = g.get_repo(repo_name)" + ] + }, + { + "cell_type": "markdown", + "id": "a804dbf8-edb6-4445-822f-908011f22b1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get PRs closed\n", + "So here we're filtering out all closed PRs on the `contributor_profile`, then we retrieve the files added by each PR and classify them by month and week." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0db97969-9d57-4e8e-b8bd-058541d36831", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get the closed PR\n", + "pull_requests = repo.get_pulls(state='closed', sort='updated', direction='desc')\n", + "print(\"✅ Pull Requests fetched:\", pull_requests.totalCount)\n", + "\n", + "# Iterate over the pull requests and filter by assignee\n", + "assigned_pull_requests = [pr for pr in pull_requests if pr.assignee and pr.assignee.login == contributor_profile]\n", + "\n", + "# Print the closed PR count\n", + "print(f\"📌Number of assigned closed PR: {len(assigned_pull_requests)}\")" + ] + }, + { + "cell_type": "markdown", + "id": "748b932f-68b3-4823-8ba3-8baef3ba98ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get templates added by PRs closed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22760e59-f553-44c9-8b86-58c82e49fec4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create an empty list to store the files added in closed pull requests\n", + "files_added_month = []\n", + "files_added_week = []\n", + "files_added = []\n", + "\n", + "# Get the current date\n", + "current_date = datetime.now()\n", + "\n", + "# Iterate over the assigned closed pull requests\n", + "for pr in assigned_pull_requests:\n", + " # Get files added\n", + " files = pr.get_files()\n", + "\n", + " # Get the date the file was created\n", + " file_created = pr.merged_at\n", + "\n", + " days_diff = None # Initialize days_diff\n", + "\n", + " if file_created is not None:\n", + " # Calculate the difference in days between the current date and file creation date\n", + " days_diff = (current_date - file_created).days\n", + "\n", + " # Iterate over the files added in the pull request\n", + " for file in files:\n", + " if file.status == \"added\":\n", + " file_path = file.filename\n", + " file_url = file.raw_url\n", + "\n", + " # Prep data\n", + " tmp = {\n", + " \"file_path\": file_path,\n", + " \"file_url\": file_url,\n", + " \"file_created\": pr.merged_at,\n", + " \"pr_number\": pr.number,\n", + " \"pr_title\": pr.title,\n", + " \"pr_url\": pr.url,\n", + " }\n", + "\n", + " # Add the data to the respective lists based on the file creation date\n", + " if days_diff is not None and days_diff <= 30:\n", + " files_added_month.append(tmp)\n", + " if days_diff is not None and days_diff <= 7:\n", + " files_added_week.append(tmp)\n", + "\n", + " # Add the data to the files_added list\n", + " files_added.append(tmp)\n", + "\n", + "# Create a DataFrame from the files_added list\n", + "df_files_added = pd.DataFrame(files_added)\n", + "\n", + "# Calculate the variation between the current month and the last month\n", + "current_month = current_date.month\n", + "last_month = current_month - 1 if current_month > 1 else 12\n", + "files_added_current_month = df_files_added[df_files_added['file_created'].dt.month == current_month]\n", + "files_added_last_month = df_files_added[df_files_added['file_created'].dt.month == last_month]\n", + "variation_month = len(files_added_current_month) - len(files_added_last_month)\n", + "\n", + "# Calculate the variation between the current week and the last week\n", + "current_week = current_date.isocalendar()[1]\n", + "last_week = current_week - 1 if current_week > 1 else 52\n", + "files_added_current_week = df_files_added[df_files_added['file_created'].dt.isocalendar().week == current_week]\n", + "files_added_last_week = df_files_added[df_files_added['file_created'].dt.isocalendar().week == last_week]\n", + "variation_week = len(files_added_current_week) - len(files_added_last_week)\n", + "\n", + "# Prepare the variation strings\n", + "variation_month_str = f\"+{variation_month}\" if variation_month > 0 else str(variation_month)\n", + "variation_week_str = f\"+{variation_week}\" if variation_week > 0 else str(variation_week)\n", + "\n", + "# Print the number of files added and the variations\n", + "print(f\"📈 Number of Files added: {len(df_files_added)}\")\n", + "print(f\"📁 Number of Files added this month: {len(files_added_current_month)} ({variation_month_str} vs last month)\")\n", + "print(f\"📂 Number of Files added this week: {len(files_added_current_week)} ({variation_week_str} vs last week)\")" + ] + }, + { + "cell_type": "markdown", + "id": "03426574-bfae-4955-b0eb-775ba818155b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create dataframe and make a graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d5408c9-e701-4522-b509-cbff714010a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Prepare data for the bar chart\n", + "week_ranges = [] # List to store week ranges\n", + "files_added_by_week = [] # List to store the number of files added per week\n", + "\n", + "# Get the current date\n", + "current_date = datetime.now().date()\n", + "# Get the current week number and year\n", + "current_week = datetime.now().strftime(\"%W\")\n", + "current_year = datetime.now().strftime(\"%Y\")\n", + "\n", + "# Get the start date of the current week (Monday)\n", + "current_start_date = current_date - timedelta(days=current_date.weekday())\n", + "\n", + "# Iterate over the last 8 weeks\n", + "for i in range(8):\n", + " start_date = current_start_date - timedelta(weeks=i)\n", + " end_date = start_date + timedelta(days=6)\n", + " week_range = f\"{start_date.strftime('%d %b')} - {end_date.strftime('%d %b %Y')}\"\n", + " week_ranges.append(week_range)\n", + "\n", + " # Count the number of files added in the current week\n", + " files_added_in_week = len([file for file in files_added if start_date <= file['file_created'].date() <= end_date])\n", + " files_added_by_week.append(files_added_in_week)\n", + " \n", + "# Create the bar chart\n", + "fig = go.Figure(\n", + " data=go.Bar(\n", + " x=week_ranges[::-1],\n", + " y=files_added_by_week[::-1],\n", + " text=files_added_by_week[::-1],\n", + " textposition=\"auto\"\n", + " )\n", + ")\n", + "\n", + "# Update the layout of the chart\n", + "fig.update_layout(\n", + " title= f\"Templates created as of W{current_week} {current_year}\",\n", + " plot_bgcolor=\"white\",\n", + ")\n", + "\n", + "# Get the current timestamp\n", + "timestamp = datetime.now().strftime(\"%Y%m%d%H%M%S\")\n", + "\n", + "# Save the chart as an image with the timestamp in the filename\n", + "image_path = f\"bar_chart_{timestamp}.png\"\n", + "\n", + "# Saving the chart into a .png\n", + "fig.write_image(image_path)\n", + "\n", + "# Display the chart\n", + "fig.show()" + ] + }, + { + "cell_type": "markdown", + "id": "79755e02-a51e-4857-ab66-e1064bb9d9dd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Creating the Slack message\n", + "We used [Block kit builder](https://app.slack.com/block-kit-builder/) to create our templates and adapt it with the dynamic variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "efb2cd48-de69-472b-a40d-fa391a8bb3fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "blocks = [\n", + " {\n", + " \"type\": \"header\",\n", + " \"text\": {\n", + " \"type\": \"plain_text\",\n", + " \"text\": f\"{contributor_profile} - Activity update as of {current_date}\",\n", + " \"emoji\": True\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"✅ *Templates created: {len(files_added)}*\",\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": f\"This month: {len(files_added_current_month)} ({variation_month_str} vs last month)\\nThis week: {len(files_added_current_week)} ({variation_week_str} vs last week)\"\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": \"Here are the 5 latest files added this week:\\n\" + \"\\n\".join([f\"- <{file['file_url']}|{file['file_path']}>\" for file in files_added_week[:5]])\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"image\",\n", + " \"title\": {\n", + " \"type\": \"plain_text\",\n", + " \"text\": \"Evolution by Week\"\n", + " },\n", + " \"image_url\": f\"{naas.assets.add(image_path)}\",\n", + " \"alt_text\": \"Templates created over the last 8 weeks\"\n", + " },\n", + "]\n" + ] + }, + { + "cell_type": "markdown", + "id": "04c0ae0c-1d5b-49bf-beab-f3d7f57d13a4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "b840ab64-0a49-420e-aff7-e15d45c28636", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send message on Slack" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "216048d6-3c43-45ac-812a-081354e441b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "slack.connect(slack_bot_token).send(slack_channel, text=None, blocks=blocks)" + ] + }, + { + "cell_type": "markdown", + "id": "6588288f-c9e0-4950-a322-2a733b27ab06", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Add scheduler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "178b1e5a-a74b-408c-bf4b-fa5aaa03caad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)" + ] + }, + { + "cell_type": "markdown", + "id": "8626fe95-eb67-4da1-ba0a-a97042ad090e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "7b2207634faad3e18e2a4179115d4b835a53bed640a16cccc0c7e8d740a7970f", + "notebook_path": "GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/GitHub/GitHub_Track_issues_on_projects.ipynb b/GitHub/GitHub_Track_issues_on_projects.ipynb index 816d87edf6..88bbba2a14 100644 --- a/GitHub/GitHub_Track_issues_on_projects.ipynb +++ b/GitHub/GitHub_Track_issues_on_projects.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Track issues on projects\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "a50a3e13-8ab1-45d0-be81-2953ca05cfad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Track_notebooks_created_over_time.ipynb b/GitHub/GitHub_Track_notebooks_created_over_time.ipynb index b3f6e52621..067691e66c 100644 --- a/GitHub/GitHub_Track_notebooks_created_over_time.ipynb +++ b/GitHub/GitHub_Track_notebooks_created_over_time.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Track notebooks created over time\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b1a44799-2590-4d4c-8d76-f291390971e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/GitHub/GitHub_Update_issue.ipynb b/GitHub/GitHub_Update_issue.ipynb index 7b652c3258..e63c1b21bc 100644 --- a/GitHub/GitHub_Update_issue.ipynb +++ b/GitHub/GitHub_Update_issue.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# GitHub - Update issue\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "61d4e2c6-d85d-4234-bcfa-1deec557e29e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-26 (Created: 2023-05-26)" + ] + }, { "cell_type": "markdown", "id": "4e3aadfe-6d61-41b9-80f2-a790718018ee", diff --git a/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb b/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb index f78dc5234a..0476f7153c 100644 --- a/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb +++ b/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Automate response from keywords in mailbox\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjay Sabu](https://www.linkedin.com/in/sanjay-sabu-4205/)" ] }, + { + "cell_type": "markdown", + "id": "6f2a2fb3-d60a-4758-b121-723359d97d94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2021-04-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Clean_mailbox.ipynb b/Gmail/Gmail_Clean_mailbox.ipynb index e742ee2d36..7ca5298e36 100644 --- a/Gmail/Gmail_Clean_mailbox.ipynb +++ b/Gmail/Gmail_Clean_mailbox.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Clean mailbox\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "c92fb8c6-627a-4b06-bf40-554e4d1d6c03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb b/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb index f2adf15f0b..19c2b43ef0 100644 --- a/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb +++ b/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Create GitHub issue on specific email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7125417f-b60f-4f67-ad94-9db07189bda4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2023-05-17)" + ] + }, { "cell_type": "markdown", "id": "431ff6f8-871e-4bae-a547-1752b54e7e68", diff --git a/Gmail/Gmail_Create_draft_email.ipynb b/Gmail/Gmail_Create_draft_email.ipynb index 0b75cc925f..cf35f28906 100644 --- a/Gmail/Gmail_Create_draft_email.ipynb +++ b/Gmail/Gmail_Create_draft_email.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Create draft email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "c86d84df-d0b0-405f-9bf2-d314d4024231", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-19 (Created: 2023-05-16)" + ] + }, { "cell_type": "markdown", "id": "d335d8a3-3158-469c-a0e7-3e148d9c7070", diff --git a/Gmail/Gmail_Delete_email_from_mailbox.ipynb b/Gmail/Gmail_Delete_email_from_mailbox.ipynb index c10b1f79cf..a30bf425a9 100644 --- a/Gmail/Gmail_Delete_email_from_mailbox.ipynb +++ b/Gmail/Gmail_Delete_email_from_mailbox.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Delete email from mailbox\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "e97221d7-63ee-46aa-bb0a-5dce2349f353", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Get_emails_by_date.ipynb b/Gmail/Gmail_Get_emails_by_date.ipynb new file mode 100644 index 0000000000..c5cd8d5a8c --- /dev/null +++ b/Gmail/Gmail_Get_emails_by_date.ipynb @@ -0,0 +1,325 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "sustainable-insert", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "forty-morocco", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Gmail - Get emails by date\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "tags_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #gmail #productivity #naas_drivers #operations #automation #analytics #plotly" + ] + }, + { + "cell_type": "markdown", + "id": "367e326e-ad83-445f-b847-666e9e1e79b3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "1c6c2024-93a4-4b3d-a614-6112e28fac08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-07 (Created: 2023-07-07)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides an example of how to retrieve emails based on a specified date or filter them by 'before' or 'after' a given date. It demonstrates the process of fetching emails using date-based criteria for more targeted email retrieval." + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "136b8959-cdb1-42bb-aaf9-2321b2da134d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "civil-possible", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "from naas_drivers import email\n", + "import pandas as pd\n", + "import numpy as np\n", + "import plotly.express as px\n", + "from datetime import date" + ] + }, + { + "cell_type": "markdown", + "id": "copyrighted-lighter", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "Create an application password following [this procedure](https://support.google.com/mail/answer/185833?hl=en)\n", + "- `username`: This variable stores the username or email address associated with the email account\n", + "- `password`: This variable stores the password or authentication token required to access the email account\n", + "- `smtp_server`: This variable represents the SMTP server address used for sending emails.\n", + "- `box`: This variable stores the name or identifier of the mailbox or folder within the email account that will be accessed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "handed-rolling", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "username = \"xxxxx@xxxx\"\n", + "password = naas.secret.get(\"GMAIL_APP_PASSWORD\")\n", + "smtp_server = \"imap.gmail.com\"\n", + "box = \"INBOX\"\n", + "date = date(2023, 6, 5)\n", + "condition = \"on\" # \"on\", \"before\", \"after or on\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "opposite-simon", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to email box" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "painted-harvard", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "emails = email.connect(username, password, username, smtp_server)" + ] + }, + { + "cell_type": "markdown", + "id": "adopted-tolerance", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get email list on a certain date" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "republican-underwear", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "sorted_emails = emails.get_emails_by_date(date=date, condition=condition)\n", + "print(len(sorted_emails))" + ] + }, + { + "cell_type": "markdown", + "id": "6fc5da35-2b1e-44cc-adad-82234440be67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get email list before a certain date" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e7cff9a-aaaa-4eb3-89bb-c775dffb392e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "condition = \"before\"\n", + "sorted_emails = emails.get_emails_by_date(date=date, condition=condition)\n", + "print(len(sorted_emails))" + ] + }, + { + "cell_type": "markdown", + "id": "952d1e32-4b4a-40f7-97e7-9e413862b10f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get email list after or on a certain date" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c71d808-3e44-41bd-a7d9-b3e97a73260b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "condition = \"after or on\"\n", + "sorted_emails = emails.get_emails_by_date(date=date, condition=condition)\n", + "print(len(sorted_emails))" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "protective-bookmark", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Email graph plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b50b025c-1906-4b54-996f-fbb4a92f09b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "sorted_emails" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c2c64b6f6dd2e5281a3730230214ff3d877fea2309eb0b74ddeae27e331cac8a", + "notebook_path": "Gmail/Gmail_Get_emails_by_date.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Gmail/Gmail_Get_emails_stats_by_sender.ipynb b/Gmail/Gmail_Get_emails_stats_by_sender.ipynb index 47453b72df..b0cc8a7cbb 100644 --- a/Gmail/Gmail_Get_emails_stats_by_sender.ipynb +++ b/Gmail/Gmail_Get_emails_stats_by_sender.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Get emails stats by sender\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "96fd4c90-b9da-4a33-b226-62406a400708", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Get_most_common_senders.ipynb b/Gmail/Gmail_Get_most_common_senders.ipynb new file mode 100644 index 0000000000..4c2e723ba5 --- /dev/null +++ b/Gmail/Gmail_Get_most_common_senders.ipynb @@ -0,0 +1,335 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5532892a-b021-4c04-a5b6-9663416bd253", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "0295da1f-0c24-46af-8afe-d2be52c8ec00", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Gmail - Get most common senders\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "26d4b2a1-4002-47f9-9de2-e83fd5ae4312", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #gmail #productivity #naas_drivers #operations #automation #analytics #plotly" + ] + }, + { + "cell_type": "markdown", + "id": "76835606-6353-46d3-957c-938f62133989", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "34f27f75-1f9e-4fa2-9561-16e768f84aae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-19 (Created: 2023-07-19)" + ] + }, + { + "cell_type": "markdown", + "id": "e572e155-0491-462b-857c-eefc229698fc", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook analyses users' inbox, identifies a list of the most common senders depending on the emails for the set period of time, and outputs the list of most common senders.\n", + "This notebook aims to identify unwanted subscriptions or emails that Gmail didn't successfully filter as \"Spam.\"" + ] + }, + { + "cell_type": "markdown", + "id": "788ed066-7292-482b-8cbe-ed994e26e83a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "7b5216ed-e38c-4092-ac27-3f3e7cf81fe3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0340b310-681e-4b7c-aa12-3f6638f279f3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import datetime\n", + "import os\n", + "from imapclient import IMAPClient\n", + "import naas\n", + "from collections import Counter\n", + "import quopri\n", + "import email.header" + ] + }, + { + "cell_type": "markdown", + "id": "b46beb62-898f-4027-86dd-dbb7e3b849e9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "Create an application password following [this procedure](https://support.google.com/mail/answer/185833?hl=en)\n", + "- `username`: This variable stores the username or email address associated with the email account\n", + "- `password`: This variable stores the password or authentication token required to access the email account\n", + "- `date_start`: Number of days to filter your inbox, it must be negative value\n", + "- `most_common_senders`: Number of most common senders you want to list as output" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e3505a01-a236-4ae3-ae6c-983c78b4f5e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "username = \"xxxxx@xxxx\"\n", + "password = naas.secret.get(\"GMAIL_APP_PASSWORD\")\n", + "date_start = -30\n", + "most_common_senders = 10" + ] + }, + { + "cell_type": "markdown", + "id": "0a6368d8-0f06-4dcc-aef7-91396ae01d9d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "f3f059df-c52b-4f91-b768-4f377514d011", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to email box" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "07a44f41-855d-4596-b34b-ad89ccf2167e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "server = IMAPClient('imap.gmail.com')\n", + "server.login(username, password)\n", + "server.select_folder('INBOX')\n", + "print(\"✅ Successfully connected to INBOX\")" + ] + }, + { + "cell_type": "markdown", + "id": "0d1696cd-f09f-4fe4-944f-b86efbcef710", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all emails for the set period of time with their flags (seen or unseen), date, and sender" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "48855835-01fc-423d-9204-2b2a3e978e12", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "today = datetime.date.today()\n", + "start = today + datetime.timedelta(days=date_start)\n", + "all_messages = server.search(['SINCE', start.strftime('%d-%b-%Y')])\n", + "all_metadata = server.fetch(all_messages, ['RFC822.SIZE', 'FLAGS', 'INTERNALDATE', 'ENVELOPE'])\n", + "print(\"✅ All emails fetched:\", len(all_metadata))" + ] + }, + { + "cell_type": "markdown", + "id": "01265664-6d05-4eb7-99a0-83605ad561f1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get the most common senders using the method most_common" + ] + }, + { + "cell_type": "markdown", + "id": "f7bfd2b9-19a2-43ca-95ec-1e695165ae11", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "##### The method most_common identifies the senders with the highest index of occurrences and outputs the sorted list in descending order" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "81336f3e-5d87-4bf5-9b04-e988eb71e61d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "senders = []\n", + "for msg_id, data in all_metadata.items():\n", + " envelope = data[b'ENVELOPE']\n", + " if envelope.from_:\n", + " sender_email = envelope.from_[0].mailbox.decode() + \"@\" + envelope.from_[0].host.decode()\n", + " senders.append(sender_email)\n", + "\n", + "sender_counts = Counter(senders)\n", + "top_senders = sender_counts.most_common(most_common_senders)" + ] + }, + { + "cell_type": "markdown", + "id": "13503ca8-c574-417f-be13-ba59a95e32fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4ff98464-2822-4d31-aa45-0ea1c805b455", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Print the list with the unseen emails for the past two weeks from the top senders" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "5728fb42-8d78-4845-a3f0-2aacb13dc630", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"The {most_common_senders} most common senders:\")\n", + "for sender, count in top_senders:\n", + " print(f\"{sender}: {count} emails\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f53617e1-48c6-47e5-b4ad-bf90b792dd56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "3cc6c378e11b85f9191dac73c7c0f5f5118c8f9f96af0926e9d688849b470db8", + "notebook_path": "Gmail/Gmail_Get_most_common_senders.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Gmail/Gmail_Get_most_important_unseen_emails.ipynb b/Gmail/Gmail_Get_most_important_unseen_emails.ipynb new file mode 100644 index 0000000000..a36dbea8ca --- /dev/null +++ b/Gmail/Gmail_Get_most_important_unseen_emails.ipynb @@ -0,0 +1,392 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "sustainable-insert", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "forty-morocco", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Gmail - Get most important unseen emails\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "tags_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #gmail #productivity #naas_drivers #operations #automation #analytics #plotly" + ] + }, + { + "cell_type": "markdown", + "id": "367e326e-ad83-445f-b847-666e9e1e79b3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "c0f8c7a5-9d04-4edb-a565-e8ec37a35861", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-19 (Created: 2023-07-19)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook retrieves all emails for a set period of time and calculates the user's reply rate to each sender. By identifying the important senders with a higher reply rate, the code helps prioritize the user's responses and ensures timely communication. The code then outputs the list of unseen emails from these important senders, providing a focused view of the most relevant and pending email conversations." + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "136b8959-cdb1-42bb-aaf9-2321b2da134d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "civil-possible", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import datetime\n", + "import os\n", + "try:\n", + " from imapclient import IMAPClient\n", + "except:\n", + " !pip install imapclient --user\n", + " from imapclient import IMAPClient\n", + "import naas\n", + "from collections import Counter\n", + "import quopri\n", + "import email.header" + ] + }, + { + "cell_type": "markdown", + "id": "copyrighted-lighter", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "Create an application password following [this procedure](https://support.google.com/mail/answer/185833?hl=en)\n", + "- `username`: This variable stores the username or email address associated with the email account\n", + "- `password`: This variable stores the password or authentication token required to access the email account\n", + "- `date_start`: Number of days to filter your inbox, it must be negative value\n", + "- `most_common_senders`: Number of most common senders you want to list as output" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "handed-rolling", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "username = \"xxxxx@xxxxx\"\n", + "password = naas.secret.get(\"GMAIL_APP_PASSWORD\")\n", + "date_start = -30\n", + "most_common_senders = 10" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "opposite-simon", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to email box" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "painted-harvard", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "server = IMAPClient('imap.gmail.com')\n", + "server.login(username, password)\n", + "server.select_folder('INBOX')\n", + "print(\"✅ Successfully connected to INBOX\")" + ] + }, + { + "cell_type": "markdown", + "id": "adopted-tolerance", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all seen emails with their flags (seen or unseen), date, and sender" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8ca1a4db-fae5-491b-a324-0359108cfe9c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "today = datetime.date.today()\n", + "start = today + datetime.timedelta(days=date_start)\n", + "all_messages = server.search(['SINCE', start.strftime('%d-%b-%Y')])\n", + "all_metadata = server.fetch(all_messages, ['RFC822.SIZE', 'FLAGS', 'INTERNALDATE', 'ENVELOPE'])\n", + "print(\"✅ All emails fetched:\", len(all_metadata))" + ] + }, + { + "cell_type": "markdown", + "id": "601903d2-f32d-41fe-833c-755ec6531997", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get most viewed senders by counting the occurencies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "584ce61e-88f2-4c7b-8511-ac7934dc6731", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "senders = []\n", + "answered_senders = []\n", + "for msg_id, data in all_metadata.items():\n", + " envelope = data[b'ENVELOPE']\n", + " if envelope.from_:\n", + " sender_email = envelope.from_[0].mailbox.decode() + \"@\" + envelope.from_[0].host.decode()\n", + " senders.append(sender_email)\n", + " if b'\\\\Answered' in data[b'FLAGS']:\n", + " answered_senders.append(sender_email)\n", + "\n", + "sender_counts = Counter(senders)\n", + "answered_sender_counts = Counter(answered_senders)\n", + "\n", + "rate_by_sender = {}\n", + "for sender, count in sender_counts.items():\n", + " answered_count = answered_sender_counts[sender] if sender in answered_sender_counts else 0\n", + " rate = (answered_count / count) * 100\n", + " rate_by_sender[sender] = rate\n", + "\n", + "sorted_senders = sorted(rate_by_sender.items(), key=lambda x: x[1], reverse=True)\n", + "top_senders = sorted_senders[:most_common_senders]\n", + "\n", + "print(\"✅ Top senders by answering rate:\")\n", + "for sender, rate in top_senders:\n", + " print(f\"Sender: {sender}, Answering Rate: {rate}%\")" + ] + }, + { + "cell_type": "markdown", + "id": "cebbe449-f114-4a49-983b-cfdc913e1108", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Identify the unseen emails from the top senders" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "94396d1c-6c83-4bbc-9d42-993b642152d1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "unseen_emails = []\n", + "for sender, count in top_senders:\n", + " unseen_messages = server.search(['UNSEEN', 'FROM', sender, 'SINCE', start.strftime('%d-%b-%Y')])\n", + " unseen_emails.extend(unseen_messages)\n", + "len(unseen_emails)" + ] + }, + { + "cell_type": "markdown", + "id": "f1d21670-dabf-4430-8c1f-d6636fd78d1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Extract the date, sender, and subject from the unseen_emails list to provide data for the output" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b53551be-04f3-482e-a9b2-9d667672ac5e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "email_list = []\n", + "for msg_id in unseen_emails:\n", + " email_data = server.fetch(msg_id, ['ENVELOPE'])[msg_id][b'ENVELOPE']\n", + " sender = email_data.from_[0].mailbox.decode() + \"@\" + email_data.from_[0].host.decode()\n", + " date = email_data.date.strftime(\"%Y-%m-%d\")\n", + " subject_bytes = email_data.subject.decode()\n", + " subject = email.header.decode_header(subject_bytes)[0][0]\n", + " if isinstance(subject, bytes):\n", + " subject = subject.decode()\n", + " email_list.append((sender, date, subject))" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "protective-bookmark", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Print the list with the unseen emails for the past two weeks from the top senders" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bf987a2c-37b0-462d-bdb5-a052d15de044", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "for sender, date, subject in email_list:\n", + " print(f\"{sender:<40} {date:<20} \\\"{subject}\\\"\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "714810e2c13b0614a2e4dcca2ea5dade6fb7472a230e20e2bada4b75a1882fee", + "notebook_path": "Gmail/Gmail_Get_most_important_unseen_emails.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Gmail/Gmail_Get_seen_emails.ipynb b/Gmail/Gmail_Get_seen_emails.ipynb index a2f58cb3ed..e9d69e6f41 100644 --- a/Gmail/Gmail_Get_seen_emails.ipynb +++ b/Gmail/Gmail_Get_seen_emails.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Get seen emails\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "49eeb55b-43b4-4e5c-bd05-0ab1d263c1e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Get_unseen_emails.ipynb b/Gmail/Gmail_Get_unseen_emails.ipynb index a239950c7d..8931e95860 100644 --- a/Gmail/Gmail_Get_unseen_emails.ipynb +++ b/Gmail/Gmail_Get_unseen_emails.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Get unseen emails\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "a578336d-538c-4904-8c71-90e8e1da5bcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb b/Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb new file mode 100644 index 0000000000..1c98a22bc0 --- /dev/null +++ b/Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bf5dc355-1311-4004-8b2b-abfcc5ce82f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "45637f96-2c01-470b-b175-775f441e23e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Gmail - Mark emails as seen by dates\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "ddcebba7-4a40-45d2-b83e-72a7513a1660", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #gmail #productivity #naas_drivers #operations #snippet #dataframe" + ] + }, + { + "cell_type": "markdown", + "id": "f55cd5d1-8f6e-458b-a59e-a258bded8346", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "a1a1fca0-4ac7-4b8a-be8d-feb93e6326b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "2b5999ac-0862-43f2-b6dc-ace799080cea", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook goes through the emails within the date range set by the user and marks them all as seen." + ] + }, + { + "cell_type": "markdown", + "id": "7057d03b-e1e5-4f03-bd9f-579889681498", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "2dd10407-0a8b-4f40-88cc-c4813f0ebab2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "11f52fae-946f-467c-bfd5-d490fdeb7794", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import imaplib\n", + "import email\n", + "from datetime import date\n", + "try:\n", + " from imapclient import IMAPClient\n", + "except:\n", + " !pip install imapclient --user\n", + " from imapclient import IMAPClient" + ] + }, + { + "cell_type": "markdown", + "id": "bf9f67ea-3654-4912-ae9c-6de46d3bdd0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "Create an application password following [this procedure](https://support.google.com/mail/answer/185833?hl=en)\n", + "- `username`: This variable stores the username or email address associated with the email account\n", + "- `password`: This variable stores the password or authentication token required to access the email account\n", + "- `smtp_server`: This variable represents the SMTP server address used for sending emails.\n", + "- `date`: This variable stores the date that will be used to determine the range\n", + "- `condition`: This variable stores the condition to get your emails" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c66a183b-8a06-47fc-af7b-d52856387ec3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "username = \"florent@naas.ai\" or \"xxxxx@xxxx\" # replace with your email\n", + "password = naas.secret.get(\"GMAIL_APP_PASSWORD\")\n", + "smtp_server = \"imap.gmail.com\" # replace xxxx with the relevant server (eg. gmail)\n", + "date = date(2023, 7, 20) # year, month, day\n", + "condition = \"ON\" #\"SINCE\" or \"BEFORE\"" + ] + }, + { + "cell_type": "markdown", + "id": "2a031bcb-bab2-4f91-8ccd-aa75ac767e5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "d02e7b6a-37e4-44d1-bc29-b86553787f0e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to email box" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f14c3efa-987d-4280-8bfa-e3aef58eef11", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "server = IMAPClient('imap.gmail.com')\n", + "server.login(username, password)\n", + "server.select_folder('INBOX')\n", + "print(\"✅ Successfully connected to INBOX\")" + ] + }, + { + "cell_type": "markdown", + "id": "db6a0e8b-9555-4d9d-b972-35dbcbd7eebe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get all messages on conditions" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a7504c1f-3a83-4d15-a499-ed4dbcf4ef50", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "all_messages = server.search([condition, date.strftime('%d-%b-%Y')])\n", + "print(\"✅ Messages fetched:\", len(all_messages))" + ] + }, + { + "cell_type": "markdown", + "id": "12c83411-59b7-4c51-8867-4e26d14715c8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "33fa06bc-b9fa-4edb-95b4-743d96f2ad44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get emails on condition and mark them as seen" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9dbec91e-ead5-413b-95ee-e33ab1d547ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "for message_id in all_messages:\n", + " server.set_flags(message_id, [b'\\\\Seen'])\n", + "print(\"✅ Emails have been marked as seen\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "a2209f3b3f09d821c3270ef170323d3ab2583d4a1c9eb628e3862e887382d6c0", + "notebook_path": "Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Gmail/Gmail_Read_mailbox.ipynb b/Gmail/Gmail_Read_mailbox.ipynb index 956489b65f..6d4cdf1bb9 100644 --- a/Gmail/Gmail_Read_mailbox.ipynb +++ b/Gmail/Gmail_Read_mailbox.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Read mailbox\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu)" ] }, + { + "cell_type": "markdown", + "id": "e9937f70-4d3b-41df-9232-05631085ef13", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2021-04-15)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Gmail/Gmail_Send_email.ipynb b/Gmail/Gmail_Send_email.ipynb index ba004b247a..7c9ea84b78 100644 --- a/Gmail/Gmail_Send_email.ipynb +++ b/Gmail/Gmail_Send_email.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Send email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5ddab8f9-855d-4c25-ad72-6576c6b3e5f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "ccaedd9f-f6a4-473a-9fff-74e6b119bced", diff --git a/Gmail/Gmail_Update_email_flag.ipynb b/Gmail/Gmail_Update_email_flag.ipynb index 7588028ff7..7f160c0767 100644 --- a/Gmail/Gmail_Update_email_flag.ipynb +++ b/Gmail/Gmail_Update_email_flag.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Gmail - Update email flag\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "979b852c-4a75-4b38-b4dd-b9e26cf83bad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb b/Google Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb index 936bf083d0..dddbc9cd8a 100644 --- a/Google Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb +++ b/Google Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow average session duration daily\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "b73f6b75-1594-4ada-b7a5-34d9480a411d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb index 7e435893b0..8894d9bd97 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of new visitors daily\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "96c48b70-d6ca-4168-9f10-e6c836b97a22", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb index db04ae3a15..77b2a4875a 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of new visitors hourly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "d6b1acf4-2ede-40d1-9c66-893161cbfe09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb index 18f400025b..0c8856f5f6 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of new visitors monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "6883787c-519f-484e-b7a8-4cf2c1027570", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb index e51f760b6b..1559f03b5b 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of new visitors weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "d6d698a8-a37f-46d6-9cf0-23b087047e36", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb index cce7f6e3c8..2195fb7060 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of sessions daily\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "ebc5c586-ab49-47c0-b8b6-12fb98670d6b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb index 0d3d2d40ce..0103ef98c0 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of sessions hourly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "72a21371-6e95-4428-8bc5-d25e741e8dd4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb index a46ea65fb1..58442596ad 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of sessions monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "e0f8acbe-393f-4501-98a9-d81e7e6dff57", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb index cfebc9371c..1a804aed3d 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of sessions weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "140081c9-134b-4093-b9a9-aae3beb9681d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb index b9c7f960d5..0ba13dbed2 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of visitors daily\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "5f0173f9-3556-4af0-87c0-ea764f7aacc6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb index 71807d6429..1ea0bb2590 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of visitors hourly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "c6611940-c86e-4fbb-9912-47034d37c0b3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb index 590ef82399..e02d71c950 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of visitors monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "b9872da8-7803-4d51-ae92-f5788518c042", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb b/Google Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb index 490aad0162..abe0cace07 100644 --- a/Google Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb +++ b/Google Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Follow number of visitors weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "912cb9c7-ffe3-4386-afa3-ba68fb4bf361", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Get_bounce_rate.ipynb b/Google Analytics/Google_Analytics_Get_bounce_rate.ipynb index 610185a22a..d90b52e642 100644 --- a/Google Analytics/Google_Analytics_Get_bounce_rate.ipynb +++ b/Google Analytics/Google_Analytics_Get_bounce_rate.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Get bounce rate\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Charles Demontigny](https://www.linkedin.com/in/charles-demontigny/)" ] }, + { + "cell_type": "markdown", + "id": "88a97c83-3a94-46be-ac71-3a87848df3a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Get_pageview_ranking.ipynb b/Google Analytics/Google_Analytics_Get_pageview_ranking.ipynb index 99a9f21297..bd040e106b 100644 --- a/Google Analytics/Google_Analytics_Get_pageview_ranking.ipynb +++ b/Google Analytics/Google_Analytics_Get_pageview_ranking.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Get pageview ranking\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Charles Demontigny](https://www.linkedin.com/in/charles-demontigny/)" ] }, + { + "cell_type": "markdown", + "id": "9262b98a-32d9-48e0-be5e-8edef198182d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Get_stats_per_country.ipynb b/Google Analytics/Google_Analytics_Get_stats_per_country.ipynb index f1b2aad12e..91fe2fc972 100644 --- a/Google Analytics/Google_Analytics_Get_stats_per_country.ipynb +++ b/Google Analytics/Google_Analytics_Get_stats_per_country.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Get stats per country\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Charles Demontigny](https://www.linkedin.com/in/charles-demontigny/)" ] }, + { + "cell_type": "markdown", + "id": "d7566141-5224-433e-9bfa-2e563a65a018", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Get_time_on_landing_page.ipynb b/Google Analytics/Google_Analytics_Get_time_on_landing_page.ipynb index 18fcdddbaa..f16bf113b2 100644 --- a/Google Analytics/Google_Analytics_Get_time_on_landing_page.ipynb +++ b/Google Analytics/Google_Analytics_Get_time_on_landing_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Get time on landing page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Charles Demontigny](https://www.linkedin.com/in/charles-demontigny/)" ] }, + { + "cell_type": "markdown", + "id": "10f07865-6ac2-421e-8b09-8723833ecbe2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Get_unique_visitors.ipynb b/Google Analytics/Google_Analytics_Get_unique_visitors.ipynb index 325df2c541..bd175c62de 100644 --- a/Google Analytics/Google_Analytics_Get_unique_visitors.ipynb +++ b/Google Analytics/Google_Analytics_Get_unique_visitors.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Get unique visitors\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Charles Demontigny](https://www.linkedin.com/in/charles-demontigny/)" ] }, + { + "cell_type": "markdown", + "id": "1e8aa478-2917-44f5-b41c-b13fdf7bc644", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb b/Google Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb index 8b6ff24a9a..9b0bb35237 100644 --- a/Google Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb +++ b/Google Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Analytics - Get unique visitors by country\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Charles Demontigny](https://www.linkedin.com/in/charles-demontigny/)" ] }, + { + "cell_type": "markdown", + "id": "d5e715b7-823b-4e3c-b5cb-a87ee24431b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb b/Google Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb index b6e1bb995f..5f88423834 100644 --- a/Google Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb +++ b/Google Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Analytics - Send visitors traffic graph and trends prediction to Slack channel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maxime-jublou)" ] }, + { + "cell_type": "markdown", + "id": "5018ab00-955b-49b9-8e7e-bbdc604d3a85", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Calendar/Google_Calendar_Get_calendar.ipynb b/Google Calendar/Google_Calendar_Get_calendar.ipynb index 3e869c9ddf..e5bd9f3d87 100644 --- a/Google Calendar/Google_Calendar_Get_calendar.ipynb +++ b/Google Calendar/Google_Calendar_Get_calendar.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Calendar - Get calendar\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil)" ] }, + { + "cell_type": "markdown", + "id": "1bb0b7c0-0942-4f66-811e-cbbb03db683a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "18da03ee-a728-40de-9351-52a1fa228e78", diff --git a/Google Calendar/Google_Calendar_List_calendars.ipynb b/Google Calendar/Google_Calendar_List_calendars.ipynb index d70dd36baa..654e6f6f0a 100644 --- a/Google Calendar/Google_Calendar_List_calendars.ipynb +++ b/Google Calendar/Google_Calendar_List_calendars.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Calendar - List calendars\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil)" ] }, + { + "cell_type": "markdown", + "id": "e1461789-727b-4adc-8bd6-791bd09b5e9e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "38858ee9-46fe-4425-b2df-b501e603f2d2", diff --git a/Google Calendar/Google_Calendar_List_events_from_calendar.ipynb b/Google Calendar/Google_Calendar_List_events_from_calendar.ipynb index e3b0cac56e..c6d34e0ac4 100644 --- a/Google Calendar/Google_Calendar_List_events_from_calendar.ipynb +++ b/Google Calendar/Google_Calendar_List_events_from_calendar.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Calendar - List events from calendar\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil)" ] }, + { + "cell_type": "markdown", + "id": "2b45a733-72ad-43ae-9e53-933b3ddeb5a6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "919b460a-07a8-4371-b7f4-2c1f32718782", diff --git a/Google Drive/Google_Drive_Download_file.ipynb b/Google Drive/Google_Drive_Download_file.ipynb index 50bdbb08b1..6cf24f6c9a 100644 --- a/Google Drive/Google_Drive_Download_file.ipynb +++ b/Google Drive/Google_Drive_Download_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Drive - Download file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "9cf7a189-283d-4986-a75d-0fca9bbffabd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb b/Google Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb new file mode 100644 index 0000000000..fe4aa538cc --- /dev/null +++ b/Google Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb @@ -0,0 +1,354 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Google Maps - Calculate travel costs between two addresses\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #googlemaps #productivity #operations #automation #jupyternotebooks" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "ca7ab0c8-c5ef-48ce-b202-92e25a922807", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-26 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "02372be1-b4aa-485a-8e01-40e209e83880", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook calculates the travel costs between two addresses using Google Maps API." + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "8b137e47-e5f6-429f-8321-3f8e4b070562", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "Pre-requisite: \n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Make sure to enable Routes API as it is in the \"Additional APIs\" section in the google cloud console.\n", + "4. Check the available countries https://developers.google.com/maps/documentation/routes/calculate_toll_fees#toll-locations\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key. The key is retrieved from the secret variable using the Naas secret manager.\n", + "- `start_location`: This variable represents the starting location for a journey. In this case, it's set to 'San Francisco, CA'.\n", + "- `end_location`: This variable indicates the end location or destination for a journey. Here, it's set to 'Los Angeles, CA'." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") # Read API key from the secret variable\n", + "start_location = 'San Francisco, CA'\n", + "end_location = 'Los Angeles, CA'" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4c610c4f-35c2-4685-bc9f-bb316d084db4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get coordinates from address" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "be9f606b-c55d-4185-af58-b0780d4312d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_coordinates(api_key, address):\n", + " # Init\n", + " latitude = None\n", + " longitude = None\n", + " \n", + " # API endpoint\n", + " api_endpoint = 'https://maps.googleapis.com/maps/api/geocode/json'\n", + "\n", + " # Setup params\n", + " params = {\n", + " 'address': address,\n", + " 'key': api_key\n", + " }\n", + " response = requests.get(api_endpoint, params=params)\n", + "\n", + " # Response\n", + " if response.status_code == 200:\n", + " data = response.json()\n", + " if data['status'] == 'OK':\n", + " # Extract and utilize the geolocation information from the response\n", + " results = data['results']\n", + " for result in results:\n", + " latitude = result['geometry']['location']['lat']\n", + " longitude = result['geometry']['location']['lng']\n", + " print(\"📍 Address:\", address)\n", + " print(f'🗺️ Latitude: {latitude}, Longitude: {longitude}')\n", + " else:\n", + " print('Geocoding request failed.')\n", + " else:\n", + " print('Geocoding request failed with status code:', response.status_code)\n", + " return latitude, longitude\n", + "\n", + "print(\"Origin:\")\n", + "origin_lat, origin_lng = get_coordinates(api_key, start_location)\n", + "print()\n", + "print(\"Destination:\")\n", + "destination_lat, destination_lng = get_coordinates(api_key, end_location)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2665cb7f-1504-48d7-9d49-8b30fd80e359", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Calculate travel costs between two addresses\n", + "Request for toll information (more info on https://developers.google.com/maps/documentation/routes/calculate_toll_fees)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_endpoint = 'https://routes.googleapis.com/directions/v2:computeRoutes'\n", + "\n", + "headers = {\n", + " 'Content-Type': 'application/json',\n", + " 'X-Goog-Api-Key': api_key,\n", + " 'X-Goog-FieldMask': 'routes.duration,routes.distanceMeters,routes.travelAdvisory.tollInfo,routes.legs.travelAdvisory.tollInfo'\n", + "}\n", + "\n", + "payload = {\n", + " \"origin\": {\n", + " \"location\": {\n", + " \"latLng\": {\n", + " \"latitude\": origin_lat,\n", + " \"longitude\": origin_lng\n", + " }\n", + " }\n", + " },\n", + " \"destination\": {\n", + " \"location\": {\n", + " \"latLng\": {\n", + " \"latitude\": destination_lat,\n", + " \"longitude\": destination_lng\n", + " }\n", + " }\n", + " },\n", + " \"travelMode\": \"DRIVE\",\n", + " \"extraComputations\": [\"TOLLS\"],\n", + " \"routeModifiers\": {\n", + " \"vehicleInfo\": {\n", + " \"emissionType\": \"GASOLINE\"\n", + " },\n", + " \"tollPasses\": [\n", + " # Add relevant toll passes if applicable\n", + " ]\n", + " }\n", + "}\n", + "\n", + "response = requests.post(api_endpoint, json=payload, headers=headers)\n", + "\n", + "# Manage response\n", + "if response.status_code == 200:\n", + " data = response.json()\n", + " routes = data['routes']\n", + " if routes:\n", + " distance_meters = routes[0]['distanceMeters']\n", + " duration = routes[0]['duration']\n", + " print(\"Distance in Km:\", round(distance_meters / 1000, 2))\n", + " print(\"Duration in Hours:\", round(int(duration[:-1]) / 3600, 2))\n", + " if 'travelAdvisory' in routes[0]:\n", + " toll_info = routes[0]['travelAdvisory']['tollInfo']\n", + " estimated_price = toll_info['estimatedPrice']\n", + " if estimated_price:\n", + " currency_code = estimated_price[0]['currencyCode']\n", + " toll_cost = float(estimated_price[0]['units'])\n", + " formatted_toll_cost = '{:.2f}'.format(toll_cost)\n", + " print('Toll Cost:', currency_code + ' '+ formatted_toll_cost)\n", + " else:\n", + " print('No routes found in the response.')\n", + "else:\n", + " print('Google Maps API request failed with status code:', response.status_code)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "7e5630a4f5744470a9195a186592bb24d9e9900acefba7d9a6ea179bedf905c7", + "notebook_path": "Google Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Google Maps/Google_Maps_Connect_to_Routes_API.ipynb b/Google Maps/Google_Maps_Connect_to_Routes_API.ipynb new file mode 100644 index 0000000000..fa1f102df1 --- /dev/null +++ b/Google Maps/Google_Maps_Connect_to_Routes_API.ipynb @@ -0,0 +1,270 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Google Maps - Connect to Routes API\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #googlemaps #productivity #operations #automation #jupyternotebooks" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "2a810f84-9be8-43ac-8057-c8313a42e4ae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook is designed to perform several functions. Firstly, it acquires the necessary credentials that are required for API access. Then, it proceeds to configure the API endpoint URL. After setting up the URL, it establishes a secure connection between the client and the API. Finally, it validates the user's identity and permissions for interactions with the API." + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "Pre-requisite: \n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Obtain an API key or access token from the Routes API provider.\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key. The key is retrieved from the secret variable using the Naas secret manager." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") # Read API key from the secret variable" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "917a4e16-54ba-4989-b71c-04952c685405", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Test authentication with a simple request\n", + "- `api_endpoint`: API endpoint to be used\n", + "- `start_location`: This variable represents the starting location for a journey. In this case, it's set to 'San Francisco, CA'.\n", + "- `end_location`: This variable indicates the end location or destination for a journey. Here, it's set to 'Los Angeles, CA'." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_endpoint = 'https://maps.googleapis.com/maps/api/directions/json'\n", + "start_location = 'San Francisco, CA'\n", + "end_location = 'Los Angeles, CA'\n", + "\n", + "# Setup pa\n", + "params = {\n", + " 'origin': start_location,\n", + " 'destination': end_location,\n", + " 'key': api_key\n", + "}\n", + "response = requests.get(api_endpoint, params=params)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2665cb7f-1504-48d7-9d49-8b30fd80e359", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0148abca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if response.status_code == 200 and response.json().get('status') == 'OK':\n", + " print('Successfully connected to API.')\n", + "else:\n", + " print('Failed to connect:')\n", + " response.json()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "54859e1650428404cec4471aa488e37169ff7612eafb140d2ec610458085d181", + "notebook_path": "Google Maps/Google_Maps_Connect_to_Routes_API.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Google Maps/Google_Maps_Create_and_display_distance_matrix.ipynb b/Google Maps/Google_Maps_Create_and_display_distance_matrix.ipynb new file mode 100644 index 0000000000..0e1198d5c2 --- /dev/null +++ b/Google Maps/Google_Maps_Create_and_display_distance_matrix.ipynb @@ -0,0 +1,347 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Google Maps - Create and display distance matrix\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #googlemaps #productivity #operations #automation #jupyternotebooks" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "b36dd34f-3fc2-46a4-9f53-164f2bc90572", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-08 (Created: 2023-08-08)" + ] + }, + { + "cell_type": "markdown", + "id": "02372be1-b4aa-485a-8e01-40e209e83880", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows how to use the Google Maps Distance Matrix API to determine distances and trip durations between a number of different origins and destinations, giving accurate and efficient geospatial data. Furthermore, it provides a visual representation of the created matrix." + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b56e47f5-be89-4591-93ec-01e8fac50def", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b63229c-7614-4dc8-ba2a-e0b1e2f64918", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import requests\n", + "import naas\n", + "import folium\n", + "import googlemaps\n", + "import polyline\n", + "from geopy.geocoders import Nominatim" + ] + }, + { + "cell_type": "markdown", + "id": "8b137e47-e5f6-429f-8321-3f8e4b070562", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "Pre-requisite: \n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Make sure to enable Routes API as it is in the \"Additional APIs\" section in the google cloud console.\n", + "4. Check the available countries https://developers.google.com/maps/documentation/routes/calculate_toll_fees#toll-locations\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key.\n", + "- `origins`: This variable represents the starting locations for a journey.\n", + "- `destinations`: This variable indicates the end location or destination for a journey.\n", + "\n", + "**Optional**\n", + "- `colors`: List of colors to be used to diplay routes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") or \"YOUR_GCP_MAP_API_KEY\" # Read API key from the secret variable GCP_MAP_API_KEY\n", + "origins = [\"New York, NY\"]\n", + "destinations = [\"San Francisco, CA\", \"Miami, FL\", \"Seattle, WA\"]\n", + "\n", + "# Optional\n", + "colors = ['blue', 'red', 'green', 'orange', 'purple', 'yellow']" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "715fe3db-23e1-4508-af64-a7d819cf5a53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to Google Maps" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "845fdf01-6fca-46c9-862c-b9ffa79e91c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "gmaps = googlemaps.Client(key=api_key)" + ] + }, + { + "cell_type": "markdown", + "id": "4c610c4f-35c2-4685-bc9f-bb316d084db4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get distance matrix" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be9f606b-c55d-4185-af58-b0780d4312d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_distance_matrix(api_key, origins, destinations, mode=\"driving\", units=\"metric\"):\n", + " url = f\"https://maps.googleapis.com/maps/api/distancematrix/json\"\n", + " params = {\n", + " \"key\": api_key,\n", + " \"origins\": \"|\".join(origins),\n", + " \"destinations\": \"|\".join(destinations),\n", + " \"mode\": mode,\n", + " \"units\": units\n", + " }\n", + "\n", + " response = requests.get(url, params=params)\n", + " data = response.json()\n", + "\n", + " if data[\"status\"] == \"OK\":\n", + " return data[\"rows\"]\n", + " else:\n", + " print(f\"Error: {data['status']}\")\n", + " return None\n", + " \n", + "matrix = get_distance_matrix(api_key, origins, destinations)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2665cb7f-1504-48d7-9d49-8b30fd80e359", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Process the data retrieved by the distance matrix " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fafe16a-ccca-43ae-88fd-eb23af803fe6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if matrix:\n", + " map_routes = folium.Map(location=[37.7749, -122.4194], zoom_start=4)\n", + "\n", + " for origin in origins:\n", + " location = Nominatim(user_agent=\"geoapiExercises\").geocode(origin)\n", + " folium.Marker([location.latitude, location.longitude], popup=folium.Popup(location.address)).add_to(map_routes)\n", + "\n", + " for destination in destinations:\n", + " location = Nominatim(user_agent=\"geoapiExercises\").geocode(destination)\n", + " folium.Marker([location.latitude, location.longitude], popup=folium.Popup(location.address)).add_to(map_routes)\n", + "\n", + " for origin_index, origin in enumerate(matrix):\n", + " for destination_index, destination in enumerate(origin[\"elements\"]):\n", + " if \"status\" in destination and destination[\"status\"] == \"OK\":\n", + " origin_location = origins[origin_index]\n", + " destination_location = destinations[destination_index]\n", + " directions = gmaps.directions(origin_location, destination_location, mode=\"driving\")\n", + " if directions:\n", + " color_index = (origin_index + destination_index) % len(colors) # Fixed color_index calculation\n", + " for step in directions[0]['legs'][0]['steps']:\n", + " polyline_data = step['polyline']['points']\n", + " decoded_points = polyline.decode(polyline_data)\n", + " folium.PolyLine(locations=decoded_points, color=colors[color_index]).add_to(map_routes)\n", + "\n", + "for origin_index, origin in enumerate(matrix):\n", + " for destination_index, destination in enumerate(origin[\"elements\"]):\n", + " distance = destination[\"distance\"][\"text\"]\n", + " duration = destination[\"duration\"][\"text\"]\n", + " color_index = (origin_index + destination_index) % len(colors)\n", + " print(f\"🗺️ From {origins[origin_index]} to {destinations[destination_index]}\")\n", + " print(f\"-Route color: {colors[color_index]} \\n-Distance: {distance} \\n-Duration: {duration}\")\n", + " print()\n", + " \n", + "map_routes" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "d41f3d68b8aab7d650b71042b444c5e5ebb1d8b4d3ca1487383f3c3aab62dc85", + "notebook_path": "Google Maps/Google_Maps_Create_and_display_distance_matrix.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Google Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb b/Google Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb new file mode 100644 index 0000000000..791dde4485 --- /dev/null +++ b/Google Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb @@ -0,0 +1,447 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "aa535dc6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "9baa5343", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Google Maps - Create itinerary optimisation on differents waypoints\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "6d796f78", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #googlemaps #optimization #data #naas_drivers #operations #snippet #dataframe #google_maps_api #directions_api" + ] + }, + { + "cell_type": "markdown", + "id": "a7031597-51fe-4422-9b74-a9964fa99fb9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "9f496b3b-2630-4acf-85a6-d8af48d2c3e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-08 (Created: 2023-08-08)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This template analyses a given set of waypoints, optimizes the order of visiting them, and outputs a list with the correct order. Thus, making it useful for travelers, who want to visit multiple locations most efficiently." + ] + }, + { + "cell_type": "markdown", + "id": "4f808ecf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "82aa1a24", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5dd38d44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import folium\n", + "try:\n", + " import polyline\n", + "except ImportError:\n", + " !pip install polyline\n", + " import polyline\n", + "from geopy.geocoders import Nominatim\n", + "from itertools import permutations\n", + "try:\n", + " import googlemaps\n", + "except ImportError:\n", + " !pip install googlemaps\n", + " import googlemaps" + ] + }, + { + "cell_type": "markdown", + "id": "2195c4c9-e7d0-4f14-a6b3-eab68b7e65c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "Pre-requisite: \n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Make sure to enable Routes API as it is in the \"Additional APIs\" section in the google cloud console.\n", + "4. Check the available countries https://developers.google.com/maps/documentation/routes/calculate_toll_fees#toll-locations\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key.\n", + "- `origin`: This variable represents the starting location for a journey.\n", + "- `waypoints`: This variable indicates the list of differents waypoints for a journey.\n", + "- `destination`: This variable indicates the end location or destination for a journey." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ccb3a83d-9448-40cf-ad37-45d939435e5b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") or \"YOUR_GCP_MAP_API_KEY\" # Read API key from the secret variable GCP_MAP_API_KEY\n", + "origin = \"Circonvallazione Salaria, 00199, Rome RM, Italy\"\n", + "waypoints = [\n", + " \"Corso Australia, 35136 Padova PD, Italy\",\n", + " \"Viale Jacopo dal Verme, 36100 Vicenza, VI, Italy\",\n", + " \"Viale Nino Bixio, 1, 31100 Treviso TV, Italy\"\n", + "]\n", + "destination = \"Milan, Italy\"" + ] + }, + { + "cell_type": "markdown", + "id": "f0a5f069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "3c5ef12a-c817-49b4-a7c0-7167d0662e35", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to Google Maps" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b969ed8e-ac60-40f2-a196-b69a996f3b96", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "gmaps = googlemaps.Client(key=api_key)" + ] + }, + { + "cell_type": "markdown", + "id": "f5adfe2b-7ebe-477d-a684-dfad26b7864d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert the addresses to coordinates function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da376e90-c912-46e5-82bf-5d9ca94125b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_coordinates(locations):\n", + " geolocator = Nominatim(user_agent=\"geoapiExercises\")\n", + " coordinates = []\n", + " for location in locations:\n", + " address = geolocator.geocode(location)\n", + " if address:\n", + " coordinates.append((address.latitude, address.longitude))\n", + " return coordinates" + ] + }, + { + "cell_type": "markdown", + "id": "a704bd92-9e1f-4a4c-bb13-714bbcb91a6c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Calculate total distance function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd81894d-af56-468c-b2da-884a462a6c5f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def calculate_total_distance(gmaps, waypoints):\n", + " total_distance_meters = 0\n", + " for i in range(len(waypoints) - 1):\n", + " from_point = waypoints[i]\n", + " to_point = waypoints[i + 1]\n", + " route = gmaps.directions(from_point, to_point, mode=\"driving\", optimize_waypoints=True)\n", + " if route:\n", + " total_distance_meters += route[0][\"legs\"][0][\"distance\"][\"value\"]\n", + " else:\n", + " raise ValueError(f\"Error calculating distance between waypoints {i} and {i+1}\")\n", + " return total_distance_meters" + ] + }, + { + "cell_type": "markdown", + "id": "a9e1af90-c9e2-4a8e-b03d-d594926ad600", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Optimize waypoints function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89e65f28-7aeb-4857-b16a-272876553714", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def optimize_waypoints(gmaps, waypoints):\n", + " min_distance = float(\"inf\")\n", + " optimized_order = None\n", + "\n", + " for perm in permutations(waypoints[1:-1]):\n", + " waypoints_order = [waypoints[0]] + list(perm) + [waypoints[-1]]\n", + " total_distance = calculate_total_distance(gmaps, waypoints_order)\n", + " if total_distance < min_distance:\n", + " min_distance = total_distance\n", + " optimized_order = waypoints_order\n", + "\n", + " return optimized_order" + ] + }, + { + "cell_type": "markdown", + "id": "1cc17911-a782-4a83-90ec-d31eec8d332b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create a map to display the route" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6ff7054-8fee-456d-a3a1-58b932887b8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "locations = [origin] + waypoints + [destination]\n", + "coordinates = get_coordinates(locations)\n", + "optimized_waypoints = optimize_waypoints(gmaps, coordinates)\n", + "map_optimized_route = folium.Map(location=optimized_waypoints[0], zoom_start=5)\n", + "\n", + "for i in range(len(optimized_waypoints) - 1):\n", + " from_point = optimized_waypoints[i]\n", + " to_point = optimized_waypoints[i + 1]\n", + " route = gmaps.directions(from_point, to_point, mode=\"driving\", optimize_waypoints=True)\n", + " if route:\n", + " route_polyline = route[0][\"overview_polyline\"][\"points\"]\n", + " decoded_points = polyline.decode(route_polyline)\n", + " folium.PolyLine(locations=decoded_points, color='blue').add_to(map_optimized_route)\n", + " for i, waypoint in enumerate(optimized_waypoints):\n", + " location = gmaps.reverse_geocode(waypoint)\n", + " address = location[0][\"formatted_address\"]\n", + " folium.Marker(waypoint, popup=f\"Waypoint {i+1}: {address}\").add_to(map_optimized_route)\n", + " else:\n", + " raise ValueError(f\"Error calculating route between waypoints {from_point} and {to_point}\")" + ] + }, + { + "cell_type": "markdown", + "id": "6dfc80b7-fe40-46de-9a4a-1ecf546a7efc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "3d7cd7d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Print the optimized order of the waypoints and display the route on a map" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfef7669", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Optimized Waypoint Order:\")\n", + "print()\n", + "for i, waypoint in enumerate(optimized_waypoints):\n", + " if isinstance(waypoint, tuple):\n", + " location = gmaps.reverse_geocode(waypoint)\n", + " address = location[0][\"formatted_address\"]\n", + " if i == 0:\n", + " print(f\"🚦 Origin: {address}\")\n", + " elif i == len(optimized_waypoints) - 1:\n", + " print(f\"🏁 Destination: {address}\")\n", + " else:\n", + " print(f\"📍 Waypoint {i}: {address}\")\n", + "\n", + " # Calculate and display the total distance for the optimized order\n", + "total_distance = calculate_total_distance(gmaps, optimized_waypoints)\n", + "total_distance_km = total_distance / 1000\n", + "print()\n", + "print(f\"Total Distance: {total_distance_km:.2f} km\")\n", + "display(map_optimized_route)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29ce97f6-c8b2-4226-a60d-8491029e4eca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "cad8fb307d05f4ec0dcf9a7567bc7e5c2fc50a8ec0f9537ac26299130df2987a", + "notebook_path": "Google Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Google Maps/Google_Maps_Get_coordinates_from_address.ipynb b/Google Maps/Google_Maps_Get_coordinates_from_address.ipynb new file mode 100644 index 0000000000..e5bce648c8 --- /dev/null +++ b/Google Maps/Google_Maps_Get_coordinates_from_address.ipynb @@ -0,0 +1,278 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "e38b257f-d0b0-4e43-a9c6-e63408bde9a3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Google Maps - Get coordinates from address\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "6db49837-2a9c-4bd4-b8ba-74514ff7bef4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #googlemaps #productivity #operations #automation #jupyternotebooks" + ] + }, + { + "cell_type": "markdown", + "id": "26d4184f-eb9d-48cd-985d-264b353b73de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "db52df0e-35e7-40e3-b731-e9815346b6d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-26 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "1f83d4d7-754b-4f61-8662-bcab66118c7f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook get coordinates from a given address using Google Maps API." + ] + }, + { + "cell_type": "markdown", + "id": "84b07a0a-fab7-4e56-9ac7-3c13da444e5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "927f7e82-c26d-4747-930c-14b865c176f4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f982ef3e-d768-4e96-aaf3-afbc74e723a9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "0a559554-9b84-4898-8a46-37ff82a5662f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "Pre-requisite: \n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Obtain an API key and make Geocoding API is enabled (https://console.cloud.google.com/apis/credentials/key/).\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key. The key is retrieved from the secret variable using the Naas secret manager.\n", + "- `address`: This variable is a string that holds a specific location's address." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9059080e-7060-4ed2-971e-843bde6fd407", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") # Read API key from the secret variable\n", + "address = 'Vitosha Boulevard, Sofia, Bulgaria'" + ] + }, + { + "cell_type": "markdown", + "id": "eda290db-d2e4-4457-ae9e-5a4f1cb06069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1e3773f2-7222-4d9c-8c3c-a0d935b258ef", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3f633f1c-9981-4648-9c7c-23db69f36413", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_endpoint = 'https://maps.googleapis.com/maps/api/geocode/json'\n", + "\n", + "# Setup params\n", + "params = {\n", + " 'address': address,\n", + " 'key': api_key\n", + "}\n", + "response = requests.get(api_endpoint, params=params)\n", + "\n", + "# Response\n", + "if response.status_code == 200:\n", + " data = response.json()\n", + " if data['status'] == 'OK':\n", + " # Extract and utilize the geolocation information from the response\n", + " results = data['results']\n", + " for result in results:\n", + " latitude = result['geometry']['location']['lat']\n", + " longitude = result['geometry']['location']['lng']\n", + " print(f'Latitude: {latitude}, Longitude: {longitude}')\n", + " else:\n", + " print('Geocoding request failed.')\n", + "else:\n", + " print('Geocoding request failed with status code:', response.status_code)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "917a4e16-54ba-4989-b71c-04952c685405", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80f8b32f-7cac-41a2-afd9-4d82b3253fa2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"📍 Address:\", address)\n", + "print(f'🗺️ Latitude: {latitude}, Longitude: {longitude}')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "863199793a97917978b0681eac7e59c3615a9e454525435b9a1eb6845f701d40", + "notebook_path": "Google Maps/Google_Maps_Get_coordinates_from_address.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Google Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb b/Google Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb index f034d8fc8f..240ebd6d86 100644 --- a/Google Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb +++ b/Google Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Search - Get LinkedIn company url from name\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "2f5dcf6f-b648-44ee-9b59-da16dc1abd49", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb b/Google Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb index ef0fe1aebb..cabf1e6fc4 100644 --- a/Google Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb +++ b/Google Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Search - Get LinkedIn profile url from name\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "a5d4ae85-7e10-4e25-b3c9-049b5a442ae7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Search/Google_Search_Perform_search.ipynb b/Google Search/Google_Search_Perform_search.ipynb index ce3c61f173..182977ce86 100644 --- a/Google Search/Google_Search_Perform_search.ipynb +++ b/Google Search/Google_Search_Perform_search.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Search - Perform search\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "384b8850-2226-4319-8be1-0391d29a8679", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb b/Google Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb index dcdc6299ce..d613282180 100644 --- a/Google Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb +++ b/Google Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Sheets - Add items to Notion databases from new rows in\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Pooja Srivastava](https://www.linkedin.com/in/pooja-srivastava-bb037649/)" ] }, + { + "cell_type": "markdown", + "id": "d1ebc6ab-fb09-4443-8a14-d9f8d3fddec4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-29)" + ] + }, { "cell_type": "markdown", "id": "23b6826b-2b9d-4322-b2fa-c653b0a31b9d", diff --git a/Google Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb b/Google Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb index 4d8b5fa881..7aedbf8d2b 100644 --- a/Google Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb +++ b/Google Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Sheets - Add new github member to team from spreadsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)\n" ] }, + { + "cell_type": "markdown", + "id": "fc6a949b-f0e2-4994-9445-34b23c92e782", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb b/Google Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb new file mode 100644 index 0000000000..8aa44e0cb0 --- /dev/null +++ b/Google Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb @@ -0,0 +1,433 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "aa535dc6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "9baa5343", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Google Sheets - Calculate distance and price\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "6d796f78", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #googlesheets #gsheet #data #naas_drivers #operations #snippet #dataframe #google_maps_api #routes_api" + ] + }, + { + "cell_type": "markdown", + "id": "a7031597-51fe-4422-9b74-a9964fa99fb9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "86950424-f909-4290-925d-b6fb3f365dc0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This template determines the cost and distance between location extracted from a Google Sheet. It uses the Routes API to estimate the price depending on the distance between sites and outputs the updated Google Sheet with distances and prices." + ] + }, + { + "cell_type": "markdown", + "id": "4f808ecf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "82aa1a24", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "5dd38d44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "from naas_drivers import gsheet\n", + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "c523bc27-b2a4-48c5-8481-2fba58d23288", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Get your Google Maps API key**\n", + "\n", + "1. Follow the steps in the link - https://developers.google.com/maps/documentation/routes/cloud-setup\n", + "2. Sign up for an account with the Routes API provider.\n", + "3. Make sure to enable Routes API as it is in the \"Additional APIs\" section in the google cloud console.\n", + "4. Check the available countries https://developers.google.com/maps/documentation/routes/calculate_toll_fees#toll-locations\n", + "\n", + "- `api_key`: This variable holds the Google Cloud Platform (GCP) API key. The key is retrieved from the secret variable using the Naas secret manager.\n", + "\n", + "**Setup Google Sheets**\n", + "\n", + "Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com\n", + "\n", + "- `spreadsheet_url`: Google Sheets spreadsheet URL\n", + "- `sheet_name`: Google Sheets sheet name\n", + "- `origin_column`: Origin column name\n", + "- `destination_column`: Destination column name" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ccb3a83d-9448-40cf-ad37-45d939435e5b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"GCP_MAP_API_KEY\") # Read API key from the secret variable\n", + "spreadsheet_url = \"https://docs.google.com/spreadsheets/x/xxxxxxxxxxxxxx/edit?usp=sharing\"\n", + "sheet_name = \"Random\"\n", + "origin_column = \"Origin\"\n", + "destination_column = \"Destination\"" + ] + }, + { + "cell_type": "markdown", + "id": "f0a5f069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "f6591574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get data from Google Sheets spreadsheet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35371ee4-b69c-4fe3-bbcd-1da5a667f0c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = gsheet.connect(spreadsheet_url).get(sheet_name=sheet_name)\n", + "print(\"Row fetched:\", len(df))\n", + "df.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "a9e1af90-c9e2-4a8e-b03d-d594926ad600", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert addresses to coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "89e65f28-7aeb-4857-b16a-272876553714", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_coordinates(address):\n", + " geocoding_api_endpoint = \"https://maps.googleapis.com/maps/api/geocode/json\"\n", + " params = {\"address\": address, \"key\": api_key}\n", + " response = requests.get(geocoding_api_endpoint, params=params)\n", + " data = response.json()\n", + " if data[\"status\"] == \"OK\":\n", + " result = data[\"results\"][0]\n", + " lat = result[\"geometry\"][\"location\"][\"lat\"]\n", + " lng = result[\"geometry\"][\"location\"][\"lng\"]\n", + " return lat, lng\n", + " else:\n", + " return None" + ] + }, + { + "cell_type": "markdown", + "id": "060132f0-a7f0-4908-b725-91cd06c1415f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Update the Google Sheet with the relevant coordinates" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "88103b78-9e77-4148-864e-d826e7318f2c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "for index, row in df.iterrows():\n", + " origin_address = row[origin_column]\n", + " destination_address = row[destination_column]\n", + " \n", + " origin_coordinates = get_coordinates(origin_address)\n", + " if origin_coordinates:\n", + " df.at[index, \"Origin lat\"] = origin_coordinates[0]\n", + " df.at[index, \"Origin lng\"] = origin_coordinates[1]\n", + " \n", + " destination_coordinates = get_coordinates(destination_address)\n", + " if destination_coordinates:\n", + " df.at[index, \"Destination lat\"] = destination_coordinates[0]\n", + " df.at[index, \"Destination lng\"] = destination_coordinates[1]" + ] + }, + { + "cell_type": "markdown", + "id": "c0de533a-f0bf-4844-a7ff-ecd601c66bd1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Retrieve distance and toll information from Routes API and update the sheet" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4b88771d-408f-495c-b8d5-cdeb0ee4b7ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_endpoint = 'https://routes.googleapis.com/directions/v2:computeRoutes'\n", + "\n", + "headers = {\n", + " 'Content-Type': 'application/json',\n", + " 'X-Goog-Api-Key': api_key,\n", + " 'X-Goog-FieldMask': 'routes.duration,routes.distanceMeters,routes.travelAdvisory.tollInfo,routes.legs.travelAdvisory.tollInfo'\n", + "}\n", + "\n", + "for index, row in df.iterrows():\n", + " origin_lat = row[\"Origin lat\"]\n", + " origin_lng = row[\"Origin lng\"]\n", + " destination_lat = row[\"Destination lat\"]\n", + " destination_lng = row[\"Destination lng\"]\n", + "\n", + " payload = {\n", + " \"origin\": {\n", + " \"location\": {\n", + " \"latLng\": {\n", + " \"latitude\": origin_lat,\n", + " \"longitude\": origin_lng\n", + " }\n", + " }\n", + " },\n", + " \"destination\": {\n", + " \"location\": {\n", + " \"latLng\": {\n", + " \"latitude\": destination_lat,\n", + " \"longitude\": destination_lng\n", + " }\n", + " }\n", + " },\n", + " \"travelMode\": \"DRIVE\",\n", + " \"extraComputations\": [\"TOLLS\"],\n", + " \"routeModifiers\": {\n", + " \"vehicleInfo\": {\n", + " \"emissionType\": \"GASOLINE\"\n", + " },\n", + " \"tollPasses\": [\n", + " # Add relevant toll passes if applicable\n", + " ]\n", + " }\n", + " }\n", + "\n", + " response = requests.post(api_endpoint, json=payload, headers=headers)\n", + " if response.status_code == 200:\n", + " data = response.json()\n", + " if \"routes\" in data and len(data[\"routes\"]) > 0:\n", + " route = data[\"routes\"][0]\n", + " distance_meters = route.get(\"distanceMeters\")\n", + " if distance_meters:\n", + " distance_km = distance_meters / 1000\n", + " df.loc[index, \"Distance\"] = f\"{distance_km:.2f} km\"\n", + " if 'travelAdvisory' in route:\n", + " toll_info = route.get(\"travelAdvisory\", {}).get(\"tollInfo\", {})\n", + " toll_info = route.get(\"travelAdvisory\", {}).get(\"tollInfo\", {})\n", + " estimated_price = toll_info.get(\"estimatedPrice\", [])\n", + " if estimated_price:\n", + " currency_code = estimated_price[0].get(\"currencyCode\", \"\")\n", + " toll_cost = float(estimated_price[0].get(\"units\", 0))\n", + " formatted_toll_cost = '{:.2f}'.format(toll_cost)\n", + " df.loc[index, \"Toll costs\"] = currency_code + ' ' + formatted_toll_cost\n", + " else:\n", + " df.loc[index, \"Toll costs\"] = \"Not available\"\n", + " else:\n", + " print(f\"No routes found in the response for row {index+2}\")\n", + " else:\n", + " print(f\"Route calculation request failed for row {index+2} with status code: {response.status_code}\")" + ] + }, + { + "cell_type": "markdown", + "id": "7cb92cff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "3d7cd7d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Update Google Sheet spreadsheet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a49d96f-393d-4777-8190-68c3e40ecfd5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = gsheet.connect(spreadsheet_url).send(sheet_name=sheet_name, data=df, append=False)\n", + "if \"error\" in result:\n", + " print(\"Failed to save the sheet.\")\n", + "else:\n", + " print(\"Saved successfully.\")" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b04ee5b4b37c8b2317bef0807a60465579484e42bc08e2d5ccc93e264b98f84d", + "notebook_path": "Google Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Google Sheets/Google_Sheets_Get_data.ipynb b/Google Sheets/Google_Sheets_Get_data.ipynb index df64fcf299..e87de6ceb5 100644 --- a/Google Sheets/Google_Sheets_Get_data.ipynb +++ b/Google Sheets/Google_Sheets_Get_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Sheets - Get data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "fac900c5-38e7-4d7a-9e41-bae265cba285", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -55,7 +66,7 @@ ] }, "source": [ - "**Description:** This notebook provides a guide to using Google Sheets to access and analyze data." + "**Description:** This notebook demonstrates how to get data from a Google Sheets spreadsheet and return a DataFrame." ] }, { @@ -77,7 +88,7 @@ "tags": [] }, "source": [ - "### Import library" + "### Import libraries" ] }, { @@ -95,30 +106,33 @@ }, { "cell_type": "markdown", - "id": "5ed35269", + "id": "00dceeff-0fc6-4373-9299-8db7073744f4", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Setup Google Sheets\n", - "- Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com" + "### Setup variables\n", + "\n", + "Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com\n", + "\n", + "- `spreadsheet_url`: Google Sheets spreadsheet URL\n", + "- `sheet_name`: Google Sheets sheet name" ] }, { "cell_type": "code", "execution_count": null, - "id": "2a52d140", + "id": "53d5eba3-bcda-4293-ab5b-c97835cbe58e", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "SPREADSHEET_URL = (\n", - " \"https://docs.google.com/spreadsheets/d/1RdwdYXDFDSFSFxxxxxxxx/edit#gid=XXXXXXXX33\"\n", - ")\n", - "SHEET_NAME = \"MY_SHEET\"" + "# Mandatory\n", + "spreadsheet_url = \"https://docs.google.com/spreadsheets/d/1RdwdYXDFDSFSFxxxxxxxx/edit#gid=XXXXXXXX33\"\n", + "sheet_name = \"MY_SHEET\"" ] }, { @@ -140,7 +154,7 @@ "tags": [] }, "source": [ - "### Get data from Google Sheets spreadsheet" + "### Get data" ] }, { @@ -153,7 +167,8 @@ }, "outputs": [], "source": [ - "df = gsheet.connect(SPREADSHEET_URL).get(sheet_name=SHEET_NAME)" + "df = gsheet.connect(spreadsheet_url).get(sheet_name=sheet_name)\n", + "df" ] }, { @@ -188,7 +203,7 @@ }, "outputs": [], "source": [ - "df" + "print('Row fetched:', len(df))" ] } ], diff --git a/Google Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb b/Google Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb index 938c439326..9ed5dd5070 100644 --- a/Google Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb +++ b/Google Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Google Sheets - Send LinkedIn invitations from spreadsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Valentin Goulet](https://www.linkedin.com/in/valentin-goulet-3a3070152/)" ] }, + { + "cell_type": "markdown", + "id": "56d9dfaa-8727-4112-9598-ea26d63baee8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Sheets/Google_Sheets_Send_data.ipynb b/Google Sheets/Google_Sheets_Send_data.ipynb index e319a0ee03..e0de1c36a8 100644 --- a/Google Sheets/Google_Sheets_Send_data.ipynb +++ b/Google Sheets/Google_Sheets_Send_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Sheets - Send data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ac074990-8ac1-4f3f-aafd-191661fa63ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -55,7 +66,7 @@ ] }, "source": [ - "**Description:** This notebook allows users to send data from Google Sheets to other applications." + "**Description:** This notebook allows to send data to Google Sheets to a Google Sheets spreadsheet." ] }, { @@ -77,7 +88,7 @@ "tags": [] }, "source": [ - "### Import library" + "### Import libraries" ] }, { @@ -96,14 +107,22 @@ }, { "cell_type": "markdown", - "id": "81303223-fdb5-4d2d-ad70-251351a2c1b2", + "id": "ec39e794-a8cd-41b8-9489-9ddb962a601c", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Setup Google Sheets\n", - "- Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com" + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com\n", + "\n", + "- `spreadsheet_url`: Google Sheets spreadsheet URL\n", + "- `sheet_name`: Google Sheets sheet name\n", + "\n", + "**Optional**\n", + "- `append`: If False, data will be canceled and replaced." ] }, { @@ -116,38 +135,12 @@ }, "outputs": [], "source": [ - "SPREADSHEET_URL = (\n", - " \"https://docs.google.com/spreadsheets/d/1RdwdYXDFDSFSFxxxxxxxx/edit#gid=XXXXXXXX33\"\n", - ")\n", - "SHEET_NAME = \"MY_SHEET\"" - ] - }, - { - "cell_type": "markdown", - "id": "b82dbc1b-acf3-4e44-8dac-e4f631787afa", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Variables" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "34407369-03a1-45c4-9768-03222224612b", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "data = [\n", - " {\"name\": \"Jean\", \"email\": \"jean@appleseed.com\"},\n", - " {\"name\": \"Bunny\", \"email\": \"bunny@appleseed.com\"},\n", - "]\n", - "df = pd.DataFrame(data)" + "# Mandatory\n", + "spreadsheet_url = \"https://docs.google.com/spreadsheets/d/1RdwdYXDFDSFSFxxxxxxxx/edit#gid=XXXXXXXX33\"\n", + "sheet_name = \"MY_SHEET\"\n", + "\n", + "# Optional\n", + "append = False" ] }, { @@ -163,28 +156,31 @@ }, { "cell_type": "markdown", - "id": "28b11537-6391-4022-b55d-dd1f84cbe97f", + "id": "b82dbc1b-acf3-4e44-8dac-e4f631787afa", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Send dataframe to Google Sheets spreadsheet" + "### Create DataFrame" ] }, { "cell_type": "code", "execution_count": null, - "id": "32e91b35-c1f8-4fe6-ae78-a2d4b79c8be7", + "id": "34407369-03a1-45c4-9768-03222224612b", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "result = gsheet.connect(SPREADSHEET_URL).send(\n", - " sheet_name=SHEET_NAME, data=df, append=False\n", - ")" + "data = [\n", + " {\"name\": \"Jean\", \"email\": \"jean@appleseed.com\"},\n", + " {\"name\": \"Bunny\", \"email\": \"bunny@appleseed.com\"},\n", + "]\n", + "df = pd.DataFrame(data)\n", + "df" ] }, { @@ -200,26 +196,26 @@ }, { "cell_type": "markdown", - "id": "74f3896b-2eff-4da8-b0cc-81a357c96066", + "id": "28b11537-6391-4022-b55d-dd1f84cbe97f", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Display result" + "### Send data to Google Sheets spreadsheet" ] }, { "cell_type": "code", "execution_count": null, - "id": "78ace406-6f24-4a42-aba2-7ec643a18651", + "id": "32e91b35-c1f8-4fe6-ae78-a2d4b79c8be7", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "result" + "gsheet.connect(spreadsheet_url).send(sheet_name=sheet_name, data=df, append=append)" ] } ], diff --git a/Google Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb b/Google Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb index 644868e30f..ece1d117c3 100644 --- a/Google Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb +++ b/Google Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Sheets - Send data to MongoDB\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "1b33747e-182f-4ca8-83da-25cf0c2f0890", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-21)" + ] + }, { "cell_type": "markdown", "id": "3b8d1d18-61a6-45dd-9258-3fe32d2e6b3c", diff --git a/Google Sheets/Google_Sheets_Send_emails_from_sheet.ipynb b/Google Sheets/Google_Sheets_Send_emails_from_sheet.ipynb index 0b3c2c81e7..17af9eaf1a 100644 --- a/Google Sheets/Google_Sheets_Send_emails_from_sheet.ipynb +++ b/Google Sheets/Google_Sheets_Send_emails_from_sheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Sheets - Send emails from sheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "7f3a7e1c-2827-47b2-8a99-52d2834f82fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Google Slides/Google_Slides_Create_a_Slide.ipynb b/Google Slides/Google_Slides_Create_a_Slide.ipynb index 2e8f4f9e12..81e36029c2 100644 --- a/Google Slides/Google_Slides_Create_a_Slide.ipynb +++ b/Google Slides/Google_Slides_Create_a_Slide.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Slides - Create a Slide\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "99c4bf14-6f78-4cea-bc91-6bc4c0dc2deb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-20)" + ] + }, { "cell_type": "markdown", "id": "3b0bab0b-8174-4ef4-ac87-5567dbd02b7d", diff --git a/Google Slides/Google_Slides_Create_a_blank_presentation.ipynb b/Google Slides/Google_Slides_Create_a_blank_presentation.ipynb index 4a2cdb48ed..12f4c10798 100644 --- a/Google Slides/Google_Slides_Create_a_blank_presentation.ipynb +++ b/Google Slides/Google_Slides_Create_a_blank_presentation.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Slides - Create a blank presentation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "caee52f2-8017-408d-8203-8e40a237e433", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-20)" + ] + }, { "cell_type": "markdown", "id": "09517615-515a-4af8-9a7d-fd9984f02eac", diff --git a/Google Slides/Google_Slides_Duplicate_slide.ipynb b/Google Slides/Google_Slides_Duplicate_slide.ipynb index 07212cd62e..7c07b69cd3 100644 --- a/Google Slides/Google_Slides_Duplicate_slide.ipynb +++ b/Google Slides/Google_Slides_Duplicate_slide.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Slides - Duplicate slide\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "6afd1501-7c59-49f5-ad61-f10cc1799aae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-24)" + ] + }, { "cell_type": "markdown", "id": "2dc8a869-42a4-40bb-87d8-c8d5c0272eee", diff --git a/Google Slides/Google_Slides_List_slides_in_presentation.ipynb b/Google Slides/Google_Slides_List_slides_in_presentation.ipynb index fe1eefa418..1598370565 100644 --- a/Google Slides/Google_Slides_List_slides_in_presentation.ipynb +++ b/Google Slides/Google_Slides_List_slides_in_presentation.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Slides - List slides in presentation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "0a96fe6c-da92-4916-8b49-ddff236f6d0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-24)" + ] + }, { "cell_type": "markdown", "id": "97979593-b78f-4842-b7ef-07ce6e433989", diff --git a/Google Slides/Google_Slides_Replace_text_within_a_shape.ipynb b/Google Slides/Google_Slides_Replace_text_within_a_shape.ipynb index 304e571aaf..7560b6463d 100644 --- a/Google Slides/Google_Slides_Replace_text_within_a_shape.ipynb +++ b/Google Slides/Google_Slides_Replace_text_within_a_shape.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Google Slides - Replace text within a shape\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "591bf826-6643-40bd-8a58-ea24f0688120", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-25 (Created: 2023-04-21)" + ] + }, { "cell_type": "markdown", "id": "31819550-05d0-4547-bfe1-552aabe88ae2", diff --git a/HTML/HTML_Create_a_website.ipynb b/HTML/HTML_Create_a_website.ipynb index 79e20aeb23..2c1db5da0f 100644 --- a/HTML/HTML_Create_a_website.ipynb +++ b/HTML/HTML_Create_a_website.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# HTML - Create a website\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "601a3f9c-7e71-4d60-97aa-17c25821262e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-10-03)" + ] + }, { "cell_type": "markdown", "id": "50557ec6-ae10-4edc-99e3-3acc164992a7", diff --git a/Harvest/Harvest_Filtered_time_entries.ipynb b/Harvest/Harvest_Filtered_time_entries.ipynb new file mode 100644 index 0000000000..fcbb4ac1f5 --- /dev/null +++ b/Harvest/Harvest_Filtered_time_entries.ipynb @@ -0,0 +1,410 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2a47dd5-bd4b-40ae-807a-33733f54526c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7b1332f0-6461-48ed-937b-d596e7355431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Harvest - Get Filtered List of Time Entries\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "798bab33-186a-4734-a231-29d04ee4bf74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #harvest #timeentries #api #list #python #get #filter" + ] + }, + { + "cell_type": "markdown", + "id": "7f10c96e-15a4-4ad0-8d3f-986439cd148f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Landry Christensen](https://github.com/lchristensen6)" + ] + }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-01 (Created: 2023-08-01)" + ] + }, + { + "cell_type": "markdown", + "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will create a filtered list of time entries from the Harvest API v2. It is usefull for organizations to quickly access and display time entries based on a specific filter, such as by time period or project." + ] + }, + { + "cell_type": "markdown", + "id": "ab0b9e99-1655-4e11-a2c9-bbb4e391a4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Harvest API v2 - Time Entries](https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries/)\n", + "- [Harvest API v2 - Authentication](https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/)" + ] + }, + { + "cell_type": "markdown", + "id": "c13b8aad-48a0-4802-9179-d98608369f46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4092d0fe-1091-4865-8047-107dce67f67a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0be5433a-7621-427c-87e3-a23cde697521", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "c9a72c9a-516c-4cf6-9229-356ce62bd494", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "**Mandatory**\n", + "\n", + "[Create your personnal access tokens](https://id.getharvest.com/oauth2/access_tokens/new)\n", + "- `account_id`: Account ID from Harvest\n", + "- `access_token`: Access token from Harvest\n", + "- `limit`: Entries limit, to get all entries enter -1\n", + "\n", + "**Optional**\n", + "- `user_id`: User ID from Harvest\n", + "- `client_id`: Client ID from Harvest\n", + "- `project_id`: Project ID from Harvest\n", + "- `task_id`: Task ID from Harvest\n", + "- `date_from`: Starting date to filter from ([ISO 8601 Format](https://en.wikipedia.org/wiki/ISO_8601)), Example date '2023-08-01'\n", + "- `date_to`: Ending date to filter from ([ISO 8601 Format](https://en.wikipedia.org/wiki/ISO_8601)), Example date '2023-08-01'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1146059a-d69a-46c6-877f-3b64cb3844b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "account_id = naas.secret.get(\"HARVEST_ACCOUNT_ID\") or \"YOUR_HARVEST_ACCOUNT_ID\"\n", + "access_token = naas.secret.get(\"HARVEST_ACCESS_TOKEN\") or \"YOUR_HARVEST_ACCESS_TOKEN\"\n", + "limit = 1000\n", + "\n", + "# Optional\n", + "user_id = None\n", + "client_id = None\n", + "project_id = None\n", + "task_id = None\n", + "date_from = None\n", + "date_to = None" + ] + }, + { + "cell_type": "markdown", + "id": "b6e5afde-6a5b-4813-a4a9-280c34b68790", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "18b5d596-5730-4755-acd0-bf83f9da5dcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all time entries" + ] + }, + { + "cell_type": "markdown", + "id": "2bf3c5e8-1072-4c54-898a-7f5aa6cb9f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list filtered time entries from the Harvest API v2." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3044b9c3-2ae0-432b-9227-24ed5d08c1d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Flatten the nested dict\n", + "def flatten_dict(d, parent_key='', sep='_'):\n", + " \"\"\"\n", + " Flattens a nested dictionary into a single level dictionary.\n", + "\n", + " Args:\n", + " d (dict): A nested dictionary.\n", + " parent_key (str): Optional string to prefix the keys with.\n", + " sep (str): Optional separator to use between parent_key and child_key.\n", + "\n", + " Returns:\n", + " dict: A flattened dictionary.\n", + " \"\"\"\n", + " items = []\n", + " for k, v in d.items():\n", + " new_key = f\"{parent_key}{sep}{k}\" if parent_key else k\n", + " if isinstance(v, dict):\n", + " items.extend(flatten_dict(v, new_key, sep=sep).items())\n", + " else:\n", + " items.append((new_key, v))\n", + " return dict(items)\n", + "\n", + "def list_time_entries(\n", + " account_id,\n", + " access_token,\n", + " limit=-1,\n", + " user_id=None,\n", + " client_id=None, \n", + " project_id=None,\n", + " task_id=None,\n", + " date_from=None,\n", + " date_to=None\n", + "):\n", + " # Init\n", + " data = []\n", + " df = pd.DataFrame()\n", + " params = {}\n", + " \n", + " # Requests\n", + " url = f\"https://api.harvestapp.com/v2/time_entries?account_id={account_id}\"\n", + " headers = {\n", + " \"Authorization\": f\"Bearer {access_token}\",\n", + " \"Harvest-Account-Id\": account_id,\n", + " \"User-Agent\": \"Harvest API Python Client\",\n", + " \"Content-Type\": \"application/json\",\n", + " }\n", + " # Set params\n", + " if user_id:\n", + " params[\"user_id\"] = user_id\n", + " if client_id:\n", + " params[\"client_id\"] = client_id\n", + " if project_id:\n", + " params[\"project_id\"] = project_id\n", + " if task_id:\n", + " params[\"task_id\"] = task_id\n", + " if date_from:\n", + " params[\"from\"] = date_from\n", + " if date_to:\n", + " params[\"to\"] = date_to\n", + " \n", + " # Loop on while\n", + " while True:\n", + " res = requests.get(url, headers=headers, params=params)\n", + " if res.status_code == 200:\n", + " # Get data\n", + " res_json = res.json()\n", + " time_entries = res_json.get(\"time_entries\")\n", + " for time_entry in time_entries:\n", + " data.append(flatten_dict(time_entry))\n", + " \n", + " # Manage limit\n", + " if limit != -1 and len(data) >= limit:\n", + " break\n", + " \n", + " # Check next link\n", + " link_next = res_json.get(\"links\").get(\"next\")\n", + " if link_next:\n", + " url = link_next\n", + " else:\n", + " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", + " \n", + " # Transform in dataframes\n", + " df = pd.DataFrame(data)\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9fd9975b-2db5-4c00-916b-0e08f32d1668", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "536197c4-3909-4b5e-a87f-346d07c32308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f312a847-d9e6-4481-aca9-61ada7f96fe4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_time_entries = list_time_entries(\n", + " account_id,\n", + " access_token,\n", + " limit,\n", + " user_id=user_id,\n", + " client_id=client_id,\n", + " project_id=project_id,\n", + " task_id=task_id,\n", + " date_from=date_from,\n", + " date_to=date_to\n", + ")\n", + "\n", + "print(\"Row fetched:\", len(df_time_entries))\n", + "df_time_entries.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2e7f2ab-673e-4c60-ab0a-7c1f6f09c2dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d99f3d4-849d-4383-8577-df8424516818", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "dbd059d8bc4a12b38bd1d41128de9f4b6610c0048c178f8d96b57bb1d852f5b0", + "notebook_path": "Harvest/Harvest_Filtered_time_entries.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Harvest/Harvest_List_all_clients.ipynb b/Harvest/Harvest_List_all_clients.ipynb index 403e62f38d..d047f1a4d3 100644 --- a/Harvest/Harvest_List_all_clients.ipynb +++ b/Harvest/Harvest_List_all_clients.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Harvest - List all clients\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3072d119-50c8-4060-aef4-c33a7ddf31ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-16 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "03dc290b-9432-4a2d-93b5-a755d0d03e2f", diff --git a/Harvest/Harvest_List_all_time_entries.ipynb b/Harvest/Harvest_List_all_time_entries.ipynb index ec76978ad3..fcd2c09976 100644 --- a/Harvest/Harvest_List_all_time_entries.ipynb +++ b/Harvest/Harvest_List_all_time_entries.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Harvest - List all time entries\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-13 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", @@ -133,7 +144,7 @@ "source": [ "account_id = naas.secret.get(\"HARVEST_ACCOUNT_ID\") or \"YOUR_HARVEST_ACCOUNT_ID\"\n", "access_token = naas.secret.get(\"HARVEST_ACCESS_TOKEN\") or \"YOUR_HARVEST_ACCESS_TOKEN\"\n", - "limit = 1000" + "limit = 100" ] }, { @@ -235,6 +246,9 @@ " url = link_next\n", " else:\n", " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", " \n", " # Transform in dataframes\n", " df = pd.DataFrame(data)\n", diff --git a/Harvest/Harvest_List_all_users.ipynb b/Harvest/Harvest_List_all_users.ipynb new file mode 100644 index 0000000000..645b34f546 --- /dev/null +++ b/Harvest/Harvest_List_all_users.ipynb @@ -0,0 +1,344 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f2a47dd5-bd4b-40ae-807a-33733f54526c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7b1332f0-6461-48ed-937b-d596e7355431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Harvest - List all users\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "798bab33-186a-4734-a231-29d04ee4bf74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #harvest #users #api #list #python #get" + ] + }, + { + "cell_type": "markdown", + "id": "7f10c96e-15a4-4ad0-8d3f-986439cd148f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Landry Christensen](https://github.com/lchristensen6)" + ] + }, + { + "cell_type": "markdown", + "id": "f60cad1d-8350-41e9-b82b-46282a3bf075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-03 (Created: 2023-08-03)" + ] + }, + { + "cell_type": "markdown", + "id": "fb7805d7-e41b-45a3-a8e0-531d6310b4e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will list all users from the Harvest API v2. This is helpful as it allows organizations to quickly display all of their users on Harvest." + ] + }, + { + "cell_type": "markdown", + "id": "ab0b9e99-1655-4e11-a2c9-bbb4e391a4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Harvest API v2 - Users](https://help.getharvest.com/api-v2/users-api/users/users/)\n", + "- [Harvest API v2 - Authentication](https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/)" + ] + }, + { + "cell_type": "markdown", + "id": "c13b8aad-48a0-4802-9179-d98608369f46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4092d0fe-1091-4865-8047-107dce67f67a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0be5433a-7621-427c-87e3-a23cde697521", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "c9a72c9a-516c-4cf6-9229-356ce62bd494", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "\n", + "[Create your personnal access tokens](https://id.getharvest.com/oauth2/access_tokens/new)\n", + "- `account_id`: Account ID from Harvest\n", + "- `access_token`: Access token from Harvest\n", + "- `limit`: users limit, to get all users enter -1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1146059a-d69a-46c6-877f-3b64cb3844b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "account_id = naas.secret.get(\"HARVEST_ACCOUNT_ID\") or \"YOUR_HARVEST_ACCOUNT_ID\"\n", + "access_token = naas.secret.get(\"HARVEST_ACCESS_TOKEN\") or \"YOUR_HARVEST_ACCESS_TOKEN\"\n", + "limit = 1000" + ] + }, + { + "cell_type": "markdown", + "id": "b6e5afde-6a5b-4813-a4a9-280c34b68790", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "18b5d596-5730-4755-acd0-bf83f9da5dcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all users" + ] + }, + { + "cell_type": "markdown", + "id": "2bf3c5e8-1072-4c54-898a-7f5aa6cb9f40", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will list all users from the Harvest API v2." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3044b9c3-2ae0-432b-9227-24ed5d08c1d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_users(\n", + " account_id,\n", + " access_token,\n", + " limit=-1,\n", + "):\n", + " # Init\n", + " data = []\n", + " df = pd.DataFrame()\n", + " params = {}\n", + " \n", + " # Requests\n", + " url = f\"https://api.harvestapp.com/v2/users?account_id={account_id}\"\n", + " headers = {\n", + " \"Authorization\": f\"Bearer {access_token}\",\n", + " \"Harvest-Account-Id\": account_id,\n", + " \"User-Agent\": \"Harvest API Python Client\",\n", + " \"Content-Type\": \"application/json\",\n", + " }\n", + " \n", + " # Loop on while\n", + " while True:\n", + " res = requests.get(url, headers=headers, params=params)\n", + " if res.status_code == 200:\n", + " # Get data\n", + " res_json = res.json()\n", + " users = res_json.get(\"users\")\n", + " for user in users:\n", + " data.append(user)\n", + " \n", + " # Manage limit\n", + " if limit != -1 and len(data) >= limit:\n", + " break\n", + " \n", + " # Check next link\n", + " link_next = res_json.get(\"links\").get(\"next\")\n", + " if link_next:\n", + " url = link_next\n", + " else:\n", + " break\n", + " else:\n", + " print(res.status_code, res.json().get(\"message\"))\n", + " break\n", + " \n", + " # Transform in dataframes\n", + " df = pd.DataFrame(data)\n", + " return df" + ] + }, + { + "cell_type": "markdown", + "id": "9fd9975b-2db5-4c00-916b-0e08f32d1668", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "536197c4-3909-4b5e-a87f-346d07c32308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f312a847-d9e6-4481-aca9-61ada7f96fe4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_users = list_users(\n", + " account_id,\n", + " access_token,\n", + " limit\n", + ")\n", + "print(\"Row fetched:\", len(df_users))\n", + "df_users.head()" + ] + }, + { + "cell_type": "markdown", + "id": "e2e7f2ab-673e-4c60-ab0a-7c1f6f09c2dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d99f3d4-849d-4383-8577-df8424516818", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "a4f6376cc053d445a9a1d10372766aeefa9588c710352decfd1af2a049a09310", + "notebook_path": "Harvest/Harvest_List_all_users.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb b/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb index a79c663590..16d096860a 100644 --- a/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb +++ b/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Healthchecks - Perfom basic actions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "ca10fc15-99e7-4845-bc12-7ea3e10170f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb b/HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb new file mode 100644 index 0000000000..16d65f8d92 --- /dev/null +++ b/HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "41701675-6c02-45d5-adc9-f4d25e675d93", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "cd48954d-be6f-4871-8c98-5c583536bc8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Add LinkedIn message to contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "560cebbf-0383-48b4-9028-fb51527dbfd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #communications #linkedin #snippet #contact #association" + ] + }, + { + "cell_type": "markdown", + "id": "c37bd3a4-e8ee-4f73-983a-76a70c4d2b0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "4f8d1619-eec0-496d-b143-e05362d16095", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "17dd1212-48d4-4add-b721-9dc79df07be7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to add a LinkedIn message to a given contact in HubSpot. It uses the communication endpoint in HubSpot. It could be useful to create integration directly from your LinkedIn messages." + ] + }, + { + "cell_type": "markdown", + "id": "42d15859-c77b-44b6-a381-4bd29ae6d431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)v\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)" + ] + }, + { + "cell_type": "markdown", + "id": "0a7fcd20-b42d-419f-ad8b-3fe000b75dd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f67b8d68-5af9-4317-a5c3-e2362852c115", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c78fcd5f-5320-4285-abd2-c111229a10c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "from datetime import datetime, date, timezone\n", + "from pprint import pprint" + ] + }, + { + "cell_type": "markdown", + "id": "3fa1db25-a349-45f2-8a3b-f02f2613ec56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `communication_body`: This variable stores the message that will be added to the communication.\n", + "- `contact_id`: This variable stores the HubSpot contact ID that will be associated to the communication.\n", + "- `communication_datetime`: This variable stores date and time of the communication. If None communication date will be now." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfc59bad-a1ee-46e0-8135-a8400f796c03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "communication_body = \"My First LinkedIn message\"\n", + "contact_id = \"308551\"\n", + "communication_datetime = None or datetime(2023, 8, 17, 16, 5, 5)" + ] + }, + { + "cell_type": "markdown", + "id": "a5af4540-050a-442a-b6a1-8d7c0837ecc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "b858a58a-af59-44ff-94cd-5c4a47046be0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create communication" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fa3158b-52b8-4019-a5ef-010ee70928c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_communication(\n", + " api_key,\n", + " communication_body,\n", + " contact_id,\n", + " communication_datetime=None,\n", + " channel_type=None,\n", + "):\n", + " # Init\n", + " data = []\n", + " \n", + " # Get the current timestamp in UTC\n", + " if not communication_datetime:\n", + " communication_datetime = datetime.utcnow()\n", + " \n", + " hs_timestamp = communication_datetime.replace(tzinfo=timezone.utc).strftime(\"%s\") + \"000\"\n", + " \n", + " # Requests\n", + " url = \"https://api.hubapi.com/crm/v3/objects/Communications\"\n", + " payload = {\n", + " \"properties\":\n", + " {\n", + " \"hs_communication_channel_type\": channel_type,\n", + " \"hs_communication_logged_from\": \"CRM\",\n", + " \"hs_communication_body\": communication_body,\n", + " \"hs_timestamp\": hs_timestamp\n", + " },\n", + " \"associations\": [\n", + " {\n", + " \"to\": {\"id\": contact_id},\n", + " \"types\": [\n", + " {\n", + " \"associationCategory\": \"HUBSPOT_DEFINED\",\n", + " \"associationTypeId\": 81 #contact\n", + " }\n", + " ]\n", + " }\n", + " ]\n", + " }\n", + "\n", + " headers = {\n", + " 'accept': \"application/json\",\n", + " 'content-type': \"application/json\",\n", + " 'authorization': f\"Bearer {api_key}\"\n", + " }\n", + "\n", + " # Response\n", + " res = requests.post(url, headers=headers, json=payload)\n", + " if res.status_code == 201:\n", + " data = res.json()\n", + " else:\n", + " print(res.text)\n", + " return data\n", + "\n", + "data = create_communication(api_key, communication_body, contact_id, communication_datetime, \"LINKEDIN_MESSAGE\")\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "81fb8701-4143-49d1-87b3-5db07242ce58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "56ff3568-f3fc-4157-8e46-e5eaeb23e9b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e35ea6b-32fd-4e11-a6b3-8614e7ae749a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(data) > 0:\n", + " pprint(data.get(\"properties\"))" + ] + }, + { + "cell_type": "markdown", + "id": "60d2a2c5-0b58-4069-947c-39427572135c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "995754444ddb900c81983085697f28649f333866641490313e567b1e0a3c9396", + "notebook_path": "HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb b/HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb new file mode 100644 index 0000000000..a56013895e --- /dev/null +++ b/HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "41701675-6c02-45d5-adc9-f4d25e675d93", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "cd48954d-be6f-4871-8c98-5c583536bc8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Add SMS message to contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "560cebbf-0383-48b4-9028-fb51527dbfd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #communications #SMS #snippet #contact #association" + ] + }, + { + "cell_type": "markdown", + "id": "c37bd3a4-e8ee-4f73-983a-76a70c4d2b0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "4f8d1619-eec0-496d-b143-e05362d16095", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "17dd1212-48d4-4add-b721-9dc79df07be7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to add SMS message to a given contact in HubSpot. It uses the communication endpoint in HubSpot. It could be useful to integrate with tools like Twilio." + ] + }, + { + "cell_type": "markdown", + "id": "42d15859-c77b-44b6-a381-4bd29ae6d431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)v\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)" + ] + }, + { + "cell_type": "markdown", + "id": "0a7fcd20-b42d-419f-ad8b-3fe000b75dd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f67b8d68-5af9-4317-a5c3-e2362852c115", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c78fcd5f-5320-4285-abd2-c111229a10c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "from datetime import datetime, date, timezone\n", + "from pprint import pprint" + ] + }, + { + "cell_type": "markdown", + "id": "3fa1db25-a349-45f2-8a3b-f02f2613ec56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `communication_body`: This variable stores the message that will be added to the communication.\n", + "- `contact_id`: This variable stores the HubSpot contact ID that will be associated to the communication.\n", + "- `communication_datetime`: This variable stores date and time of the communication. If None communication date will be now." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfc59bad-a1ee-46e0-8135-a8400f796c03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "communication_body = \"My First SMS\"\n", + "contact_id = \"308551\"\n", + "communication_datetime = None or datetime(2023, 8, 17, 16, 5, 5)" + ] + }, + { + "cell_type": "markdown", + "id": "a5af4540-050a-442a-b6a1-8d7c0837ecc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "b858a58a-af59-44ff-94cd-5c4a47046be0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create communication" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fa3158b-52b8-4019-a5ef-010ee70928c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_communication(\n", + " api_key,\n", + " communication_body,\n", + " contact_id,\n", + " communication_datetime=None,\n", + " channel_type=None,\n", + "):\n", + " # Init\n", + " data = []\n", + " \n", + " # Get the current timestamp in UTC\n", + " if not communication_datetime:\n", + " communication_datetime = datetime.utcnow()\n", + " \n", + " hs_timestamp = communication_datetime.replace(tzinfo=timezone.utc).strftime(\"%s\") + \"000\"\n", + " \n", + " # Requests\n", + " url = \"https://api.hubapi.com/crm/v3/objects/Communications\"\n", + " payload = {\n", + " \"properties\":\n", + " {\n", + " \"hs_communication_channel_type\": channel_type,\n", + " \"hs_communication_logged_from\": \"CRM\",\n", + " \"hs_communication_body\": communication_body,\n", + " \"hs_timestamp\": hs_timestamp\n", + " },\n", + " \"associations\": [\n", + " {\n", + " \"to\": {\"id\": contact_id},\n", + " \"types\": [\n", + " {\n", + " \"associationCategory\": \"HUBSPOT_DEFINED\",\n", + " \"associationTypeId\": 81 #contact\n", + " }\n", + " ]\n", + " }\n", + " ]\n", + " }\n", + "\n", + " headers = {\n", + " 'accept': \"application/json\",\n", + " 'content-type': \"application/json\",\n", + " 'authorization': f\"Bearer {api_key}\"\n", + " }\n", + "\n", + " # Response\n", + " res = requests.post(url, headers=headers, json=payload)\n", + " if res.status_code == 201:\n", + " data = res.json()\n", + " else:\n", + " print(res.text)\n", + " return data\n", + "\n", + "data = create_communication(api_key, communication_body, contact_id, communication_datetime, \"SMS\")\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "81fb8701-4143-49d1-87b3-5db07242ce58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "56ff3568-f3fc-4157-8e46-e5eaeb23e9b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e35ea6b-32fd-4e11-a6b3-8614e7ae749a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(data) > 0:\n", + " pprint(data.get(\"properties\"))" + ] + }, + { + "cell_type": "markdown", + "id": "60d2a2c5-0b58-4069-947c-39427572135c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "84696ceb69fada2dae72389c3da1f4cb0d8ed06cce7d33bf3f1e5772859e4c04", + "notebook_path": "HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb b/HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb new file mode 100644 index 0000000000..88480925dc --- /dev/null +++ b/HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "41701675-6c02-45d5-adc9-f4d25e675d93", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "cd48954d-be6f-4871-8c98-5c583536bc8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Add WhatsApp message to contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "560cebbf-0383-48b4-9028-fb51527dbfd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #communications #whatsapp #snippet #contact #association" + ] + }, + { + "cell_type": "markdown", + "id": "c37bd3a4-e8ee-4f73-983a-76a70c4d2b0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "4f8d1619-eec0-496d-b143-e05362d16095", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "17dd1212-48d4-4add-b721-9dc79df07be7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to add WhatsApp message to a given contact in HubSpot. It uses the communication endpoint in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "42d15859-c77b-44b6-a381-4bd29ae6d431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)v\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)" + ] + }, + { + "cell_type": "markdown", + "id": "0a7fcd20-b42d-419f-ad8b-3fe000b75dd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f67b8d68-5af9-4317-a5c3-e2362852c115", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "c78fcd5f-5320-4285-abd2-c111229a10c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "from datetime import datetime, date, timezone\n", + "from pprint import pprint" + ] + }, + { + "cell_type": "markdown", + "id": "3fa1db25-a349-45f2-8a3b-f02f2613ec56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `communication_body`: This variable stores the message that will be added to the communication.\n", + "- `contact_id`: This variable stores the HubSpot contact ID that will be associated to the communication.\n", + "- `communication_datetime`: This variable stores date and time of the communication. If None communication date will be now." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cfc59bad-a1ee-46e0-8135-a8400f796c03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "communication_body = \"My First WhatsApp message\"\n", + "contact_id = \"308551\"\n", + "communication_datetime = None or datetime(2023, 8, 17, 16, 5, 5)" + ] + }, + { + "cell_type": "markdown", + "id": "a5af4540-050a-442a-b6a1-8d7c0837ecc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "b858a58a-af59-44ff-94cd-5c4a47046be0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create communication" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2fa3158b-52b8-4019-a5ef-010ee70928c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_communication(\n", + " api_key,\n", + " communication_body,\n", + " contact_id,\n", + " communication_datetime=None,\n", + " channel_type=None,\n", + "):\n", + " # Init\n", + " data = []\n", + " \n", + " # Get the current timestamp in UTC\n", + " if not communication_datetime:\n", + " communication_datetime = datetime.utcnow()\n", + " \n", + " hs_timestamp = communication_datetime.replace(tzinfo=timezone.utc).strftime(\"%s\") + \"000\"\n", + " \n", + " # Requests\n", + " url = \"https://api.hubapi.com/crm/v3/objects/Communications\"\n", + " payload = {\n", + " \"properties\":\n", + " {\n", + " \"hs_communication_channel_type\": channel_type,\n", + " \"hs_communication_logged_from\": \"CRM\",\n", + " \"hs_communication_body\": communication_body,\n", + " \"hs_timestamp\": hs_timestamp\n", + " },\n", + " \"associations\": [\n", + " {\n", + " \"to\": {\"id\": contact_id},\n", + " \"types\": [\n", + " {\n", + " \"associationCategory\": \"HUBSPOT_DEFINED\",\n", + " \"associationTypeId\": 81 #contact\n", + " }\n", + " ]\n", + " }\n", + " ]\n", + " }\n", + "\n", + " headers = {\n", + " 'accept': \"application/json\",\n", + " 'content-type': \"application/json\",\n", + " 'authorization': f\"Bearer {api_key}\"\n", + " }\n", + "\n", + " # Response\n", + " res = requests.post(url, headers=headers, json=payload)\n", + " if res.status_code == 201:\n", + " data = res.json()\n", + " else:\n", + " print(res.text)\n", + " return data\n", + "\n", + "data = create_communication(api_key, communication_body, contact_id, communication_datetime, \"WHATS_APP\")\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "81fb8701-4143-49d1-87b3-5db07242ce58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "56ff3568-f3fc-4157-8e46-e5eaeb23e9b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6e35ea6b-32fd-4e11-a6b3-8614e7ae749a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(data) > 0:\n", + " pprint(data.get(\"properties\"))" + ] + }, + { + "cell_type": "markdown", + "id": "60d2a2c5-0b58-4069-947c-39427572135c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "09a2fdd2c66a2ffb4736afbf1c4347feac6703273eccc90780482835a14a7760", + "notebook_path": "HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Associate_contact_to_deal.ipynb b/HubSpot/HubSpot_Associate_contact_to_deal.ipynb index f8d4a3fa06..cba3f6ff4c 100644 --- a/HubSpot/HubSpot_Associate_contact_to_deal.ipynb +++ b/HubSpot/HubSpot_Associate_contact_to_deal.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Associate contact to deal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "851944bb-96c3-4ea7-840a-16e9d8f61a96", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "6f197b57-5719-49b3-a303-bac5c78acd7f", diff --git a/HubSpot/HubSpot_Create_Task.ipynb b/HubSpot/HubSpot_Create_Task.ipynb index 57951b9930..8c630f3be4 100644 --- a/HubSpot/HubSpot_Create_Task.ipynb +++ b/HubSpot/HubSpot_Create_Task.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Create Task\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "0112a822-dc60-4dea-b7da-8327faa2f450", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-24)" + ] + }, { "cell_type": "markdown", "id": "1b80532f-fa52-4a81-925b-a43cbb03d921", diff --git a/HubSpot/HubSpot_Create_contact.ipynb b/HubSpot/HubSpot_Create_contact.ipynb index 5587718f4c..6c1c06defe 100644 --- a/HubSpot/HubSpot_Create_contact.ipynb +++ b/HubSpot/HubSpot_Create_contact.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Create contact\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "202a9157-9d18-404d-a4e0-33cd8508571a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb b/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb index b121c1551f..987a093c1c 100644 --- a/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb +++ b/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Create contact from LinkedIn profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4b8a6c3a-ac09-474a-bcc5-585c1773c7cd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-13)" + ] + }, { "cell_type": "markdown", "id": "00057beb-0a1e-4f78-9638-9cace5d41aa6", diff --git a/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb b/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb index fc69f7be85..94ce176f5a 100644 --- a/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb +++ b/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Create contacts from linkedin post likes\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "91c0ce6f-29f5-4b66-a99b-3d92ab16024a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "2812ab44-eead-426b-ba50-d92f38ec2f97", diff --git a/HubSpot/HubSpot_Create_deal.ipynb b/HubSpot/HubSpot_Create_deal.ipynb index 16f77085a4..1eaf4a59dc 100644 --- a/HubSpot/HubSpot_Create_deal.ipynb +++ b/HubSpot/HubSpot_Create_deal.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Create deal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6e0eb080-1449-442f-a0bd-7a5581707754", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Create_note.ipynb b/HubSpot/HubSpot_Create_note.ipynb index dec08696b9..6832fdaf47 100644 --- a/HubSpot/HubSpot_Create_note.ipynb +++ b/HubSpot/HubSpot_Create_note.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Create note\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d6e68008-eba4-40c6-95fd-4e5510b910b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "0588e448-9df5-4cb4-be75-fe669a7c03b8", diff --git a/HubSpot/HubSpot_Delete_Task.ipynb b/HubSpot/HubSpot_Delete_Task.ipynb index f6b0698e6d..e151038964 100644 --- a/HubSpot/HubSpot_Delete_Task.ipynb +++ b/HubSpot/HubSpot_Delete_Task.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Delete Task\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "05a1f2f7-bcdc-4c14-8374-8a73d447eaac", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-12)" + ] + }, { "cell_type": "markdown", "id": "9c98c826-82e3-4567-b672-4698a6afb517", diff --git a/HubSpot/HubSpot_Delete_communication.ipynb b/HubSpot/HubSpot_Delete_communication.ipynb new file mode 100644 index 0000000000..d7fdc08a0b --- /dev/null +++ b/HubSpot/HubSpot_Delete_communication.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "41701675-6c02-45d5-adc9-f4d25e675d93", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "cd48954d-be6f-4871-8c98-5c583536bc8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Delete communication\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "560cebbf-0383-48b4-9028-fb51527dbfd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #communications #snippet #delete" + ] + }, + { + "cell_type": "markdown", + "id": "c37bd3a4-e8ee-4f73-983a-76a70c4d2b0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "4f8d1619-eec0-496d-b143-e05362d16095", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "17dd1212-48d4-4add-b721-9dc79df07be7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to delete a communication using its ID using HubSpot API." + ] + }, + { + "cell_type": "markdown", + "id": "42d15859-c77b-44b6-a381-4bd29ae6d431", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)" + ] + }, + { + "cell_type": "markdown", + "id": "0a7fcd20-b42d-419f-ad8b-3fe000b75dd3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "f67b8d68-5af9-4317-a5c3-e2362852c115", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c78fcd5f-5320-4285-abd2-c111229a10c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "3fa1db25-a349-45f2-8a3b-f02f2613ec56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `object_id`: This variable stores the object ID." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfc59bad-a1ee-46e0-8135-a8400f796c03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "object_id = 38797358764" + ] + }, + { + "cell_type": "markdown", + "id": "a5af4540-050a-442a-b6a1-8d7c0837ecc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "b858a58a-af59-44ff-94cd-5c4a47046be0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Delete communication" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fa3158b-52b8-4019-a5ef-010ee70928c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def delete_communication(\n", + " token,\n", + " object_id,\n", + "\n", + "):\n", + " # Requests\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v3/objects/Communications/{object_id}\"\n", + "\n", + " # Response\n", + " res = requests.delete(url, headers=headers)\n", + " if res.status_code == 204:\n", + " print(f\"Communication '{object_id}' successfully deleted!\")\n", + " else:\n", + " print(res.text)\n", + " return res\n", + "\n", + "res = delete_communication(hs_access_token, object_id)" + ] + }, + { + "cell_type": "markdown", + "id": "81fb8701-4143-49d1-87b3-5db07242ce58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "56ff3568-f3fc-4157-8e46-e5eaeb23e9b9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e35ea6b-32fd-4e11-a6b3-8614e7ae749a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "res" + ] + }, + { + "cell_type": "markdown", + "id": "60d2a2c5-0b58-4069-947c-39427572135c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "18ba61523d3000719630fd0b6bc6b478568078713221a8163f89e7eadeb10dee", + "notebook_path": "HubSpot/HubSpot_Delete_communication.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Delete_contact.ipynb b/HubSpot/HubSpot_Delete_contact.ipynb index 1844ec9b5a..a9882214e1 100644 --- a/HubSpot/HubSpot_Delete_contact.ipynb +++ b/HubSpot/HubSpot_Delete_contact.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Delete contact\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "aae2bd00-66ed-4496-b63b-323f267eda2c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Delete_deal.ipynb b/HubSpot/HubSpot_Delete_deal.ipynb index 34825a11a6..e1933813f6 100644 --- a/HubSpot/HubSpot_Delete_deal.ipynb +++ b/HubSpot/HubSpot_Delete_deal.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Delete deal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6fcdf02f-c09e-4bbc-a9ca-2bb4a1a3f9d9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Delete_note.ipynb b/HubSpot/HubSpot_Delete_note.ipynb index 4bab1f71d7..1254590b3f 100644 --- a/HubSpot/HubSpot_Delete_note.ipynb +++ b/HubSpot/HubSpot_Delete_note.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Delete note\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,110 +54,88 @@ }, { "cell_type": "markdown", - "id": "91f0dc85-72a1-45ee-bbd0-c790d21bae2c", + "id": "cb54bc5f-61cf-467e-ba45-4ea9a47c42d1", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "**Description:** This template deletes note with a note ID as input." + "**Last update:** 2023-08-21 (Created: 2022-05-31)" ] }, { "cell_type": "markdown", - "id": "distinguished-truth", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "## Input" - ] - }, - { - "cell_type": "markdown", - "id": "numeric-mediterranean", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Import libraries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "potential-surfing", + "id": "91f0dc85-72a1-45ee-bbd0-c790d21bae2c", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "import requests\n", - "import json\n", - "import naas" + "**Description:** This notebook demonstrates how to delete a note using its ID using HubSpot API." ] }, { "cell_type": "markdown", - "id": "c08dd35d-d963-4bfc-9837-875b679b1d3d", + "id": "distinguished-truth", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Setup HubSpot\n", - "👉 Starting November 30, 2022, HubSpot API keys no longer enable access to HubSpot APIs, so in Naas version 2.8.3 and above, you need [create a private app and use the access token](https://developers.hubspot.com/docs/api/private-apps)." + "## Input" ] }, { "cell_type": "markdown", - "id": "078ebc00-9cc3-4bc5-b309-b72163cd3310", + "id": "numeric-mediterranean", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter Your Access Token" + "### Import libraries" ] }, { "cell_type": "code", "execution_count": null, - "id": "36bd049b-d707-4871-8bab-7f592cd9e391", + "id": "potential-surfing", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "HS_ACCESS_TOKEN = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + "import requests\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "aggressive-trustee", + "id": "2d2120b0-a965-47b9-bbfe-803ef4dc432c", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Setup your note info" + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `object_id`: This variable stores the object ID." ] }, { "cell_type": "code", "execution_count": null, - "id": "ab201c68-7b10-46b1-a3df-2453f2ad59b5", + "id": "a2b9ba91-140d-43a2-b731-014df55454e8", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "note_id = 19996680052" + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "object_id = 36918162210" ] }, { @@ -179,7 +157,7 @@ "tags": [] }, "source": [ - "### Function to delete note" + "### Delete note" ] }, { @@ -192,18 +170,26 @@ }, "outputs": [], "source": [ - "def delete_note(note_id):\n", - " url = f\"https://api.hubapi.com/crm/v3/objects/notes/{note_id}\"\n", + "def delete_note(\n", + " token,\n", + " object_id\n", + "):\n", + " # Requests\n", " headers = {\n", - " \"accept\": \"application/json\",\n", - " \"content-type\": \"application/json\",\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", " }\n", - " params = {\"limit\": \"100\", \"archived\": \"false\", \"hapikey\": HS_API_KEY}\n", - " # Requests data\n", - " res = requests.delete(url, headers=headers, params=params)\n", - " res.raise_for_status()\n", + " url = f\"https://api.hubapi.com/crm/v3/objects/notes/{object_id}\"\n", + "\n", + " # Response\n", + " res = requests.delete(url, headers=headers)\n", " if res.status_code == 204:\n", - " print(f\"❎ Note deleted in HubSpot: {note_id}\")" + " print(f\"Note '{object_id}' successfully deleted!\")\n", + " else:\n", + " print(res.text)\n", + " return res\n", + "\n", + "res = delete_note(hs_access_token, object_id)" ] }, { @@ -245,7 +231,7 @@ }, "outputs": [], "source": [ - "delete_note(note_id)" + "res" ] } ], @@ -287,4 +273,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/HubSpot/HubSpot_Get_Task.ipynb b/HubSpot/HubSpot_Get_Task.ipynb index 6142558727..8fc547f751 100644 --- a/HubSpot/HubSpot_Get_Task.ipynb +++ b/HubSpot/HubSpot_Get_Task.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Get Task\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "f2bbeeff-0962-45de-a77f-b6533ccdf402", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-12)" + ] + }, { "cell_type": "markdown", "id": "5813e973-df1c-4240-bcdf-54141a9a731a", diff --git a/HubSpot/HubSpot_Get_activities_from_contact.ipynb b/HubSpot/HubSpot_Get_activities_from_contact.ipynb new file mode 100644 index 0000000000..082b53b07e --- /dev/null +++ b/HubSpot/HubSpot_Get_activities_from_contact.ipynb @@ -0,0 +1,621 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Get activities from contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #contact #activity #notes #emails #communications #meetings #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-21 (Created: 2023-08-21)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to retrieve all activities from a contact URL by combining various HubSpot API endpoints." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Contacts](https://developers.hubspot.com/docs/api/crm/contacts)\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "from naas_drivers import hubspot\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "17d095ea-e80c-4d8d-896b-271f3e0ea121", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_url`: This variable stores the HubSpot contact URL." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13df3457-9ca4-4a77-ace7-2cd5a386362d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_url = \"https://app.hubspot.com/contacts/2474088/record/0-1/666001\" # \"https://app.hubspot.com/contacts/xxxxx/record/0-1/xxxxx\"" + ] + }, + { + "cell_type": "markdown", + "id": "58f1d275-a026-45a5-8629-9b5f1f8b038f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "f6ef36c3-13ab-45e5-97fb-3ba6e4c2ff99", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get contact ID from URL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3588e3a-0829-485a-81c5-bcde7f137549", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_contact_ID_from_URL(url):\n", + " # Init\n", + " uid = url\n", + " \n", + " # Check if URL is valid\n", + " if not url.startswith(\"https://app.hubspot.com/contacts/\"):\n", + " raise BaseException(\"HubSpot URL Invalid! It must start by https://app.hubspot.com/contacts/\")\n", + " \n", + " # Split URL to get ID\n", + " if \"/record/0-1/\" in url:\n", + " uid = url.split(\"/record/0-1/\")[-1].split(\"/\")[0]\n", + " return uid\n", + "\n", + "contact_id = get_contact_ID_from_URL(contact_url)\n", + "print(\"Contact ID:\", contact_id)" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Functions to get contact associations details" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e765ab29-08d9-4647-995a-1101289e2047", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_association_from_contact(\n", + " token,\n", + " contact_id,\n", + " endpoint,\n", + "):\n", + " # Init\n", + " results = []\n", + " \n", + " # Requests\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v4/objects/contacts/{contact_id}/associations/{endpoint}\"\n", + " \n", + " # Response\n", + " res = requests.get(url, headers=headers)\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " return results\n", + "\n", + "def retrieve_object_details(\n", + " token,\n", + " object_id,\n", + " object_type,\n", + " properties=None,\n", + "):\n", + " # Init\n", + " data = []\n", + " params = {\n", + " \"archived\": \"false\"\n", + " }\n", + " \n", + " # Requests\n", + " if properties:\n", + " params[\"properties\"] = properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v3/objects/{object_type}/{object_id}\"\n", + " \n", + " # Response\n", + " res = requests.get(url, headers=headers, params=params)\n", + " if res.status_code == 200:\n", + " data = res.json().get(\"properties\")\n", + " else:\n", + " print(res.text)\n", + " return pd.DataFrame([data])\n", + "\n", + "def create_activity_df(\n", + " token,\n", + " contact_id,\n", + " activity,\n", + " properties_dict=None,\n", + "):\n", + " # Init\n", + " df = pd.DataFrame()\n", + " if not properties_dict:\n", + " properties_dict = {\n", + " \"hs_object_id\": \"activity_hs_id\",\n", + " \"hs_lastmodifieddate\": \"activity_date\",\n", + " \"hs_body_preview\": \"activity_content\"\n", + " }\n", + " properties = [x for x in properties_dict]\n", + " \n", + " # List activities\n", + " data = get_association_from_contact(\n", + " token,\n", + " contact_id,\n", + " activity\n", + " )\n", + " print(\"Data fetched:\", len(data))\n", + " for d in data:\n", + " object_id = d.get(\"toObjectId\")\n", + " tmp_df = retrieve_object_details(\n", + " token,\n", + " object_id,\n", + " activity,\n", + " properties\n", + " )\n", + " if len(tmp_df) > 0:\n", + " tmp_df = tmp_df[properties]\n", + " df = pd.concat([df, tmp_df])\n", + " if len(df) > 0:\n", + " df = df.rename(columns=properties_dict)\n", + " if 'activity_type' not in df:\n", + " df.insert(loc=1, column=\"activity_type\", value=activity.upper())\n", + " return df.reset_index(drop=True)" + ] + }, + { + "cell_type": "markdown", + "id": "a5a0d969-9b14-4d08-8c5d-b63b973dafeb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get notes associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "666512aa-f72d-4ef8-a4bd-76ef52d31637", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_notes = create_activity_df(\n", + " hs_access_token,\n", + " contact_id,\n", + " \"notes\",\n", + ")\n", + "df_notes" + ] + }, + { + "cell_type": "markdown", + "id": "16564784-0154-438c-9173-825e8d24a785", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get sales emails associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f89d2b01-9b33-46f1-97ec-e94f14b4e06a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_sales_emails = create_activity_df(\n", + " hs_access_token,\n", + " contact_id,\n", + " \"emails\",\n", + ")\n", + "df_sales_emails" + ] + }, + { + "cell_type": "markdown", + "id": "1e5a189a-bce5-4db4-939e-663619e5f8b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get meetings associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d73f5746-f2db-4b4a-9e39-a7a8c84ffee8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "properties_dict = {\n", + " \"hs_object_id\": \"activity_hs_id\",\n", + " \"hs_lastmodifieddate\": \"activity_date\",\n", + " \"hs_meeting_title\": \"activity_content\"\n", + "}\n", + "\n", + "df_meetings = create_activity_df(\n", + " hs_access_token,\n", + " contact_id,\n", + " \"meetings\",\n", + " properties_dict,\n", + ")\n", + "df_meetings" + ] + }, + { + "cell_type": "markdown", + "id": "77c1ad79-3946-482c-a038-32c96962a3be", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get communications associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8653a36c-ac45-488c-8afe-fa58cd41a748", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "properties_dict = {\n", + " \"hs_object_id\": \"activity_hs_id\",\n", + " \"hs_lastmodifieddate\": \"activity_date\",\n", + " \"hs_communication_channel_type\": \"activity_type\",\n", + " \"hs_body_preview\": \"activity_content\"\n", + "}\n", + "\n", + "df_communications = create_activity_df(\n", + " hs_access_token,\n", + " contact_id,\n", + " \"communications\",\n", + " properties_dict\n", + ")\n", + "df_communications" + ] + }, + { + "cell_type": "markdown", + "id": "75603539-39f4-401e-87e9-27aa80182cf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create activity DataFrame with contact details" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b02ae973-d5ee-4d73-9938-716e9a8ce615", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_contact_details(\n", + " hs_access_token,\n", + " contact_id,\n", + " properties\n", + "):\n", + " # Init\n", + " data = {}\n", + " \n", + " # Get contact\n", + " contact = hubspot.connect(hs_access_token).contacts.get(contact_id, hs_properties=properties)\n", + " \n", + " # Return properties\n", + " if len(contact) > 0:\n", + " data = contact.get(\"properties\")\n", + " return data\n", + "\n", + "def create_activity_df(\n", + " contact_id,\n", + " df_notes,\n", + " df_sales_emails,\n", + " df_meetings,\n", + " df_communications,\n", + "):\n", + " # Init\n", + " df = pd.DataFrame()\n", + " \n", + " # Concat\n", + " df = pd.concat(\n", + " [\n", + " df_notes,\n", + " df_sales_emails,\n", + " df_meetings,\n", + " df_communications\n", + " ]\n", + " )\n", + " \n", + " # Format date\n", + " df[\"activity_date\"] = pd.to_datetime(df[\"activity_date\"]).dt.strftime(\"%Y-%m-%d %H:%M:%S\")\n", + " df = df.sort_values(by=\"activity_date\").reset_index(drop=True)\n", + " \n", + " # Add contact details\n", + " contact_properties = [\"hs_object_id\", \"firstname\", \"lastname\", 'email', 'linkedinbio', 'jobtitle']\n", + " contact = get_contact_details(\n", + " hs_access_token,\n", + " contact_id,\n", + " contact_properties\n", + " )\n", + " for i, x in enumerate(contact_properties):\n", + " df.insert(loc=i, column=x, value=contact.get(x))\n", + " pd.set_option('display.max_colwidth', None)\n", + " return df\n", + "\n", + "df_activity = create_activity_df(\n", + " contact_id,\n", + " df_notes,\n", + " df_sales_emails,\n", + " df_meetings,\n", + " df_communications,\n", + ")\n", + "print(\"Activities fetched:\", len(df_activity))\n", + "df_activity.tail(1)" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "f09fcd0a-5b7f-4a96-9822-f4a6995a6ac0", + "metadata": { + "execution": { + "iopub.execute_input": "2023-08-21T14:13:58.779716Z", + "iopub.status.busy": "2023-08-21T14:13:58.779474Z", + "iopub.status.idle": "2023-08-21T14:13:58.784746Z", + "shell.execute_reply": "2023-08-21T14:13:58.784135Z", + "shell.execute_reply.started": "2023-08-21T14:13:58.779693Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save DataFrame to CSV" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62e3f7af-5383-45fc-b5ec-31796a179f34", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_activity.to_csv(f\"contact_activity_{contact_id}.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "06b11cf336c1e0d493eb89898cd3a39adcb000113e2f74b4d12d64c5e7f04932", + "notebook_path": "HubSpot/HubSpot_Get_activities_from_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Get_all_contacts.ipynb b/HubSpot/HubSpot_Get_all_contacts.ipynb index 9c4620ccfe..f28981265a 100644 --- a/HubSpot/HubSpot_Get_all_contacts.ipynb +++ b/HubSpot/HubSpot_Get_all_contacts.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Get all contacts\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "06212c2d-619b-437f-8547-3ffc453ea89c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Get_all_deals.ipynb b/HubSpot/HubSpot_Get_all_deals.ipynb index b30d4fd2cc..7ce720474a 100644 --- a/HubSpot/HubSpot_Get_all_deals.ipynb +++ b/HubSpot/HubSpot_Get_all_deals.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Get all deals\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "89585464-6b67-41a4-9ed2-eab092ea1ccb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb b/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb index 1062f1a550..d42fa7fd6a 100644 --- a/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb +++ b/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Get all pipelines and dealstages\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d334f255-bdc5-4c4e-8f1b-26518b7218f0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-10 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "8037a872-b9bd-4cce-8260-74cbd799d7dd", diff --git a/HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb b/HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb new file mode 100644 index 0000000000..9499f8f6c7 --- /dev/null +++ b/HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Get communications associated to contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #api #contact #communications #linkedin #whatsapp #sms #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to retrieve all communications associated to a contact in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_id`: This variable stores the HubSpot contact ID" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_id = 308551" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get communications associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e765ab29-08d9-4647-995a-1101289e2047", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_association_from_contact(\n", + " token,\n", + " contact_id,\n", + " endpoint,\n", + "):\n", + " # Init\n", + " results = []\n", + " \n", + " # Requests\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v4/objects/contacts/{contact_id}/associations/{endpoint}\"\n", + " \n", + " # Response\n", + " res = requests.get(url, headers=headers)\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " return results\n", + "\n", + "data = get_association_from_contact(\n", + " hs_access_token,\n", + " contact_id,\n", + " \"communications\"\n", + ")\n", + "print(\"Row fetched:\", len(data))" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "29282cfa4a016e0aa6518f975cf5cd5e4fe644c0a94c7073549cea7aaf3676bd", + "notebook_path": "HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Get_contact_from_id.ipynb b/HubSpot/HubSpot_Get_contact_details_from_URL.ipynb similarity index 58% rename from HubSpot/HubSpot_Get_contact_from_id.ipynb rename to HubSpot/HubSpot_Get_contact_details_from_URL.ipynb index 2fa0b9fa95..cba6520cd9 100644 --- a/HubSpot/HubSpot_Get_contact_from_id.ipynb +++ b/HubSpot/HubSpot_Get_contact_details_from_URL.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# HubSpot - Get contact from id\n", - "

Template request | Bug report | Generate Data Product" + "# HubSpot - Get contact details from URL\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #hubspot #crm #sales #contact #naas_drivers #snippet #dataframe" + "**Tags:** #hubspot #crm #sales #contact #naas_drivers #snippet" ] }, { @@ -47,154 +47,160 @@ }, { "cell_type": "markdown", - "id": "naas-description", - "metadata": { - "papermill": {}, - "tags": [ - "description" - ] - }, - "source": [ - "**Description:** This notebook allows you to retrieve contact information from a HubSpot account using a contact ID." - ] - }, - { - "cell_type": "markdown", - "id": "radio-wings", + "id": "5e860c8d-b61d-4e81-892e-312089ced364", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "## Input" + "**Last update:** 2023-08-21 (Created: 2022-05-31)" ] }, { "cell_type": "markdown", - "id": "unique-dollar", + "id": "naas-description", "metadata": { "papermill": {}, - "tags": [] + "tags": [ + "description" + ] }, "source": [ - "### Import libraries" + "**Description:** This notebook provides a method to retrieve contact details from a HubSpot contact URL using the HubSpot API." ] }, { - "cell_type": "code", - "execution_count": null, - "id": "polish-newman", + "cell_type": "markdown", + "id": "75c9d01d-4ee5-4265-899a-3c08a5fb48e3", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "from naas_drivers import hubspot\n", - "import naas" + "**References:**\n", + "- [HubSpot API - Contacts](https://developers.hubspot.com/docs/api/crm/contacts)" ] }, { "cell_type": "markdown", - "id": "9e8f484d-3b18-452e-bcf8-c6875f970975", + "id": "radio-wings", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Setup HubSpot\n", - "👉 Starting November 30, 2022, HubSpot API keys no longer enable access to HubSpot APIs, so in Naas version 2.8.3 and above, you need [create a private app and use the access token](https://developers.hubspot.com/docs/api/private-apps)." + "## Input" ] }, { "cell_type": "markdown", - "id": "2ffc1666-70c8-4287-aa09-8d4c44bb9c4c", + "id": "unique-dollar", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your Access Token" + "### Import libraries" ] }, { "cell_type": "code", "execution_count": null, - "id": "e848239a-cd26-489e-bcbe-de2e51320d1c", + "id": "polish-newman", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "HS_ACCESS_TOKEN = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + "from naas_drivers import hubspot\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "12703001-73c8-44b1-aba6-f67f6ed9e0b5", + "id": "9e8f484d-3b18-452e-bcf8-c6875f970975", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your Contact ID" + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_url`: This variable stores the HubSpot contact URL\n", + "\n", + "**Optional**\n", + "- `properties`: List of properties (hubspot internal names) you want to get from contact. By default, you will get: email, firstname, lastname, createdate, lastmodifieddate, hs_object_id. To list of contact properties, you can use this template: \"HubSpot/HubSpot_List_contact_properties.ipynb\" stored in https://github.com/jupyter-naas/awesome-notebooks" ] }, { "cell_type": "code", "execution_count": null, - "id": "e71e44d4-92ac-4935-bd9c-7576284bf6f0", + "id": "7b52ae1e-0c35-4f0c-9533-92747ab2f311", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact_id = \"ENTER_CONTACT_ID_HERE\" # \"580001\"" + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_url = \"\" # \"https://app.hubspot.com/contacts/xxxxx/record/0-1/xxxxx\"\n", + "\n", + "# Optional\n", + "properties = []" ] }, { "cell_type": "markdown", - "id": "9140f4e7-2a1b-4707-86f7-229d1a7b9308", + "id": "cardiovascular-incidence", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your Contact properties\n", - "List of properties you want to get from contact.
\n", - "By default, you will get: \n", - "- email\n", - "- firstname\n", - "- lastname\n", - "- createdate\n", - "- lastmodifieddate\n", - "- hs_object_id" + "## Model" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "38a8623a-c1df-49aa-84b1-459643243761", + "cell_type": "markdown", + "id": "44cf21e6-f5d7-4916-b421-a4338c2fac6c", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "properties = []" + "### Get contact ID from URL" ] }, { - "cell_type": "markdown", - "id": "cardiovascular-incidence", + "cell_type": "code", + "execution_count": null, + "id": "37a5c09b-8970-4296-8f5b-9acd2fbf82ae", "metadata": { "papermill": {}, "tags": [] }, + "outputs": [], "source": [ - "## Model" + "def get_contact_ID_from_URL(url):\n", + " # Init\n", + " uid = url\n", + " \n", + " # Check if URL is valid\n", + " if not url.startswith(\"https://app.hubspot.com/contacts/\"):\n", + " raise BaseException(\"HubSpot URL Invalid! It must start by https://app.hubspot.com/contacts/\")\n", + " \n", + " # Split URL to get ID\n", + " if \"/record/0-1/\" in url:\n", + " uid = url.split(\"/record/0-1/\")[-1].split(\"/\")[0]\n", + " return uid\n", + "\n", + "contact_id = get_contact_ID_from_URL(contact_url)\n", + "print(\"Contact ID:\", contact_id)" ] }, { @@ -211,14 +217,15 @@ { "cell_type": "code", "execution_count": null, - "id": "dutch-kennedy", + "id": "9573dbb5-8e54-41a9-bd40-d2654750cc6f", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact = hubspot.connect(HS_ACCESS_TOKEN).contacts.get(contact_id, properties)" + "contact = hubspot.connect(hs_access_token).contacts.get(contact_id, hs_properties=properties)\n", + "contact" ] }, { @@ -234,7 +241,7 @@ }, { "cell_type": "markdown", - "id": "legendary-acceptance", + "id": "a3d39f5b-c7a0-43e3-8241-c58d852ae330", "metadata": { "papermill": {}, "tags": [] @@ -246,14 +253,14 @@ { "cell_type": "code", "execution_count": null, - "id": "united-rugby", + "id": "dutch-kennedy", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact" + "contact.get(\"properties\")" ] } ], @@ -276,8 +283,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "41eb72bb59619ace242c14c1ed8ffbe54366f6ea7f0aad25a02608af3780e7d7", - "notebook_path": "HubSpot/HubSpot_Get_contact_from_id.ipynb" + "notebook_id": "9056bb1dcba589051252c2df8a24c91b9109e99293b11c1fe9d0b5d6fbb08197", + "notebook_path": "HubSpot/HubSpot_Get_contact_details_from_URL.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/HubSpot/HubSpot_Get_contact_from_email.ipynb b/HubSpot/HubSpot_Get_contact_details_from_email.ipynb similarity index 55% rename from HubSpot/HubSpot_Get_contact_from_email.ipynb rename to HubSpot/HubSpot_Get_contact_details_from_email.ipynb index c6741e323e..ccd843c7d1 100644 --- a/HubSpot/HubSpot_Get_contact_from_email.ipynb +++ b/HubSpot/HubSpot_Get_contact_details_from_email.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# HubSpot - Get contact from email\n", - "

Template request | Bug report | Generate Data Product" + "# HubSpot - Get contact details from email\n", + "

Give Feedback | Bug report" ] }, { @@ -47,148 +47,116 @@ }, { "cell_type": "markdown", - "id": "naas-description", - "metadata": { - "papermill": {}, - "tags": [ - "description" - ] - }, - "source": [ - "**Description:** This notebook allows you to extract contact information from emails sent through HubSpot." - ] - }, - { - "cell_type": "markdown", - "id": "radio-wings", + "id": "2e440d24-d399-4ced-b7b1-4649feadb8de", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "## Input" + "**Last update:** 2023-08-21 (Created: 2022-05-31)" ] }, { "cell_type": "markdown", - "id": "unique-dollar", + "id": "127e230c-96df-450a-b3b4-a5714bdc0021", "metadata": { "papermill": {}, - "tags": [] - }, - "source": [ - "### Import libraries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "polish-newman", - "metadata": { - "papermill": {}, - "tags": [] + "tags": [ + "description" + ] }, - "outputs": [], "source": [ - "from naas_drivers import hubspot\n", - "import naas" + "**Description:** This notebook provides a method to retrieve contact details from a HubSpot contact email using the HubSpot API." ] }, { "cell_type": "markdown", - "id": "9e8f484d-3b18-452e-bcf8-c6875f970975", + "id": "eec4406c-a700-4cc1-aebf-7e8cf445323e", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Setup HubSpot\n", - "👉 Starting November 30, 2022, HubSpot API keys no longer enable access to HubSpot APIs, so in Naas version 2.8.3 and above, you need [create a private app and use the access token](https://developers.hubspot.com/docs/api/private-apps)." + "**References:**\n", + "- [HubSpot API - Contacts](https://developers.hubspot.com/docs/api/crm/contacts)" ] }, { "cell_type": "markdown", - "id": "4fe0dc02-b0cc-4ca6-b311-d074ca39d367", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "#### Enter Your Access Token" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e848239a-cd26-489e-bcbe-de2e51320d1c", + "id": "radio-wings", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "HS_ACCESS_TOKEN = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + "## Input" ] }, { "cell_type": "markdown", - "id": "12703001-73c8-44b1-aba6-f67f6ed9e0b5", + "id": "unique-dollar", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your contact email" + "### Import libraries" ] }, { "cell_type": "code", - "execution_count": null, - "id": "38a8623a-c1df-49aa-84b1-459643243761", + "execution_count": 1, + "id": "polish-newman", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact_email = \"ENTER_CONTACT_EMAIL_HERE\" # EXAMPLE : \"email@gmail.com\"" + "from naas_drivers import hubspot\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "a086bdae-ab08-447a-9693-a43cf270dac0", + "id": "27440749-ffd2-47be-a6a7-bf444e9c6356", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your Contact properties\n", - "List of properties you want to get from contact.
\n", - "By default, you will get: \n", - "- email\n", - "- firstname\n", - "- lastname\n", - "- createdate\n", - "- lastmodifieddate\n", - "- hs_object_id" + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_email`: This variable stores the HubSpot contact email.\n", + "\n", + "**Optional**\n", + "- `properties`: List of properties (hubspot internal names) you want to get from contact. By default, you will get: email, firstname, lastname, createdate, lastmodifieddate, hs_object_id. To list of contact properties, you can use this template: \"HubSpot/HubSpot_List_contact_properties.ipynb\" stored in https://github.com/jupyter-naas/awesome-notebooks." ] }, { "cell_type": "code", - "execution_count": null, - "id": "7f151318-90ff-40cd-9458-b4eb1f975bc7", + "execution_count": 2, + "id": "4551b1df-945e-4b0d-baa8-4ce8c7a72d0b", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_email = \"florent@naas.ai\"\n", + "\n", + "# Optional\n", "properties = []" ] }, { "cell_type": "markdown", - "id": "cardiovascular-incidence", + "id": "80ada41b-709b-41eb-a78b-a9d54a02543f", "metadata": { "papermill": {}, "tags": [] @@ -210,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "dutch-kennedy", "metadata": { "papermill": {}, @@ -218,9 +186,8 @@ }, "outputs": [], "source": [ - "contact = hubspot.connect(HS_ACCESS_TOKEN).contacts.get(\n", - " contact_email, properties, idproperty=\"email\"\n", - ")" + "contact = hubspot.connect(hs_access_token).contacts.get(contact_email, hs_properties=properties, idproperty=\"email\")\n", + "contact" ] }, { @@ -247,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "united-rugby", "metadata": { "papermill": {}, @@ -255,7 +222,7 @@ }, "outputs": [], "source": [ - "contact" + "contact.get(\"properties\")" ] } ], @@ -278,8 +245,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "f74dbbb05975dc1d685301d6336f36de33ee48891ef89f16701800237c0ea78d", - "notebook_path": "HubSpot/HubSpot_Get_contact_from_email.ipynb" + "notebook_id": "6f72d8f451dccc72ecffed406a64ceab0e710237b87052e324d258e0153a6a3e", + "notebook_path": "HubSpot/HubSpot_Get_contact_details_from_email.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/HubSpot/HubSpot_Get_contact_from_URL.ipynb b/HubSpot/HubSpot_Get_contact_details_from_id.ipynb similarity index 52% rename from HubSpot/HubSpot_Get_contact_from_URL.ipynb rename to HubSpot/HubSpot_Get_contact_details_from_id.ipynb index e486ba1c20..94cc9744d9 100644 --- a/HubSpot/HubSpot_Get_contact_from_URL.ipynb +++ b/HubSpot/HubSpot_Get_contact_details_from_id.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# HubSpot - Get contact from URL\n", - "

Template request | Bug report | Generate Data Product" + "# HubSpot - Get contact details from contact id\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #hubspot #crm #sales #contact #naas_drivers #snippet #dataframe" + "**Tags:** #hubspot #crm #sales #contact #naas_drivers #snippet" ] }, { @@ -47,148 +47,116 @@ }, { "cell_type": "markdown", - "id": "naas-description", - "metadata": { - "papermill": {}, - "tags": [ - "description" - ] - }, - "source": [ - "**Description:** This notebook allows you to extract contact information from a given URL using the HubSpot API." - ] - }, - { - "cell_type": "markdown", - "id": "radio-wings", + "id": "24b60895-cbb2-4857-b0db-f6baa1a5d2b3", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "## Input" + "**Last update:** 2023-08-21 (Created: 2022-05-31)" ] }, { "cell_type": "markdown", - "id": "unique-dollar", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Import libraries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "polish-newman", + "id": "naas-description", "metadata": { "papermill": {}, - "tags": [] + "tags": [ + "description" + ] }, - "outputs": [], "source": [ - "from naas_drivers import hubspot\n", - "import naas" + "**Description:** This notebook provides a method to retrieve contact details from a HubSpot contact ID using the HubSpot API." ] }, { "cell_type": "markdown", - "id": "9e8f484d-3b18-452e-bcf8-c6875f970975", + "id": "6e148468-19a4-4e34-976d-8bf9701aaef1", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Setup HubSpot\n", - "👉 Starting November 30, 2022, HubSpot API keys no longer enable access to HubSpot APIs, so in Naas version 2.8.3 and above, you need [create a private app and use the access token](https://developers.hubspot.com/docs/api/private-apps)." + "**References:**\n", + "- [HubSpot API - Contacts](https://developers.hubspot.com/docs/api/crm/contacts)" ] }, { "cell_type": "markdown", - "id": "1d47331f-eb97-4819-b3e6-0f7acd3bf296", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "#### Enter Your Access Token" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e848239a-cd26-489e-bcbe-de2e51320d1c", + "id": "radio-wings", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "HS_ACCESS_TOKEN = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + "## Input" ] }, { "cell_type": "markdown", - "id": "12703001-73c8-44b1-aba6-f67f6ed9e0b5", + "id": "unique-dollar", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your Contact URL" + "### Import libraries" ] }, { "cell_type": "code", "execution_count": null, - "id": "38a8623a-c1df-49aa-84b1-459643243761", + "id": "polish-newman", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact_url = \"ENTER_CONTACT_URL_HERE\" # EXAMPLE : \"https://app.hubspot.com/contacts/0000011/contact/00001\"" + "from naas_drivers import hubspot\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "d62e87ef-c057-4397-a489-8b39f4534a04", + "id": "5e7452c2-931e-4a04-b51e-e17cc35b911c", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "#### Enter your Contact properties\n", - "List of properties you want to get from contact.
\n", - "By default, you will get: \n", - "- email\n", - "- firstname\n", - "- lastname\n", - "- createdate\n", - "- lastmodifieddate\n", - "- hs_object_id" + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_id`: This variable stores the HubSpot contact ID.\n", + "\n", + "**Optional**\n", + "- `properties`: List of properties (hubspot internal names) you want to get from contact. By default, you will get: email, firstname, lastname, createdate, lastmodifieddate, hs_object_id. To list of contact properties, you can use this template: \"HubSpot/HubSpot_List_contact_properties.ipynb\" stored in https://github.com/jupyter-naas/awesome-notebooks." ] }, { "cell_type": "code", "execution_count": null, - "id": "134e5b2d-842e-4ef1-8f8a-487d82382daf", + "id": "3575a1ab-0b62-453f-acbb-752c36eec82a", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_id = 30401\n", + "\n", + "# Optional\n", "properties = []" ] }, { "cell_type": "markdown", - "id": "cardiovascular-incidence", + "id": "9db35cc6-9e57-4805-ac15-53b16f52e955", "metadata": { "papermill": {}, "tags": [] @@ -199,31 +167,7 @@ }, { "cell_type": "markdown", - "id": "5439d77f-edcb-46c4-bfef-3cb349a88ca3", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Split contact URL to get contact ID" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "58d30725-9f5f-4aed-83d0-bfe0dd7c1114", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "contact_id = contact_url.split(\"/contact/\")[-1]" - ] - }, - { - "cell_type": "markdown", - "id": "fancy-result", + "id": "9c857a45-489b-409d-af75-efa7e4e18cf5", "metadata": { "papermill": {}, "tags": [] @@ -235,19 +179,20 @@ { "cell_type": "code", "execution_count": null, - "id": "dutch-kennedy", + "id": "6ad1f70a-2e6b-48e2-85e6-1f32e323dbd2", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact = hubspot.connect(HS_ACCESS_TOKEN).contacts.get(contact_id)" + "contact = hubspot.connect(hs_access_token).contacts.get(contact_id, hs_properties=properties)\n", + "contact" ] }, { "cell_type": "markdown", - "id": "moved-tissue", + "id": "a9d5db0a-4af1-4092-86bd-fa5f8768a001", "metadata": { "papermill": {}, "tags": [] @@ -258,7 +203,7 @@ }, { "cell_type": "markdown", - "id": "legendary-acceptance", + "id": "0d92cd2b-71da-4663-9b38-14c0137f1823", "metadata": { "papermill": {}, "tags": [] @@ -270,14 +215,14 @@ { "cell_type": "code", "execution_count": null, - "id": "united-rugby", + "id": "0ee19e55-a553-4900-afe1-73ded5d32403", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "contact" + "contact.get(\"properties\")" ] } ], @@ -300,8 +245,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "041c47a66ffebfd4da7a235568d2535c166ec68f0bb27201f9bb74598eb59402", - "notebook_path": "HubSpot/HubSpot_Get_contact_from_URL.ipynb" + "notebook_id": "ca0c0d07420d67bbdde9dff74791dd0bcef463a82a10315049cefef33713a892", + "notebook_path": "HubSpot/HubSpot_Get_contact_details_from_id.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb b/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb index be94e381c8..7829a294f4 100644 --- a/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb +++ b/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Get contacts associated to deal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1f1385ae-4c8c-4f94-9e44-271bd1f96ce0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "62c141c4-3e27-4845-b390-455773a8396a", diff --git a/HubSpot/HubSpot_Get_deal.ipynb b/HubSpot/HubSpot_Get_deal.ipynb index db474616f4..d4dc339759 100644 --- a/HubSpot/HubSpot_Get_deal.ipynb +++ b/HubSpot/HubSpot_Get_deal.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Get deal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bd3d548b-cfd7-421c-957a-3f82212ef079", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb b/HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb new file mode 100644 index 0000000000..44eb1fa2dc --- /dev/null +++ b/HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb @@ -0,0 +1,302 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Get meetings associated to contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #api #meetings #retrieve #requests #python" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-11 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to retrieve meetings ID associated with a contact in HubSpot using the HubSpot API." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_id`: This variable stores the HubSpot contact ID\n", + "\n", + "**Optional**\n", + "- `endpoint`: Endpoint to be used to get association from contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_id = 478901\n", + "\n", + "# Optional\n", + "endpoint = \"meetings\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get meetings associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e765ab29-08d9-4647-995a-1101289e2047", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_association_from_contact(\n", + " token,\n", + " contact_id,\n", + " endpoint,\n", + "):\n", + " # Init\n", + " results = []\n", + " \n", + " # Requests\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v4/objects/contacts/{contact_id}/associations/{endpoint}\"\n", + " \n", + " # Response\n", + " res = requests.get(url, headers=headers)\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " return results\n", + "\n", + "data = get_association_from_contact(\n", + " hs_access_token,\n", + " contact_id,\n", + " endpoint\n", + ")\n", + "print(\"Row fetched:\", len(data))" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(data) > 0:\n", + " print(data[0])" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "871e457a336ded192521c203bce981c5664048760631a9acb48df8ddca1cf81e", + "notebook_path": "HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Get_notes_from_contact.ipynb b/HubSpot/HubSpot_Get_notes_from_contact.ipynb index 8ce2a7343d..5aa025b5e6 100644 --- a/HubSpot/HubSpot_Get_notes_from_contact.ipynb +++ b/HubSpot/HubSpot_Get_notes_from_contact.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Get notes from contact\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "781669b7-5302-4575-b50f-faaf4fecbf81", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-31)" + ] + }, { "cell_type": "markdown", "id": "d9122437-2697-4c6f-8a40-861332e931bd", diff --git a/HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb b/HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb new file mode 100644 index 0000000000..dd29c734d6 --- /dev/null +++ b/HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Get sales emails associated to contact\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #api #contact #sales #emails #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-21 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to retrieve all sales emails associated to a contact in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Associations v4](https://developers.hubspot.com/docs/api/crm/associations)\n", + "- [HubSpot API - Sales Emails](https://developers.hubspot.com/docs/api/crm/email)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `contact_id`: This variable stores the HubSpot contact ID" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "contact_id = 666001" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get communications associated to contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e765ab29-08d9-4647-995a-1101289e2047", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_association_from_contact(\n", + " token,\n", + " contact_id,\n", + " endpoint,\n", + "):\n", + " # Init\n", + " results = []\n", + " \n", + " # Requests\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v4/objects/contacts/{contact_id}/associations/{endpoint}\"\n", + " \n", + " # Response\n", + " res = requests.get(url, headers=headers)\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " return results\n", + "\n", + "data = get_association_from_contact(\n", + " hs_access_token,\n", + " contact_id,\n", + " \"emails\"\n", + ")\n", + "print(\"Row fetched:\", len(data))" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "d468de85f83026e5f3c404ed798b1a95bbbc7def17fc67c2a1f376d5fd7a35e4", + "notebook_path": "HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_List_communication_properties.ipynb b/HubSpot/HubSpot_List_communication_properties.ipynb new file mode 100644 index 0000000000..e73923df51 --- /dev/null +++ b/HubSpot/HubSpot_List_communication_properties.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - List communication properties\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #properties #communications #linkedin #whatsapp #sms #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook list all communications properties available in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API Documentation - Properties](https://developers.hubspot.com/docs/api/crm/properties)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List properties" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fdeeb5b-f1f8-49b6-8bae-388d5190053a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_properties(\n", + " api_token,\n", + " object_type\n", + "):\n", + " # Init\n", + " properties = []\n", + " \n", + " # Make a GET request to the HubSpot API to retrieve the list of object properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {api_token}\"\n", + " }\n", + " url = f'https://api.hubapi.com/crm/v3/properties/{object_type}'\n", + " response = requests.get(url, headers=headers)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " properties_data = response.json()\n", + " properties = properties_data['results']\n", + " for prop in properties:\n", + " prop_name = prop['name']\n", + " prop_label = prop['label']\n", + " print(f\"Property Name: {prop_name}\")\n", + " print(f\"Property Label: {prop_label}\")\n", + " print()\n", + " else:\n", + " print(f\"Failed to retrieve meetings properties. Status code: {response.status_code}\")\n", + " print(response.json())\n", + " return properties\n", + "\n", + "properties = list_properties(hs_access_token, \"communication\")" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Properties fetched:\", len(properties))\n", + "properties[0]" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "6f16b41d94a94ed30a6a592a36584708965f8a7bde0007c3723d973b49c01984", + "notebook_path": "HubSpot/HubSpot_List_communication_properties.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/HubSpot/HubSpot_List_contact_properties.ipynb b/HubSpot/HubSpot_List_contact_properties.ipynb new file mode 100644 index 0000000000..d9a5013dbc --- /dev/null +++ b/HubSpot/HubSpot_List_contact_properties.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - List contact properties\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #properties #contact #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-21 (Created: 2023-08-21)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook list the contact properties in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API Documentation - Properties](https://developers.hubspot.com/docs/api/crm/properties)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List properties" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fdeeb5b-f1f8-49b6-8bae-388d5190053a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_properties(\n", + " api_token,\n", + " object_type\n", + "):\n", + " # Init\n", + " properties = []\n", + " \n", + " # Make a GET request to the HubSpot API to retrieve the list of object properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {api_token}\"\n", + " }\n", + " url = f'https://api.hubapi.com/crm/v3/properties/{object_type}'\n", + " response = requests.get(url, headers=headers)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " properties_data = response.json()\n", + " properties = properties_data['results']\n", + " for prop in properties:\n", + " prop_name = prop['name']\n", + " prop_label = prop['label']\n", + " print(f\"Property Name: {prop_name}\")\n", + " print(f\"Property Label: {prop_label}\")\n", + " print()\n", + " else:\n", + " print(f\"Failed to retrieve meetings properties. Status code: {response.status_code}\")\n", + " print(response.json())\n", + " return properties\n", + "\n", + "properties = list_properties(hs_access_token, \"contact\")" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Properties fetched:\", len(properties))\n", + "properties[0]" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1cbde3b04095cadc48040885b0752305f813749b15590ff2c287874e3b3fa1a7", + "notebook_path": "HubSpot/HubSpot_List_contact_properties.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_List_meeting_properties.ipynb b/HubSpot/HubSpot_List_meeting_properties.ipynb new file mode 100644 index 0000000000..ce6a93ab26 --- /dev/null +++ b/HubSpot/HubSpot_List_meeting_properties.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - List meeting properties\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #api #meetings #retrieve #requests #python" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-11 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook provides access to the list of meeting properties in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API Documentation - Properties](https://developers.hubspot.com/docs/api/crm/properties)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List meeting properties" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fdeeb5b-f1f8-49b6-8bae-388d5190053a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_properties(\n", + " api_token,\n", + " object_type\n", + "):\n", + " # Init\n", + " properties = []\n", + " \n", + " # Make a GET request to the HubSpot API to retrieve the list of object properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {api_token}\"\n", + " }\n", + " url = f'https://api.hubapi.com/crm/v3/properties/{object_type}'\n", + " response = requests.get(url, headers=headers)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " properties_data = response.json()\n", + " properties = properties_data['results']\n", + " for prop in properties:\n", + " prop_name = prop['name']\n", + " prop_label = prop['label']\n", + " print(f\"Property Name: {prop_name}\")\n", + " print(f\"Property Label: {prop_label}\")\n", + " print()\n", + " else:\n", + " print(f\"Failed to retrieve meetings properties. Status code: {response.status_code}\")\n", + " print(response.json())\n", + " return properties\n", + "\n", + "properties = list_properties(hs_access_token, \"meeting\")" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Properties fetched:\", len(properties))\n", + "properties[0]" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e7ec070fd87d2ff5eb89ca90bbbd98c379e5224d217a3c1ceed6cd39a857e1a6", + "notebook_path": "HubSpot/HubSpot_List_meeting_properties.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/HubSpot/HubSpot_List_notes_properties.ipynb b/HubSpot/HubSpot_List_notes_properties.ipynb new file mode 100644 index 0000000000..1923fe594c --- /dev/null +++ b/HubSpot/HubSpot_List_notes_properties.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - List notes properties\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #properties #notes #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-21 (Created: 2023-08-21)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook list the notes properties in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API Documentation - Properties](https://developers.hubspot.com/docs/api/crm/properties)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List properties" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fdeeb5b-f1f8-49b6-8bae-388d5190053a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_properties(\n", + " api_token,\n", + " object_type\n", + "):\n", + " # Init\n", + " properties = []\n", + " \n", + " # Make a GET request to the HubSpot API to retrieve the list of object properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {api_token}\"\n", + " }\n", + " url = f'https://api.hubapi.com/crm/v3/properties/{object_type}'\n", + " response = requests.get(url, headers=headers)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " properties_data = response.json()\n", + " properties = properties_data['results']\n", + " for prop in properties:\n", + " prop_name = prop['name']\n", + " prop_label = prop['label']\n", + " print(f\"Property Name: {prop_name}\")\n", + " print(f\"Property Label: {prop_label}\")\n", + " print()\n", + " else:\n", + " print(f\"Failed to retrieve meetings properties. Status code: {response.status_code}\")\n", + " print(response.json())\n", + " return properties\n", + "\n", + "properties = list_properties(hs_access_token, \"notes\")" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Properties fetched:\", len(properties))\n", + "properties[0]" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "97f11b70c0c60e6b95fc17a5fadd5030c37c2f97a3e2568cd31238ea6fb5ad34", + "notebook_path": "HubSpot/HubSpot_List_notes_properties.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_List_sales_emails_properties.ipynb b/HubSpot/HubSpot_List_sales_emails_properties.ipynb new file mode 100644 index 0000000000..c58e836798 --- /dev/null +++ b/HubSpot/HubSpot_List_sales_emails_properties.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - List sales emails properties\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #api #sales #emails #retrieve #requests #python" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-11 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook provides access to the list of sales emails properties in HubSpot." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API Documentation - Properties](https://developers.hubspot.com/docs/api/crm/properties)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List properties" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fdeeb5b-f1f8-49b6-8bae-388d5190053a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def list_properties(\n", + " api_token,\n", + " object_type\n", + "):\n", + " # Init\n", + " properties = []\n", + " \n", + " # Make a GET request to the HubSpot API to retrieve the list of object properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {api_token}\"\n", + " }\n", + " url = f'https://api.hubapi.com/crm/v3/properties/{object_type}'\n", + " response = requests.get(url, headers=headers)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " properties_data = response.json()\n", + " properties = properties_data['results']\n", + " for prop in properties:\n", + " prop_name = prop['name']\n", + " prop_label = prop['label']\n", + " print(f\"Property Name: {prop_name}\")\n", + " print(f\"Property Label: {prop_label}\")\n", + " print()\n", + " else:\n", + " print(f\"Failed to retrieve meetings properties. Status code: {response.status_code}\")\n", + " print(response.json())\n", + " return properties\n", + "\n", + "properties = list_properties(hs_access_token, \"emails\")" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Properties fetched:\", len(properties))\n", + "properties[0]" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "3c0890cc3cd13e3c6d72bc4ace0a28073c60c6bf770c0d1d68d6119ec12c4fd2", + "notebook_path": "HubSpot/HubSpot_List_sales_emails_properties.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Retrieve_communication_details.ipynb b/HubSpot/HubSpot_Retrieve_communication_details.ipynb new file mode 100644 index 0000000000..4bd1416442 --- /dev/null +++ b/HubSpot/HubSpot_Retrieve_communication_details.ipynb @@ -0,0 +1,307 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Retrieve communication details\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #get #read #communication #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-17 (Created: 2023-08-17)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook fetches detailed information for a specific communication (Linkedin, SMS or WhatsApp message). It can be helpful in obtaining further details from a communication ID, which can be acquired by extraction from a contact." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API - Communications](https://developers.hubspot.com/docs/api/crm/communications)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas\n", + "from pprint import pprint" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Get your HubSpot Access token](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)\n", + "- `hs_access_token`: This variable stores an access token used for accessing the HubSpot API.\n", + "- `object_id`: This variable stores the object ID.\n", + "\n", + "**Optional**\n", + "- `properties`: This variable stores the list of properties to be retrieve from the meeting." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "hs_access_token = naas.secret.get(\"HS_ACCESS_TOKEN\") or \"YOUR_HS_ACCESS_TOKEN\"\n", + "object_id = 38798231910\n", + "\n", + "# Optional\n", + "properties = [\"hs_communication_channel_type\", \"hs_communication_body\"]" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Retrieve details" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e765ab29-08d9-4647-995a-1101289e2047", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def retrieve_object_details(\n", + " hs_access_token,\n", + " object_id,\n", + " object_type,\n", + " properties=None,\n", + "):\n", + " # Init\n", + " data = []\n", + " params = {\n", + " \"archived\": \"false\"\n", + " }\n", + " \n", + " # Requests\n", + " if properties:\n", + " params[\"properties\"] = properties\n", + " headers = {\n", + " \"Content-Type\": \"application/json\",\n", + " \"Authorization\": f\"Bearer {hs_access_token}\"\n", + " }\n", + " url = f\"https://api.hubapi.com/crm/v3/objects/{object_type}/{object_id}\"\n", + " \n", + " # Response\n", + " res = requests.get(url, headers=headers, params=params)\n", + " if res.status_code == 200:\n", + " data = res.json()\n", + " else:\n", + " print(res.text)\n", + " return data\n", + "\n", + "data = retrieve_object_details(hs_access_token, object_id, \"Communications\", properties)\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if len(data) > 0:\n", + " pprint(data.get(\"properties\"))" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "addc66ec405ac0fc7ad20e0d1e0fa3a85fbf06f6aac030dd8f2b4da355d35b1d", + "notebook_path": "HubSpot/HubSpot_Retrieve_communication_details.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Retrieve_meetings.ipynb b/HubSpot/HubSpot_Retrieve_meetings.ipynb new file mode 100644 index 0000000000..b3a1abd331 --- /dev/null +++ b/HubSpot/HubSpot_Retrieve_meetings.ipynb @@ -0,0 +1,276 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27486f01-77c3-4774-a098-29c706202d62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "85c6497e-923f-41fa-b85b-81f47a5ab9c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# HubSpot - Retrieve meetings\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "661f554e-7065-4101-81c2-9e799a812b67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #hubspot #api #meetings #retrieve #requests #python" + ] + }, + { + "cell_type": "markdown", + "id": "a852a18f-e277-4aa5-bdec-8dd1fccb57d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "6dd7c05c-17ed-459f-88a8-3c6629b80cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-07 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "7dcfd269-589b-4199-b521-6884053ff935", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook uses requests to retrieve meetings from HubSpot API. It is usefull for organizations to get information about their meetings." + ] + }, + { + "cell_type": "markdown", + "id": "0da5ca2d-a6a1-424c-b41f-391428555503", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [HubSpot API Documentation](https://developers.hubspot.com/docs/api/crm/meetings)\n", + "- [Requests Documentation](https://requests.readthedocs.io/en/master/)" + ] + }, + { + "cell_type": "markdown", + "id": "8c6e5050-800a-4f05-a1d2-5a682c54e069", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6c27222b-7468-4daa-9a77-c446aaf66f72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3fad6df-27f3-4e13-a934-083468860bf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "6c6ed6b8-90b8-4de6-9b34-9f306d01f574", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `api_key`: API key to access HubSpot API. [Get your API key](https://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c89143dd-3769-4167-b397-09f2d4095fe9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = \"\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ff5c82c-f9bb-4591-bbe4-e683317da3df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7b5fa0c9-ea58-4117-9445-a421a3189015", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Retrieve meetings" + ] + }, + { + "cell_type": "markdown", + "id": "4b31be29-9ea7-421c-903d-19af6ac7b1e9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "Retrieve meetings from HubSpot API using the `api_key` variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e765ab29-08d9-4647-995a-1101289e2047", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "url = \"https://api.hubapi.com/crm/v3/objects/meetings\"\n", + "headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {api_key}\"}\n", + "response = requests.get(url, headers=headers)" + ] + }, + { + "cell_type": "markdown", + "id": "6e9729cd-8e75-4c13-a06c-87afb9923e53", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63a8e638-dafd-45ea-9f7e-a0aec60a8a7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "128d8d7f-f053-40d1-bf45-c8bcfb0ca5f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(response.json())" + ] + }, + { + "cell_type": "markdown", + "id": "d12c841e-5924-4e79-b565-88295343ba0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "05d1f96265b1e2aecae868c680041a298e4813049fab9f79887b6304fa8fcb40", + "notebook_path": "HubSpot/HubSpot_Retrieve_meetings.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb b/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb index e28415e6d6..179206da00 100644 --- a/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb +++ b/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Send LinkedIn invitations from contacts\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "1d4ad511-7ca6-47cc-8543-2b517b702cb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-04)" + ] + }, { "cell_type": "markdown", "id": "ffb5b8b2-db98-432d-b99b-b495db7e7187", diff --git a/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb b/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb index b929d2e24c..a908bc8348 100644 --- a/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb +++ b/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Send closed deals weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "fb3d6de3-8d05-48b5-bc31-d01489d47ab7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-23)" + ] + }, { "cell_type": "markdown", "id": "1a771622-b5ee-4fbe-bc69-7ad13b393a16", diff --git a/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb b/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb index 120199751d..bd10b09640 100644 --- a/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb +++ b/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Send contacts to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ab05fc5f-df67-4355-9fa9-a8aba64cd679", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb b/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb index 5135899d6e..779626fe0d 100644 --- a/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb +++ b/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Send deals to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "aac9210f-bfd1-43ea-934e-916b2c12ee58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb b/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb index c569d3a59c..7fe5716a15 100644 --- a/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb +++ b/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Send new deals created weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "fa2757f1-825e-46bb-aaa9-d2b0ff4ed072", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-23)" + ] + }, { "cell_type": "markdown", "id": "c32d5f62-c0ec-4200-ad84-e7e6167186f0", diff --git a/HubSpot/HubSpot_Send_sales_brief.ipynb b/HubSpot/HubSpot_Send_sales_brief.ipynb index 68e12ec083..b3234795df 100644 --- a/HubSpot/HubSpot_Send_sales_brief.ipynb +++ b/HubSpot/HubSpot_Send_sales_brief.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Send sales brief\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6bec3b40-a05d-4638-9bb3-ecf0b2b6899d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "de2df2a0-3352-46a8-9086-a74b319291df", diff --git a/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb b/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb index f7e69446f8..e463c89283 100644 --- a/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb +++ b/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Send sales pipeline to Notion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "f66053e0-0fdb-4a0a-b607-84e8012c1e64", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-10 (Created: 2023-04-26)" + ] + }, { "cell_type": "markdown", "id": "46c0e116-a852-4a27-80b1-01d4f0b876d8", diff --git a/HubSpot/HubSpot_Update_Task.ipynb b/HubSpot/HubSpot_Update_Task.ipynb index 8b30f1d811..01bf49edcc 100644 --- a/HubSpot/HubSpot_Update_Task.ipynb +++ b/HubSpot/HubSpot_Update_Task.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# HubSpot - Update Task\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "72e4e4b9-c33a-469a-8fc1-863385642de2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-12)" + ] + }, { "cell_type": "markdown", "id": "d1d30274-67c6-419e-b153-0da419e17859", diff --git a/HubSpot/HubSpot_Update_contact.ipynb b/HubSpot/HubSpot_Update_contact.ipynb index 1cb965d1b4..44d7bc8df8 100644 --- a/HubSpot/HubSpot_Update_contact.ipynb +++ b/HubSpot/HubSpot_Update_contact.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Update contact\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5b791f1e-d0ae-4a21-94fb-291a1418f35f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Update_deal.ipynb b/HubSpot/HubSpot_Update_deal.ipynb index fdeb3b1f61..7578d95e49 100644 --- a/HubSpot/HubSpot_Update_deal.ipynb +++ b/HubSpot/HubSpot_Update_deal.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Update deal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "dec9cc7e-5612-40ea-aeac-12781128d978", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb b/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb index fb9476efbf..9d71ea8fb5 100644 --- a/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb +++ b/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Update followers from linkedin\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d66bad49-724f-42ee-a460-e8189a7d814f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "b429b1d9-2399-400b-a0d0-c929ad307432", diff --git a/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb b/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb index 4829911fda..3323581d3d 100644 --- a/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb +++ b/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Update jobtitle country industry from linkedin\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bb851f2b-52ee-4326-a21b-8c5df24378fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "2eb191df-55fd-45eb-9215-99819458d8e1", diff --git a/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb b/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb index e84b908773..fb11d30812 100644 --- a/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb +++ b/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# HubSpot - Update linkedinbio from google\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4d2684c3-1dce-41d4-8d40-3d4212d89742", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-21)" + ] + }, { "cell_type": "markdown", "id": "d121927d-687a-4e07-85e9-5a16fc62a667", diff --git a/Hugging Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb b/Hugging Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb index 052a5b5511..4f22c6bf0e 100644 --- a/Hugging Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb +++ b/Hugging Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Hugging Face - Ask boolean question to T5\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "64a9c70e-b018-4e95-b0e3-65a99c82be0f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-08)" + ] + }, { "cell_type": "markdown", "id": "common-plastic", diff --git a/Hugging Face/Hugging_Face_Naas_drivers_integration.ipynb b/Hugging Face/Hugging_Face_Naas_drivers_integration.ipynb index c57d3652b8..b1b63bb1df 100644 --- a/Hugging Face/Hugging_Face_Naas_drivers_integration.ipynb +++ b/Hugging Face/Hugging_Face_Naas_drivers_integration.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Hugging Face - Naas drivers integration\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Gagan Bhatia](https://www.linkedin.com/in/gbhatia30/)" ] }, + { + "cell_type": "markdown", + "id": "7d8253e5-30ba-4142-835a-c0ac8ca5bb30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-31)" + ] + }, { "cell_type": "markdown", "id": "24302ee4-bc91-4a8c-b894-9f21211ba843", diff --git a/Hugging Face/Hugging_Face_Question_Answering_from_PDF.ipynb b/Hugging Face/Hugging_Face_Question_Answering_from_PDF.ipynb index 609e6064d3..bde0333e65 100644 --- a/Hugging Face/Hugging_Face_Question_Answering_from_PDF.ipynb +++ b/Hugging Face/Hugging_Face_Question_Answering_from_PDF.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Hugging Face - Question Answering from PDF\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Muhammad Talha Khan](https://www.linkedin.com/in/muhtalhakhan/)" ] }, + { + "cell_type": "markdown", + "id": "d8b2e9ee-568e-43bd-a598-f55404b06ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IFTTT/IFTTT_Post_on_Twitter.ipynb b/IFTTT/IFTTT_Post_on_Twitter.ipynb index fb6cff3e87..49ce45d613 100644 --- a/IFTTT/IFTTT_Post_on_Twitter.ipynb +++ b/IFTTT/IFTTT_Post_on_Twitter.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# IFTTT - Post on Twitter\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "31ad284a-1c70-40c8-89d7-48e034f77923", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IFTTT/IFTTT_Trigger_workflow.ipynb b/IFTTT/IFTTT_Trigger_workflow.ipynb index 832506fc1e..4a9b1ed3e2 100644 --- a/IFTTT/IFTTT_Trigger_workflow.ipynb +++ b/IFTTT/IFTTT_Trigger_workflow.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# IFTTT - Trigger workflow\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "b467a85e-3fd8-48a3-b53d-2c4f5b0e2742", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IMDB/Top_IMDB_Movie.ipynb b/IMDB/Top_IMDB_Movie.ipynb index 67948bf924..53ab46dc70 100644 --- a/IMDB/Top_IMDB_Movie.ipynb +++ b/IMDB/Top_IMDB_Movie.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# IMDB - Top Movie\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "bc9322fd-ddfa-4aaf-9b94-918e2e03b7ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-23)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/INPI/INPI_Download_PDF_recap.ipynb b/INPI/INPI_Download_PDF_recap.ipynb index 2bae1100c8..d170fd2b9a 100644 --- a/INPI/INPI_Download_PDF_recap.ipynb +++ b/INPI/INPI_Download_PDF_recap.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# INPI - Download PDF recap\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b80f943a-a52f-4fa1-ab1a-37919591303c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IPyWidgets/IPyWidgets_Create_button.ipynb b/IPyWidgets/IPyWidgets_Create_button.ipynb index 53d96ea454..fad255d560 100644 --- a/IPyWidgets/IPyWidgets_Create_button.ipynb +++ b/IPyWidgets/IPyWidgets_Create_button.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# IPyWidgets - Create button\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Ismail CHIHAB](https://www.linkedin.com/in/ismail-chihab-4b0a04202/)" ] }, + { + "cell_type": "markdown", + "id": "dbd0d94e-2b13-4bfe-a6d8-447fff637c1f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb b/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb index c3aecd5f90..f4e89c7b74 100644 --- a/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb +++ b/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# IPyWidgets - Create input text and submit button\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Ismail CHIHAB](https://www.linkedin.com/in/ismail-chihab-4b0a04202/)" ] }, + { + "cell_type": "markdown", + "id": "d98b5764-6f52-4659-9d4c-d0e1a0fa44f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb b/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb index 6b27ec8609..b3dfe18b2c 100644 --- a/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb +++ b/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# IPyWidgets - Setup naas secret\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d087489f-15b9-4fa1-bc67-44c87f5be7c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/IUCN/IUCN_Extinct_species.ipynb b/IUCN/IUCN_Extinct_species.ipynb index 06a9aac7f9..e0f86fbe0a 100644 --- a/IUCN/IUCN_Extinct_species.ipynb +++ b/IUCN/IUCN_Extinct_species.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# IUCN - Extinct species\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Martin Delasalle](https://github.com/delasalle-sio-martin)" ] }, + { + "cell_type": "markdown", + "id": "c2a0202a-d799-41ce-b034-5a72e8928985", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-28)" + ] + }, { "cell_type": "markdown", "id": "artificial-lesson", diff --git a/Insee/Insee_Download_PDF_recap.ipynb b/Insee/Insee_Download_PDF_recap.ipynb index f740a6d0f3..09e6f256f8 100644 --- a/Insee/Insee_Download_PDF_recap.ipynb +++ b/Insee/Insee_Download_PDF_recap.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Insee - Download PDF recap\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bd73d5c0-44d3-4df2-bb8b-27e1688b7a9f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Instagram/Instagram_Get_stats_from_posts.ipynb b/Instagram/Instagram_Get_stats_from_posts.ipynb index d17b490571..d74d6aa9b3 100644 --- a/Instagram/Instagram_Get_stats_from_posts.ipynb +++ b/Instagram/Instagram_Get_stats_from_posts.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Instagram - Get stats from posts\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Mohamed Abidi](https://www.linkedin.com/in/mohamed-abidi-919505192/)" ] }, + { + "cell_type": "markdown", + "id": "fcdf88ea-b290-4dc9-8605-08c8724551fd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Instagram/Instagram_Post_image_and_caption.ipynb b/Instagram/Instagram_Post_image_and_caption.ipynb index 9087292dd7..d1283f5457 100644 --- a/Instagram/Instagram_Post_image_and_caption.ipynb +++ b/Instagram/Instagram_Post_image_and_caption.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Instagram - Post image and caption\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "8edddd04-a2af-47f7-82aa-a9108cdcd3d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Integromat/Integromat_Trigger_workflow.ipynb b/Integromat/Integromat_Trigger_workflow.ipynb index 3d33341350..fbbfc85c76 100644 --- a/Integromat/Integromat_Trigger_workflow.ipynb +++ b/Integromat/Integromat_Trigger_workflow.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Integromat - Trigger workflow\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "a3cb4363-6c96-431d-879b-59b4b597e54b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-23)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/JSON/JSON_Convert_Python_Objects_to_JSON.ipynb b/JSON/JSON_Convert_Python_Objects_to_JSON.ipynb new file mode 100644 index 0000000000..774d735d98 --- /dev/null +++ b/JSON/JSON_Convert_Python_Objects_to_JSON.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "499674d9-657c-4a3d-b3ca-75ebccc90921", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "2ade69bd-8adb-442d-8d18-de847c0a872f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# JSON - Convert Python Objects to\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e3d067aa-1311-4a43-a789-ec70740ad550", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #json #python #convert #object #serialize #deserialize" + ] + }, + { + "cell_type": "markdown", + "id": "d66c6624-40a5-4b98-a47a-2aa04bc8f803", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "0e123a41-1453-4ae8-a773-cca9559567bc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "d57f153b-bc34-449f-939a-20e8d4a4ff89", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to convert Python objects to JSON and how to deserialize JSON back into Python objects." + ] + }, + { + "cell_type": "markdown", + "id": "147a74ae-1a39-4ccf-b2fd-4f1626996baf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python JSON](https://docs.python.org/3/library/json.html)\n", + "- [JSON Tutorial](https://www.w3schools.com/js/js_json_intro.asp)" + ] + }, + { + "cell_type": "markdown", + "id": "b81feae4-7846-44fc-8686-e7f1e87dd35e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "066c29cf-5760-4dc7-98f3-293f45bc6315", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7fbb76a2-f4ab-4d59-8bd8-338b0b98b7c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "markdown", + "id": "60bd5858-fd0c-4170-a9b8-1aa5ec65b16c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `data`: Python dictionary to be converted to JSON" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "054dae02-72b2-4dce-8a9d-732efc36ea7e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = {\"name\": \"Florent\", \"age\": 28, \"city\": \"Paris\"}" + ] + }, + { + "cell_type": "markdown", + "id": "1d31f7db-b8df-4638-baf2-4973ff623505", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "7f7d6354-9233-4f31-9051-1c8177304a1f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Serialize Python object to JSON" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "80499310-f0f9-4042-81f0-ecd6d29f8f48", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Serialize Python object to JSON\n", + "json_data = json.dumps(data)" + ] + }, + { + "cell_type": "markdown", + "id": "897bb508-aed4-4ed2-b251-d864005eb6a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Deserialize JSON to Python object" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c7d8143d-5dd1-4062-8e14-1755b69e3bcd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Deserialize JSON to Python object\n", + "python_data = json.loads(json_data)" + ] + }, + { + "cell_type": "markdown", + "id": "dc8f0fd6-2177-416e-b9e8-a20000047c75", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "e31d16ef-e930-4cb8-96db-ad718a1fa9cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "40a95f47-a544-42f9-9582-6f1c1b86c6d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Display result\n", + "print(json_data)\n", + "print(python_data)" + ] + }, + { + "cell_type": "markdown", + "id": "80f20a2d-25b3-48f2-853d-0c5516632f54", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "9366cd2a8b5ebabc8fa6722758d297cf0a47d5b09246c09565bfe44c0f0c5350", + "notebook_path": "JSON/JSON_Convert_Python_Objects_to_JSON.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/JSON/JSON_Pretty_print_JSON_data.ipynb b/JSON/JSON_Pretty_print_JSON_data.ipynb new file mode 100644 index 0000000000..8998c8ea90 --- /dev/null +++ b/JSON/JSON_Pretty_print_JSON_data.ipynb @@ -0,0 +1,276 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e22c8cc8-cb7c-49c0-a8fa-ecacdbe5aca8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "762472ad-5965-4e4d-ac78-562dd35a196f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# JSON - Pretty print data\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "b778052e-2f8b-468e-9554-5f7cff654a1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #json #prettyprint #data #format #parse #string" + ] + }, + { + "cell_type": "markdown", + "id": "26309c43-72fc-4194-ba4c-6c0e18962803", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "1ba78099-f5eb-43ad-90f6-47e1b8778a16", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "beb77e48-7a6d-4553-aa3f-97b7cb80d589", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to pretty print JSON data." + ] + }, + { + "cell_type": "markdown", + "id": "a528ba73-bed9-4ce7-929b-543eacd011ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [JSON Pretty Print](https://www.jsonprettyprint.com/)\n", + "- [JSON.org](https://www.json.org/)" + ] + }, + { + "cell_type": "markdown", + "id": "cfd006e9-60fe-45d6-978e-6c0251a07936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "23d4f129-875f-4b69-85ce-c72d33d7c0eb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "5e50c925-62db-4825-a3a5-9da48c4b8410", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "markdown", + "id": "b698cc2f-04e5-488e-b287-a65cb708fd02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `json_string`: a JSON string to be parsed" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "fae66e25-37f0-40b5-b550-6ff03d628e2f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "json_string = '{\"name\": \"Florent\", \"age\": 28, \"city\": \"Paris\"}'" + ] + }, + { + "cell_type": "markdown", + "id": "389cc078-4b54-4d12-a979-6a33c294440b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "03a52a1c-fb74-4a9d-82e8-a77de7685ffe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Parse JSON string" + ] + }, + { + "cell_type": "markdown", + "id": "ed69a3ce-c450-4592-9711-6d21cfefb1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will parse a JSON string and display it in a readable format." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "001d1104-c694-43d4-8d8d-c285954f5239", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Parse JSON string\n", + "parsed_json = json.loads(json_string)" + ] + }, + { + "cell_type": "markdown", + "id": "ec763cbe-0cbc-492a-a76d-25ab274963aa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "d56fe3bd-cc42-45db-a8ae-4d4d0beaf174", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b386e596-02df-4d3e-8d6a-a69b5e37bef3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Display result\n", + "print(json.dumps(parsed_json, indent=4))" + ] + }, + { + "cell_type": "markdown", + "id": "00f5f8be-2246-4e21-ac13-5c8a0ea1e77b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "566b67709b26f1097172c3b9c9641f132b8cf9d299ba3b314bda01fa26e3c31f", + "notebook_path": "JSON/JSON_Pretty_print_JSON_data.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Read_json_file.ipynb b/JSON/JSON_Read_local_file.ipynb similarity index 80% rename from Python/Python_Read_json_file.ipynb rename to JSON/JSON_Read_local_file.ipynb index 9be5cd5288..8b013cbd39 100644 --- a/Python/Python_Read_json_file.ipynb +++ b/JSON/JSON_Read_local_file.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# Python - Read json file\n", - "

Template request | Bug report | Generate Data Product" + "# JSON - Read local file\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #json #read #file #data #parse" + "**Tags:** #json #python #read #file #data #parse" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "47a1ebe0-3613-4877-affe-580854c04a8f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-10)" + ] + }, { "cell_type": "markdown", "id": "c34e25e2-6e18-423a-8171-9a53b908f8d2", @@ -53,7 +64,7 @@ "tags": [] }, "source": [ - "**Description:** This notebook will demonstrate how to read a json file in Python." + "**Description:** This notebook will demonstrate how to read a json file." ] }, { @@ -93,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "25e9d285-f6b4-4da5-8995-b2d3b25a755d", "metadata": { "papermill": {}, @@ -112,13 +123,13 @@ "tags": [] }, "source": [ - "### Setup Variables\n", + "### Setup variables\n", "- `file_name`: Name of the json file to be read" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "b1d6e56e-3eb7-4b64-bfce-342cb96fad67", "metadata": { "papermill": {}, @@ -126,7 +137,7 @@ }, "outputs": [], "source": [ - "file_name = \"data.json\"" + "file_name = \"../templates.json\"" ] }, { @@ -164,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "884b5c18-249e-491e-9af8-98d6709a7102", "metadata": { "papermill": {}, @@ -202,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "79fd1ae2-97b8-4bf5-9773-ee3eb73ab02a", "metadata": { "papermill": {}, @@ -211,7 +222,7 @@ "outputs": [], "source": [ "data = read_json_file(file_name)\n", - "print(data)" + "print(\"Data fetched:\", len(data))" ] }, { @@ -245,8 +256,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "545dd6c2277d307b19ba67772aeaf03f101cd8f7997e5de53569d2e07f98988a", - "notebook_path": "Python/Python_Read_json_file.ipynb" + "notebook_id": "87d99fa50cdfeb99934671dc8dc2667c10df4a549bcea2874106f99651860146", + "notebook_path": "JSON/JSON_Read_local_file.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/JSON/JSON_Save_dataframe_to_JSON_file.ipynb b/JSON/JSON_Save_dataframe_to_JSON_file.ipynb new file mode 100644 index 0000000000..809a7a0885 --- /dev/null +++ b/JSON/JSON_Save_dataframe_to_JSON_file.ipynb @@ -0,0 +1,327 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3aa858af-067d-4831-9b9a-5f3e918efac3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "d36356f7-4c3f-4758-a00e-84826514535c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# JSON - Save dataframe to file\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "c616068c-4b2d-444c-b6d1-311ae7047723", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #json #python #file #save #data" + ] + }, + { + "cell_type": "markdown", + "id": "3bb73f8f-7dd1-4803-a9e2-b5dd1f31918f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "70ebc795-6da5-425d-b022-a73b36b3eae8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "d3c4f486-789b-4ed6-bc4e-10f42242b425", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will demonstrate how to save a DataFrame to a json file." + ] + }, + { + "cell_type": "markdown", + "id": "f89f9cf2-8555-4461-86a6-da17482c84fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python json module](https://docs.python.org/3/library/json.html)\n", + "- [Python json.dump()](https://www.programiz.com/python-programming/methods/json/dump)" + ] + }, + { + "cell_type": "markdown", + "id": "9e80b263-878f-417a-aa26-6f46640781e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "990d6312-352f-4121-a6ba-986f981a6075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1a776e43-a2b8-46de-b982-61b1d220402d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "ec5db635-aef2-4cf6-9646-c54173b4f048", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `orient` : Determines the type of the values of the dictionary.\n", + " - 'dict' (default) : dict like {column -> {index -> value}}\n", + " - 'list' : dict like {column -> [values]}\n", + " - 'series' : dict like {column -> Series(values)}\n", + " - 'split' : dict like\n", + " {'index' -> [index], 'columns' -> [columns], 'data' -> [values]}\n", + " - 'tight' : dict like\n", + " {'index' -> [index], 'columns' -> [columns], 'data' -> [values],\n", + " 'index_names' -> [index.names], 'column_names' -> [column.names]}\n", + " - 'records' : list like\n", + " [{column -> value}, ... , {column -> value}]\n", + " - 'index' : dict like {index -> {column -> value}}\n", + "- `json_path`: json file path" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "093a6a77-011a-43b7-bc51-c8609b71c9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "orient = \"records\"\n", + "json_path = \"data.json\"" + ] + }, + { + "cell_type": "markdown", + "id": "492ff731-7c1d-421a-8ca8-f9998960985e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "45577874-6ec8-4a52-9555-c578595c471e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "42dac397-6396-4c0f-98f7-f93b258cbf67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pd.DataFrame([{\"name\": \"John Doe\", \"age\": 30, \"city\": \"New York\"}])\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "e6976151-a11c-4128-a54c-96db2fe25862", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert DataFrame to dict" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c88e6c94-60e5-4249-9868-aa2bb6119ec4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = df.to_dict(orient=orient)\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "4a3f7a9a-b3f2-4bcf-aabb-abe0d114357a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ddcea30b-ca37-40d9-bd95-6051a05032d9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save json file" + ] + }, + { + "cell_type": "markdown", + "id": "42126c8d-c5e9-486c-8eee-e5430032969a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "Using the `json.dump()` function, the `data` dictionary can be saved to a json file." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2000cc5f-9c13-49ef-b52d-8890cd8bad41", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "with open(json_path, \"w\") as f:\n", + " json.dump(data, f)\n", + "print(\"💾 The json file has been saved to the current directory.\")" + ] + }, + { + "cell_type": "markdown", + "id": "d0c4eb23-c6d1-4b09-b39e-59394b601926", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "3f5c1715-a12e-4031-96e5-bcf488ea098d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "9cee4953ea85382e65f4d07efd0a162eb35b120f714fd0da9f0de60f6426bddb", + "notebook_path": "JSON/JSON_Save_dataframe_to_JSON_file.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Save_json_file.ipynb b/JSON/JSON_Save_dict_to_JSON_file.ipynb similarity index 77% rename from Python/Python_Save_json_file.ipynb rename to JSON/JSON_Save_dict_to_JSON_file.ipynb index c2562f3f3a..ba6db9497b 100644 --- a/Python/Python_Save_json_file.ipynb +++ b/JSON/JSON_Save_dict_to_JSON_file.ipynb @@ -19,8 +19,8 @@ "tags": [] }, "source": [ - "# Python - Save json file\n", - "

Template request | Bug report | Generate Data Product" + "# JSON - Save dict to file\n", + "

Give Feedback | Bug report" ] }, { @@ -31,7 +31,7 @@ "tags": [] }, "source": [ - "**Tags:** #python #json #file #save #data #io" + "**Tags:** #json #python #file #save #data" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "69830368-309d-4561-8dd0-53a69c6e8030", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-09 (Created: 2023-03-10)" + ] + }, { "cell_type": "markdown", "id": "d3c4f486-789b-4ed6-bc4e-10f42242b425", @@ -53,7 +64,7 @@ "tags": [] }, "source": [ - "**Description:** This notebook will demonstrate how to save a json file using Python." + "**Description:** This notebook will demonstrate how to save a dict to a json file." ] }, { @@ -93,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "1a776e43-a2b8-46de-b982-61b1d220402d", "metadata": { "papermill": {}, @@ -112,14 +123,13 @@ "tags": [] }, "source": [ - "### Setup Variables\n", - "- `data`: a dictionary containing the data to be saved in the json file\n", + "### Setup variables\n", "- `json_path`: json file path" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "093a6a77-011a-43b7-bc51-c8609b71c9db", "metadata": { "papermill": {}, @@ -127,7 +137,6 @@ }, "outputs": [], "source": [ - "data = {\"name\": \"John Doe\", \"age\": 30, \"city\": \"New York\"}\n", "json_path = \"data.json\"" ] }, @@ -144,73 +153,75 @@ }, { "cell_type": "markdown", - "id": "ddcea30b-ca37-40d9-bd95-6051a05032d9", + "id": "e99d198a-f27c-42f4-b02b-27fc83161004", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Save json file" + "### Create data" ] }, { - "cell_type": "markdown", - "id": "42126c8d-c5e9-486c-8eee-e5430032969a", + "cell_type": "code", + "execution_count": 3, + "id": "a33e5259-5d5b-4295-9054-99bb6a3d8102", "metadata": { "papermill": {}, "tags": [] }, + "outputs": [], "source": [ - "Using the `json.dump()` function, the `data` dictionary can be saved to a json file." + "data = {\"name\": \"John Doe\", \"age\": 30, \"city\": \"New York\"}\n", + "data" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "2000cc5f-9c13-49ef-b52d-8890cd8bad41", + "cell_type": "markdown", + "id": "4a3f7a9a-b3f2-4bcf-aabb-abe0d114357a", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "with open(json_path, \"w\") as f:\n", - " json.dump(data, f)" + "## Output" ] }, { "cell_type": "markdown", - "id": "4a3f7a9a-b3f2-4bcf-aabb-abe0d114357a", + "id": "ddcea30b-ca37-40d9-bd95-6051a05032d9", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "## Output" + "### Save json file" ] }, { "cell_type": "markdown", - "id": "94485536-9885-4df4-80e6-005d780c6faa", + "id": "42126c8d-c5e9-486c-8eee-e5430032969a", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Display result" + "Using the `json.dump()` function, the `data` dictionary can be saved to a json file." ] }, { "cell_type": "code", - "execution_count": null, - "id": "6e5cf9f9-c65b-4e7f-8619-26febee25495", + "execution_count": 4, + "id": "2000cc5f-9c13-49ef-b52d-8890cd8bad41", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "print(\"The json file has been saved to the current directory.\")" + "with open(json_path, \"w\") as f:\n", + " json.dump(data, f)\n", + "print(\"💾 The json file has been saved to the current directory.\")" ] }, { @@ -255,8 +266,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "3d275411df57748c1f0b36c1b0f71a229c7856e2fcc01d7a1f55eaa771d387ed", - "notebook_path": "Python/Python_Save_json_file.ipynb" + "notebook_id": "050391ecb5e0318f1aea99870a20423b913b3baef4dfac8b3ecd9d1c32618266", + "notebook_path": "JSON/JSON_Save_dict_to_JSON_file.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb b/JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb new file mode 100644 index 0000000000..ae755dd0a5 --- /dev/null +++ b/JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb @@ -0,0 +1,329 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "938d9fa1-5f33-4b1c-a073-8bc4065c45fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "df50635b-6326-4141-96c3-ff171716c295", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# JSON - Send to Google Sheets spreadsheet\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "7f0aaa12-3eeb-4de9-a331-ae2acd633d73", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #json #gsheet #python #read #file #data #parse #automation" + ] + }, + { + "cell_type": "markdown", + "id": "ff436e05-c347-46b6-895d-ef030965955c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "262a8998-b324-4367-ab57-eaab1e8843e6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "c34e25e2-6e18-423a-8171-9a53b908f8d2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will demonstrate how to send a json file to a Google Sheets spreadsheet." + ] + }, + { + "cell_type": "markdown", + "id": "32a39269-9f73-43d4-8d3a-545733436471", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python json module](https://docs.python.org/3/library/json.html)\n", + "- [JSON format](https://www.json.org/json-en.html)" + ] + }, + { + "cell_type": "markdown", + "id": "5e371692-1cc5-4751-b8ef-c7171c7c9562", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "4d5b8197-09c8-4ca1-9997-3103db0fcbcf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25e9d285-f6b4-4da5-8995-b2d3b25a755d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import json\n", + "from naas_drivers import gsheet\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "900920f4-dc14-4a60-9082-20731b36af7c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "Share your Google Sheets spreadsheet with our service account : 🔗 naas-share@naas-gsheets.iam.gserviceaccount.com\n", + "\n", + "- `spreadsheet_url`: Google Sheets spreadsheet URL\n", + "- `sheet_name`: Google Sheets sheet name\n", + "- `file_name`: Name of the json file to be read\n", + "\n", + "**Optional**\n", + "- `append`: If False, data will be canceled and replaced." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1d6e56e-3eb7-4b64-bfce-342cb96fad67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "file_name = \"../templates.json\"\n", + "spreadsheet_url = \"https://docs.google.com/spreadsheets/d/1RdwdYXDFDSFSFxxxxxxxx/edit#gid=XXXXXXXX33\"\n", + "sheet_name = \"MY_SHEET\"\n", + "\n", + "# Optional\n", + "append = False" + ] + }, + { + "cell_type": "markdown", + "id": "305071a0-cd72-4032-ba8f-7a97e78b39a4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "46cf7375-5884-4a50-a137-98e59e178655", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Read json file" + ] + }, + { + "cell_type": "markdown", + "id": "f0f5999e-0592-49d9-b3cf-fea08b3f5b87", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will read the json file and return the content as a dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "884b5c18-249e-491e-9af8-98d6709a7102", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def read_json_file(file_name):\n", + " with open(file_name) as json_file:\n", + " data = json.load(json_file)\n", + " return data\n", + "\n", + "data = read_json_file(file_name)\n", + "print(\"Data fetched:\", len(data))" + ] + }, + { + "cell_type": "markdown", + "id": "7c07130d-2127-419f-8582-50ae312c0ac9", + "metadata": { + "execution": { + "iopub.execute_input": "2023-07-31T16:13:53.830935Z", + "iopub.status.busy": "2023-07-31T16:13:53.830695Z", + "iopub.status.idle": "2023-07-31T16:13:53.833755Z", + "shell.execute_reply": "2023-07-31T16:13:53.833108Z", + "shell.execute_reply.started": "2023-07-31T16:13:53.830903Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert dict to DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45c78b22-eb62-4be9-b803-c45cb0d6a4f7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(data)\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "fe4ab7f9-321e-4ac7-ab36-f16f29939fab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "22da40c7-c84e-4c82-8335-57160760feb1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send data to Google Sheets spreadsheet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97646394-2448-4703-aaba-607744f72667", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "gsheet.connect(spreadsheet_url).send(sheet_name=sheet_name, data=df, append=append)" + ] + }, + { + "cell_type": "markdown", + "id": "ee6dd6c4-619a-4d3c-ba45-2801a4d309b3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c603c422f9e39d2ea960638448b510dbc4027f4cf6c068d0f196a82a161c3fd2", + "notebook_path": "JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Johns Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb b/Johns Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb index 2dc57bd027..2927994ae1 100644 --- a/Johns Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb +++ b/Johns Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Johns Hopkins - Covid19 Active Cases\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "97073481-0429-470d-ad33-5ed057b8d304", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Johns Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb b/Johns Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb index f9f8a420cb..18f4b9cab4 100644 --- a/Johns Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb +++ b/Johns Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Johns Hopkins - Get Covid19 data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "1aa2e925-d50c-407d-8885-6a84f8d5980a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb index f0922b316a..e28841d69d 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Add cells in notebook json\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "febf751f-af86-4dac-9430-d0b14dd0b78a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb index ac3f795e5a..0b7843bb11 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Add tags in cells\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bb4312b3-8805-4cba-a25a-ff6bda4c8f2f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb index 20073836bb..f6754d224d 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Jupyter Notebooks - Apply black on notebook file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "c73ab4ae-1e0e-4c1b-9e6a-9f66d9926927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-26 (Created: 2023-04-26)" + ] + }, { "cell_type": "markdown", "id": "cd240879-dd61-4e08-b2fa-e3099ff4f6bb", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb index 3b36270d2b..eb280d18a6 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Count code characters\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "374913b9-cdf9-4301-9377-111fac8542a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb index ce8f2c0204..d0b01ea3d7 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Count code lines\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e743d647-8948-4e3d-bf8e-f8e56bf077a2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Get_installs.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Get_installs.ipynb index 53f32999bb..ebde247ddc 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Get_installs.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Get_installs.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Get installs\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "66024071-fcdd-498b-9db0-649ab7898707", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Get_libraries.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Get_libraries.ipynb index 6b9bb5885b..e44db85bad 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Get_libraries.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Get_libraries.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Get libraries\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2d94624c-bde7-4ff8-b888-6be2defd40b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Read_file_json.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Read_file_json.ipynb index cefa81534f..9ed0b6d07b 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Read_file_json.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Read_file_json.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Read file json\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4ce69e02-8490-4956-b1cc-5b91be0f3358", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb b/Jupyter Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb index 1650feedf9..015f3821af 100644 --- a/Jupyter Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb +++ b/Jupyter Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter Notebooks - Save file ipynb\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ddb67dbd-7355-4b06-a94b-b493fa15c154", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter/Jupyter_Get_server_uptime.ipynb b/Jupyter/Jupyter_Get_server_uptime.ipynb index 03451810a3..99050ae1ff 100644 --- a/Jupyter/Jupyter_Get_server_uptime.ipynb +++ b/Jupyter/Jupyter_Get_server_uptime.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter - Get server uptime\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "a38e09ae-5e09-409e-89cd-b756caf9f52c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter/Jupyter_Get_user_information.ipynb b/Jupyter/Jupyter_Get_user_information.ipynb index 9fcc9ac20c..a8d354c6e9 100644 --- a/Jupyter/Jupyter_Get_user_information.ipynb +++ b/Jupyter/Jupyter_Get_user_information.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter - Get user information\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "2daea37c-6a89-4d39-9f80-df635ab52916", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter/Jupyter_Get_user_session.ipynb b/Jupyter/Jupyter_Get_user_session.ipynb index 10dca67ef3..4f5684f071 100644 --- a/Jupyter/Jupyter_Get_user_session.ipynb +++ b/Jupyter/Jupyter_Get_user_session.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter - Get user session\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "680bf714-bd4e-460f-aa76-2ff43a4d57bc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter/Jupyter_Get_user_terminal.ipynb b/Jupyter/Jupyter_Get_user_terminal.ipynb index 691336fd03..774720ab73 100644 --- a/Jupyter/Jupyter_Get_user_terminal.ipynb +++ b/Jupyter/Jupyter_Get_user_terminal.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter - Get user terminal\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "57f54759-7abc-4e79-803e-98ddee3bb53b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Jupyter/Jupyter_Restart_server.ipynb b/Jupyter/Jupyter_Restart_server.ipynb index ffcfaa3e37..19ca3e6a50 100644 --- a/Jupyter/Jupyter_Restart_server.ipynb +++ b/Jupyter/Jupyter_Restart_server.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Jupyter - Restart server\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "d2138da4-2ffc-457d-b127-b884035e9e4b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Kaggle/Kaggle_Download_Data.ipynb b/Kaggle/Kaggle_Download_Data.ipynb index 086ae168df..0c8626dd99 100644 --- a/Kaggle/Kaggle_Download_Data.ipynb +++ b/Kaggle/Kaggle_Download_Data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Kaggle - Download Data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Muhammad Waqar Gul](https://www.linkedin.com/in/waqar-gul)" ] }, + { + "cell_type": "markdown", + "id": "7bede396-4370-4a7e-9fdb-389b96f13577", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Knative/Knative_Create_command_file.ipynb b/Knative/Knative_Create_command_file.ipynb index a20b39a461..e50b5dfc42 100644 --- a/Knative/Knative_Create_command_file.ipynb +++ b/Knative/Knative_Create_command_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Knative - Create command file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ce212a87-38d6-4d63-8445-acc0dd2e6d95", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LangChain/LangChain_CSV_Agent.ipynb b/LangChain/LangChain_CSV_Agent.ipynb index fe41eaab80..da3dc68f0b 100644 --- a/LangChain/LangChain_CSV_Agent.ipynb +++ b/LangChain/LangChain_CSV_Agent.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LangChain - CSV Agent\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Hamid Mukhtar](https://www.linkedin.com/in/mukhtar-hamid/)" ] }, + { + "cell_type": "markdown", + "id": "6b607685-d026-4f09-8724-013227fcf2c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-01)" + ] + }, { "cell_type": "markdown", "id": "09056bc2-135e-46e8-a422-4ef3dfabf41e", diff --git a/LangChain/LangChain_Gmail_Toolkit.ipynb b/LangChain/LangChain_Gmail_Toolkit.ipynb new file mode 100644 index 0000000000..45fc1ddc73 --- /dev/null +++ b/LangChain/LangChain_Gmail_Toolkit.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5b359bbb-67cc-421c-bb24-123c5f82f14f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "2ccd97c7-9b76-4fed-a21f-8580e8265fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# LangChain - Gmail Toolkit\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "c1e1d539-0935-4c38-8cec-351742f96603", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #langchain #gmail #toolkit #api #email #connect" + ] + }, + { + "cell_type": "markdown", + "id": "37b05a75-d214-4ad2-a72d-7254496121c9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" + ] + }, + { + "cell_type": "markdown", + "id": "4b717ff6-6575-43bb-b4bb-3b92a4d7f580", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "7dd95074-ae2d-45ee-8c8a-4873f09ca854", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook walks through connecting a LangChain email to the Gmail API." + ] + }, + { + "cell_type": "markdown", + "id": "eb976cd4-80af-4c69-b30c-20ea94094dc9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [LangChain - Gmail Toolkit](https://python.langchain.com/en/latest/modules/agents/toolkits/examples/gmail.html#gmail-toolkit)\n", + "- [Gmail API Documentation](https://developers.google.com/gmail/api/quickstart/python#authorize_credentials_for_a_desktop_application)" + ] + }, + { + "cell_type": "markdown", + "id": "7250ee45-888f-472d-8824-55ba13ea0393", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "6d2442bd-26f6-4faf-8fc7-d905856afb8f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7047359-bbc1-4171-b9d0-c0f291d9f142", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import langchain\n", + "except ModuleNotFoundError:\n", + " !pip install langchain\n", + "from langchain.llms import OpenAI\n", + "from langchain.agents.agent_toolkits import GmailToolkit\n", + "from langchain.agents import initialize_agent, AgentType\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "44655998-a797-43e5-83cc-567efe1f44b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "Make sure to have the `credentials.json` (derived from Google cloud) file in the same directory of this script. You can refer to this [blog](https://blog.sriniketh.design/getting-credentials-from-gcp-google-cloud-platform) if you face any issues in getting the `.json` file.\n", + "For more information, please refer to the [Gmail API Documentation](https://developers.google.com/gmail/api/quickstart/python).\n", + "- `openai_api_key`: [Get your API key here](https://openai.com/docs/api-overview/).\n", + "- `temp`: Default value is 0 but preferred to have 0.7. You can change this value according to your requirements\n", + "- `prompt`: The actual task that you want the agent to run which needs to be fed as input to the user" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4a078d4-f8f1-46d5-8f72-91f7c7e2662e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "openai_api_key = naas.secret.get(\"OPENAI_API_KEY\") or \"Paste-your-key-here\"\n", + "temp = 0.7\n", + "prompt = \"Enter your own\" or \"Create a gmail draft to send an email to the co founder seeking if there are any job role available at their startup?\"" + ] + }, + { + "cell_type": "markdown", + "id": "4b4e2823-d989-4006-8bb6-f931497bd55e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "3956e2b3-00ed-4a62-a7f8-7ea3e29efe99", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create the toolkit object" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28ec777e-deb2-4579-bbf3-fbce28e981da", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "llm = OpenAI(temperature=temp, openai_api_key=openai_api_key)\n", + "toolkit = GmailToolkit()" + ] + }, + { + "cell_type": "markdown", + "id": "3bede15a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create a new Langchain Agent" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ac9c29a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "agent = initialize_agent(\n", + " tools=toolkit.get_tools(),\n", + " llm=llm,\n", + " agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "e7b30a56-8410-4ae7-a397-2ed4587ce346", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ed53c8c0-2a2a-4411-8a10-cae936cb2df1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1be1deb7-e327-496d-9c56-d7297b730877", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Print the Gmail API service object (Please not it may take sometime for the mail to reflect in your Gmail account)\n", + "print(agent.run(prompt))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "82653462f187b1612eabf3410fb8c69cd5f3bc64d1b6a7828d840867d3d86cfd", + "notebook_path": "LangChain/LangChain_Gmail_Toolkit.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/LangChain/LangChain_JSON_Agent.ipynb b/LangChain/LangChain_JSON_Agent.ipynb new file mode 100644 index 0000000000..fd7c60ed12 --- /dev/null +++ b/LangChain/LangChain_JSON_Agent.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d5c27438-2100-431d-98dd-83acf6d5cbc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "8b45064a-f828-4ceb-a819-b6793a40c390", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# LangChain - JSON Agent\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "ed5d0c25-7509-4bfa-be94-4b8dd761248c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #json #agent #langchain #toolkit #example #python" + ] + }, + { + "cell_type": "markdown", + "id": "cbcedf68-cc36-40b8-8545-9160bb3bed0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" + ] + }, + { + "cell_type": "markdown", + "id": "d04c887f-42f6-47d5-bd1d-f93dd15f0c27", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-20)" + ] + }, + { + "cell_type": "markdown", + "id": "7d7db12a-6bac-417b-a7f9-cdb6f2d17e2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook showcases an agent designed to interact with large JSON/dict objects. This is useful when you want to answer questions about a JSON blob that’s too large to fit in the context window of an LLM. The agent is able to iteratively explore the blob to find what it needs to answer the user’s question." + ] + }, + { + "cell_type": "markdown", + "id": "93bca588-94f5-4abb-b541-c61e67c35f3f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [LangChain - JSON Agent](https://python.langchain.com/en/latest/modules/agents/toolkits/examples/json.html)" + ] + }, + { + "cell_type": "markdown", + "id": "7e42edcc-0625-41c3-bf67-5fcfc15e42a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "d046cdab-7c8d-47a8-a7c7-2962694081d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0ac85822-555b-45d9-a831-d4410ee31d03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import langchain\n", + " import validators\n", + "except ModuleNotFoundError:\n", + " !pip install langchain tabulate typing-inspect==0.8.0 typing_extensions==4.5.0 validators --user\n", + "from langchain.agents.agent_toolkits import JsonToolkit\n", + "from langchain.tools.json.tool import JsonSpec\n", + "from langchain.agents import create_json_agent\n", + "from langchain.llms.openai import OpenAI\n", + "import json\n", + "from urllib.request import urlopen\n", + "import validators\n", + "import naas\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "89697d78-5044-4b94-8601-701992c1031e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `api_key`: OpenAI API key. [Get your API key here](https://openai.com/docs/api-overview/).\n", + "- `temperature` (Defaults to 1): This is a value that controls the level of randomness in the generated text. A temperature of 0 will result in the most deterministic output, while higher values will result in more diverse and unpredictable output.\n", + "- `data`: Data in JSON format\n", + "- `question`: question to be asked to agent" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d2f27a8b-0571-4f15-8cb1-4aae6c976023", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(name=\"OPENAI_API_KEY\") or \"ENTER_YOUR_OPENAI_API_KEY\"\n", + "temperature = 0\n", + "data = {\n", + " \"name\": \"John Doe\",\n", + " \"age\": 30,\n", + " \"email\": \"johndoe@example.com\",\n", + " \"address\": {\n", + " \"street\": \"123 Main Street\",\n", + " \"city\": \"New York\",\n", + " \"state\": \"NY\",\n", + " \"postalCode\": \"10001\"\n", + " },\n", + " \"phoneNumbers\": [\"123-456-7890\", \"987-654-3210\"],\n", + " \"isEmployed\": True,\n", + " \"languages\": [\"English\", \"Spanish\"]\n", + "}\n", + "question = \"Where is John Doe living?\"" + ] + }, + { + "cell_type": "markdown", + "id": "6232b70f-90fa-477f-860b-dd5745e75f13", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4190dde0-a93b-4594-963d-528bf0d59cd4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create a JSON Agent" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a2087dfa-ba1b-48b4-b866-1fa81535b4c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "json_spec = JsonSpec(dict_=data, max_value_length=4000)\n", + "json_toolkit = JsonToolkit(spec=json_spec)\n", + "json_agent_executor = create_json_agent(\n", + " llm=OpenAI(temperature=temperature, openai_api_key=api_key),\n", + " toolkit=json_toolkit,\n", + " verbose=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "31389910-44ad-47ca-a055-5539db5eb7b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "d4414a3c-4bb0-4ade-a59b-82581e6c154c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display the result" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e9bb50bc-60e5-401b-895e-afdab834b7af", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "response = json_agent_executor.run(question)\n", + "print(\"Result:\", response)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b4b8df1-1089-4603-be95-dd8c70927d02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "97b75457b5be4aa0267637c05db4895ccd911ef922cded10242a313ab1245dbb", + "notebook_path": "LangChain/LangChain_JSON_Agent.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb b/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb index cc2dd68dcc..aefe0ef768 100644 --- a/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb +++ b/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LangChain - Pandas Dataframe Agent\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3b832d47-6ad3-40bc-a783-bdf1833eac1d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-01)" + ] + }, { "cell_type": "markdown", "id": "477dc5fa-ed7d-4268-934a-f59b051777d0", @@ -264,4 +275,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/LeFigaro/LeFigaro_House_Price_analysis.ipynb b/LeFigaro/LeFigaro_House_Price_analysis.ipynb index a2f1451010..a2e08f67c3 100644 --- a/LeFigaro/LeFigaro_House_Price_analysis.ipynb +++ b/LeFigaro/LeFigaro_House_Price_analysis.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LeFigaro - House Price analysis\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Mahanamana Andriamiharisoa](https://www.linkedin.com/in/mahanamana/)" ] }, + { + "cell_type": "markdown", + "id": "1122a95c-6099-4f59-855c-f63c9a92bc56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb b/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb index be2585caa4..a163036a60 100644 --- a/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb +++ b/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn Sales Navigator - Extract Leads List from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "31663e82-6ed8-4c31-97dd-4baf30282c33", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-27)" + ] + }, { "cell_type": "markdown", "id": "e0211137-912b-4be7-b0d7-4e6c25069319", diff --git a/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb b/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb index 6753494d45..c0b0443ba2 100644 --- a/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb +++ b/LinkedIn Sales Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn Sales Navigator - Send Leads to Spreadsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "afc4d7f1-8ff5-4288-a7d4-874a7bd2ac48", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-02)" + ] + }, { "cell_type": "markdown", "id": "e0211137-912b-4be7-b0d7-4e6c25069319", diff --git a/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb b/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb index 8d8efff153..5ec3df3d85 100644 --- a/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb +++ b/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Accept all invitations and send first message\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "a6d18cef-1657-42b7-82f5-0e3f0444cdb9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Accept_invitation_received.ipynb b/LinkedIn/LinkedIn_Accept_invitation_received.ipynb index d83f51f4a2..e2637de03f 100644 --- a/LinkedIn/LinkedIn_Accept_invitation_received.ipynb +++ b/LinkedIn/LinkedIn_Accept_invitation_received.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Accept invitation received\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "3d169869-4894-4a45-a1ad-e4d4d0c8cab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb b/LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb new file mode 100644 index 0000000000..d210ba7bc7 --- /dev/null +++ b/LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb @@ -0,0 +1,642 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "recreational-precipitation", + "metadata": { + "execution": { + "iopub.execute_input": "2021-01-25T08:00:35.294800Z", + "iopub.status.busy": "2021-01-25T08:00:35.294557Z", + "iopub.status.idle": "2021-01-25T08:00:35.307281Z", + "shell.execute_reply": "2021-01-25T08:00:35.306468Z", + "shell.execute_reply.started": "2021-01-25T08:00:35.294775Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "anticipated-teach", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# LinkedIn - Chat about my latest profile posts\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "6f9a2cbe-a573-488b-88aa-c505a38b3ef5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #linkedin #profile #post #stats #naas_drivers #content #automation #csv" + ] + }, + { + "cell_type": "markdown", + "id": "412447a1-7aba-4cdf-afec-b5a94515b619", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "cb917b60-0d9f-48a0-b916-ce3fa9955437", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-26 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook enables you to converse inside MyChatGPT about your most recent LinkedIn posts using a CSV file stored in your Naas Lab and a JSON plugin asset. Data is updated and replaced with each run." + ] + }, + { + "cell_type": "markdown", + "id": "481d93a8-af29-41e3-9fc0-29f2bce7658f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by Linkedin or any of its affiliates or subsidiaries. It uses an independent and unofficial API. Use at your own risk.\n", + "\n", + "This project violates Linkedin's User Agreement Section 8.2, and because of this, Linkedin may (and will) temporarily or permanently ban your account. We are not responsible for your account being banned.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "attractive-bandwidth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dangerous-christianity", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from naas_drivers import linkedin\n", + "import pandas as pd\n", + "from datetime import datetime\n", + "import naas\n", + "import os\n", + "import json\n", + "try:\n", + " from wordcloud import WordCloud\n", + "except:\n", + " !pip install wordcloud --user\n", + " from wordcloud import WordCloud\n", + "import matplotlib.pyplot as plt\n", + "try:\n", + " import tiktoken\n", + "except:\n", + " !pip install tiktoken --user\n", + " import tiktoken" + ] + }, + { + "cell_type": "markdown", + "id": "quiet-founder", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation\n", + "- `linkedin_url`: This variable stores the LinkedIn profile URL that will be used as an input for the script.\n", + "\n", + "**Optional**\n", + "\n", + "- `limit`: Number of posts retrieved.\n", + "- `refresh_interval`: Time in minutes between two updates of the CSV file, which helps prevent excessive calls to the LinkedIn API.\n", + "- `cron`: cron params for naas scheduler, for information on changing this setting, please check https://crontab.guru/ for information on the required CRON syntax.\n", + "- `plugin_name`: It represents the name of the plugin.\n", + "- `plugin_model`: It specifies the model to be used by the plugin.\n", + "- `plugin_temperature`: It determines the creativity level of the generated content, with higher values resulting in more diverse outputs.\n", + "- `plugin_max_tokens`: It specifies the number of maximum tokens to be used by the plugin.\n", + "- `system_prompt_max_tokens`: Indicative limit of the maximum number of tokens allowed in the system prompt.\n", + "- `output_dir`: This variable represents the name of the output directory.\n", + "- `csv_file_name`: This variable stores the name of the CSV file that will contain the latest posts.\n", + "- `image_file_name`: This variable holds the name of the image file that will display the word cloud.\n", + "- `plugin_file_name`: This variable contains the name of the plugin file that will analyze the posts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "classical-necklace", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\")\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\")\n", + "linkedin_url = \"https://www.linkedin.com/in/florent-ravenel/\" # EXAMPLE \"https://www.linkedin.com/in/myprofile/\"\n", + "\n", + "# Optional\n", + "limit = 5\n", + "refresh_interval = 60\n", + "cron = \"0 8 * * *\"\n", + "plugin_name = \"LinkedIn posts analyzer\"\n", + "plugin_model = \"gpt-4\"\n", + "plugin_temperature = 0\n", + "plugin_max_tokens = 8192\n", + "system_prompt_max_tokens = 2084\n", + "output_dir = \"linkedin_outputs/latest_posts/\"\n", + "csv_file_name = \"posts_data.csv\"\n", + "image_file_name = \"wordcloud.png\"\n", + "plugin_file_name = \"posts_analyzer_plugin.json\"" + ] + }, + { + "cell_type": "markdown", + "id": "polished-prior", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "03ba2c33-3392-4765-a44c-f25ae6c13492", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Define output paths\n", + "Create the output directory and define paths for the output files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8293c7b0-db2c-402a-a9a9-3923483bb8fd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Check if directory exists and create it if not\n", + "if not os.path.exists(output_dir):\n", + " os.makedirs(output_dir)\n", + " \n", + "# Generate outputs files path\n", + "csv_file_path = os.path.join(output_dir, csv_file_name)\n", + "image_file_path = os.path.join(output_dir, image_file_name)\n", + "plugin_file_path = os.path.join(output_dir, plugin_file_name)\n", + "print('📂 CSV file path:', csv_file_path)\n", + "print('📂 Image file path:', image_file_path)\n", + "print('📂 Plugin file path:', plugin_file_path)" + ] + }, + { + "cell_type": "markdown", + "id": "36e8dcc0-6963-4aa1-8583-c5c1058c7c49", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get data\n", + "Retrieve the most recent posts from LinkedIn, establishing a limit to prevent transferring an overwhelming amount of data to the LLM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96c0d82f-c939-4fde-a5b0-d5577cf081a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_last_posts(\n", + " li_at,\n", + " JSESSIONID,\n", + " linkedin_url,\n", + " limit,\n", + " file_path,\n", + " refresh_interval\n", + "):\n", + " # Init\n", + " df = pd.DataFrame()\n", + " update_data = True\n", + " \n", + " # Check if output already exists\n", + " if os.path.exists(file_path):\n", + " # Read file\n", + " df = pd.read_csv(file_path)\n", + " \n", + " # Assess if LinkedIn API can be invoked based on the last call.\n", + " # To emulate human interaction, we must avoid making excessive calls to the LinkedIn API. Overdoing this could result in being banned.\n", + " if len(df) > 0:\n", + " if \"DATE_EXTRACT\" in df.columns:\n", + " # Manage calls to API\n", + " last_update_date = df.loc[0, \"DATE_EXTRACT\"]\n", + " time_last_update = datetime.now() - datetime.strptime(last_update_date, \"%Y-%m-%d %H:%M:%S\")\n", + " minute_last_update = time_last_update.total_seconds() / 60\n", + " if minute_last_update < refresh_interval:\n", + " update_data = False\n", + " print(f\"🛑 Nothing to update. Last update done {int(minute_last_update)} minutes ago.\")\n", + " \n", + " if update_data:\n", + " # Get last posts\n", + " df = linkedin.connect(li_at, JSESSIONID).profile.get_posts_feed(linkedin_url, limit=limit)\n", + " # Save last posts in CSV\n", + " df.to_csv(file_path, index=False)\n", + " print(\"💾 Dataframe successfully saved:\", file_path)\n", + " return df\n", + "\n", + "df_posts = get_last_posts(li_at, JSESSIONID, linkedin_url, limit, csv_file_path, refresh_interval)\n", + "print(\"✅ Row fetched:\", len(df_posts))\n", + "df_posts.head(limit)\n", + "\n", + "# Share output with naas\n", + "data_link = naas.asset.add(csv_file_path)" + ] + }, + { + "cell_type": "markdown", + "id": "82c3d4dd-7d04-4730-8e81-805bb6a905ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create image\n", + "Creating a word cloud is useful as it visually represents the frequency or importance of words in a text, providing a quick and insightful overview of the content." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e0e5e72-f36c-4d34-855b-ee8162ad3957", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Creating the text variable\n", + "text = \" \".join(text for text in df_posts.astype(str).TEXT)\n", + "\n", + "# Creating word_cloud with text as argument in .generate() method\n", + "word_cloud = WordCloud(\n", + " collocations=False,\n", + " background_color=\"white\",\n", + " width=1200,\n", + " height=600\n", + ").generate(text)\n", + "\n", + "# Display the generated Word Cloud\n", + "plt.imshow(word_cloud, interpolation='bilinear')\n", + "plt.axis(\"off\")\n", + "plt.show()\n", + "\n", + "# Save your image in PNG\n", + "word_cloud.to_file(image_file_path)\n", + "print(\"💾 Image successfully saved:\", image_file_path)\n", + "\n", + "# Share output with naas\n", + "image_link = naas.asset.add(image_file_path, params={\"inline\": True})" + ] + }, + { + "cell_type": "markdown", + "id": "6a8163ce-269e-4b30-996f-34c7266ee354", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create MyChatGPT plugin" + ] + }, + { + "cell_type": "markdown", + "id": "63e19bc6-5dfa-4902-baae-0fd385f4336d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "#### Prepare data\n", + "Refine the dataframe for use in the plugin to prevent passing excessive data and tokens to the LLM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5300cdbd-614b-4cf7-b3d1-3ce040c79813", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_plugin_data(df):\n", + " # Keep column\n", + " to_keep = [\n", + " \"POST_URL\",\n", + " \"AUTHOR_NAME\",\n", + " \"PUBLISHED_DATE\",\n", + " \"TITLE\",\n", + " \"TEXT\",\n", + " \"VIEWS\",\n", + " \"LIKES\",\n", + " \"COMMENTS\",\n", + " \"SHARES\",\n", + " \"ENGAGEMENT_SCORE\"\n", + " ]\n", + " df = df[to_keep]\n", + " \n", + " # Filter\n", + " df = df[df[\"VIEWS\"].astype(int) > 0]\n", + " \n", + " # Multiply ENGAGEMENT_SCORE by 100 and drop the original column\n", + " df[\"ENGAGEMENT_%\"] = df[\"ENGAGEMENT_SCORE\"] * 100\n", + " df = df.drop(columns=[\"ENGAGEMENT_SCORE\"])\n", + " return df.reset_index(drop=True)\n", + "\n", + "data = create_plugin_data(df_posts)\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "9f094412-995b-4c20-8172-25ac7b7f9f55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "#### Engineer system prompt\n", + "We used Playground to refined it: https://platform.openai.com/playground?mode=chat&model=gpt-4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6b1dc01-6ac4-4429-b1cd-56d9b0fda7bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "system_prompt = f\"\"\"Act as a Social Media Analyst Asssitant. Your job is to help you unravel the story behind the user LinkedIn posts' performance. \n", + "You can dive deep into the data and gather insights that can help boost the user LinkedIn strategy.\n", + "You can help the user understand which posts are getting the most views, likes, comments, and shares. \n", + "You can also analyze the engagement of each post and see how it correlates with different factors. \n", + "When you refer to a post, create href in markdown format so that the user can go to the post you mention by clicking on the markdown href link in a new tab.\n", + "But that's not all! You can also help identify trends over time, find out the best time to post, best post to do next, understand the impact of different post types, and much more. \n", + "The possibilities are endless, be creative!\n", + "Now, let's get started. Here's the data from the user latest LinkedIn posts: \n", + "{data.to_string()}.\n", + "Let's dive in and discover the stories the data is waiting to tell! \n", + "The fist message should be about presenting yourself with maximum 5 bullet points and displaying the worldcloud: {image_link}\n", + "Then, wait for the first answer from the user, and then start with a first high level analysis.\n", + "Here is the link to download the data in csv: {data_link}\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "e6353742-7636-434b-95a2-c018b4dabb07", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "#### Check tokens count" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "afb2d231-8ef0-4572-9ebc-f47e5858fcd0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def num_tokens_from_string(string: str, encoding_name: str) -> int:\n", + " \"\"\"Returns the number of tokens in a text string.\"\"\"\n", + " encoding = tiktoken.get_encoding(encoding_name)\n", + " num_tokens = len(encoding.encode(string))\n", + " return num_tokens\n", + "\n", + "system_prompt_tokens = num_tokens_from_string(system_prompt, \"cl100k_base\")\n", + "if system_prompt_tokens > system_prompt_max_tokens:\n", + " print(\"⚠️ Be carefull, your system prompt looks too big. Tokens:\", system_prompt_tokens)\n", + "else:\n", + " print(\"✅ System prompt tokens count OK:\", system_prompt_tokens)" + ] + }, + { + "cell_type": "markdown", + "id": "8db5b374-cc7c-46be-b744-6e6bb7fab3ce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "#### Generate plugin\n", + "Plugin must be a JSON file with mandatory keys name, model, temperature, max_tokens and prompt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63634c44-bd17-4431-a6b1-282f4c4cc1f1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create json\n", + "plugin = {\n", + " \"name\": plugin_name,\n", + " \"model\": plugin_model,\n", + " \"temperature\": plugin_temperature,\n", + " \"max_tokens\": plugin_max_tokens,\n", + " \"prompt\": system_prompt,\n", + "}\n", + "\n", + "# Save dict to JSON file\n", + "with open(plugin_file_path, \"w\") as f:\n", + " json.dump(plugin, f)\n", + "print(\"💾 Plugin successfully saved:\", plugin_file_path)" + ] + }, + { + "cell_type": "markdown", + "id": "comic-sucking", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "8904d439-418a-4be7-980c-6a6f945c503e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create asset\n", + "You can now use in your MyChatGPT by copy/pasting the URL after the command `/use `" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96830a43-cd0c-4e40-85bd-a4fb11423ba1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(plugin_file_path, params={\"inline\": True})" + ] + }, + { + "cell_type": "markdown", + "id": "67f01b9b-2f42-473a-a8b2-14b4e0f632b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Add scheduler\n", + "Schedule your notebook with the naas scheduler feature" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07981f66-32ef-4916-8eb3-042d7144f464", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)\n", + "\n", + "# to de-schedule this notebook, simply run the following command:\n", + "# naas.scheduler.delete()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "8ba17ce043515c04a2f3081afbd6904e272b708e06388b566b4a286a2fd7d785", + "notebook_path": "LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/LinkedIn/LinkedIn_Create_Post.ipynb b/LinkedIn/LinkedIn_Create_Post.ipynb index 7feedbec1a..80c882f600 100644 --- a/LinkedIn/LinkedIn_Create_Post.ipynb +++ b/LinkedIn/LinkedIn_Create_Post.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Create Post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0201b8c0-b856-4d4c-9e14-57ac059a00b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2023-03-20)" + ] + }, { "cell_type": "markdown", "id": "e8693193-12a9-46c6-a6e1-385e24c02324", diff --git a/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb b/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb index 33fc427c39..9240a57f86 100644 --- a/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb +++ b/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Create posts metrics dashboard\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "155ab33a-8e67-4c55-81fb-e93208badfe1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-09-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb b/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb index 263e6967f3..04d1bc5eed 100644 --- a/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb +++ b/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Extract content world cloud\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5e953860-d5e6-4525-8132-65b78ccf0d0e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_company_followers.ipynb b/LinkedIn/LinkedIn_Follow_company_followers.ipynb index ba56f83bff..7300d83e4d 100644 --- a/LinkedIn/LinkedIn_Follow_company_followers.ipynb +++ b/LinkedIn/LinkedIn_Follow_company_followers.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Follow company followers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c24212d0-14c3-44bd-bf54-0c0822552a8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb b/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb index 52ea6b1e1f..6dfd692449 100644 --- a/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb +++ b/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Follow connections from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6c7c7c8d-1cbf-406f-a934-b13a19d1dfdb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb b/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb index 6c9bec8f69..ebaf20ac21 100644 --- a/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content comments monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2c936117-8b77-472a-a646-61fb1d10de36", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb b/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb index 1bf9d15330..40aa7fd468 100644 --- a/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content comments weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "939feadb-6202-4814-8664-31ce82ff4b02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb b/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb index 555ddba7c6..c4212df7b5 100644 --- a/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content engagements monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "42b2ee4a-b612-452b-91e0-c082e7d80dc4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb b/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb index 9db9b97139..e2ad22d502 100644 --- a/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content engagements weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "060616d2-d609-4997-b43b-6538966db8a9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_frequency.ipynb b/LinkedIn/LinkedIn_Follow_content_frequency.ipynb index e7dcfee159..7375ccd58d 100644 --- a/LinkedIn/LinkedIn_Follow_content_frequency.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_frequency.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content frequency\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "db8131f8-b0c1-4cc7-9d92-3bf93fb6d50e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb b/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb index 795cb59e85..d8555256c9 100644 --- a/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content likes monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "92d4bf59-996f-4d9b-8171-9d15d9cf8685", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb b/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb index 7933f3b750..72fe721ae4 100644 --- a/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content likes weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4af8d086-2003-4fde-8ae1-e6ccb7e94ea8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb b/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb index 2b46621d16..207153375f 100644 --- a/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content published by weekdays by months\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2d6e5117-3136-4997-a9a2-115b7cd96c08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-08-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb b/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb index b4b635691e..934b131a67 100644 --- a/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content published monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ff849c02-cceb-4e7d-a0f2-30f1efb9411f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb b/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb index 8ba7971cee..48f072b14c 100644 --- a/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content published weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "285b7286-f05b-4006-8695-d47ad34ceef2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb b/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb index 1cf48d6cd1..1b2fe9e431 100644 --- a/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content views by weekdays by hours\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3323048a-9ef0-45e4-935c-b33bfdc8ad61", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-08-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb b/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb index 32af1704bf..ce6d34e1e8 100644 --- a/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content views monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "cc8ab567-2260-4da9-b87f-9fa4338a58f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb b/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb index 030c9445c8..f8a946e6b7 100644 --- a/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb +++ b/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Follow content views weekly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1f484cc4-a5d7-461e-8ad5-817e99181296", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb b/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb index 98f73250e1..d02e596661 100644 --- a/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb +++ b/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Follow number of connections monthly\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a5e80cc7-936b-44cb-a4be-a25425052c05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-05-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb b/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb index a168059c07..068d11b9d0 100644 --- a/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb +++ b/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Generate leads from posts\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "ebfcb76e-4e9d-4f50-986c-950a5c67df7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-01-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb b/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb index c9b0eb7d3f..5984f9eeb1 100644 --- a/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb +++ b/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Get age and gender from profile picture\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Nikolaj Groeneweg](https://www.linkedin.com/in/njgroene/)" ] }, + { + "cell_type": "markdown", + "id": "c9a8520c-2e55-4c06-aa56-4873a1e28005", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-13)" + ] + }, { "cell_type": "markdown", "id": "9b34752e-b1dc-40ce-838c-78d017b97d47", diff --git a/LinkedIn/LinkedIn_Get_comments_from_post.ipynb b/LinkedIn/LinkedIn_Get_comments_from_post.ipynb index fcf78d67b4..bd57cfa3c7 100644 --- a/LinkedIn/LinkedIn_Get_comments_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_comments_from_post.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get comments from post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1fb64818-e598-45d0-9ad3-d2d85817de41", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_company_followers.ipynb b/LinkedIn/LinkedIn_Get_company_followers.ipynb index ce0855a93d..73c4739770 100644 --- a/LinkedIn/LinkedIn_Get_company_followers.ipynb +++ b/LinkedIn/LinkedIn_Get_company_followers.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get company followers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "8384c075-0537-41aa-8291-6dc1bcf7284f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "41d093e4-217a-4cc9-8156-97adb91a311a", diff --git a/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb b/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb index b6f7b87b0f..177624ed56 100644 --- a/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb +++ b/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get company posts stats\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f05c23bd-dc9d-49ca-9e11-219118d005e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_connections_from_network.ipynb b/LinkedIn/LinkedIn_Get_connections_from_network.ipynb index f9e9b09f2d..e4396e2543 100644 --- a/LinkedIn/LinkedIn_Get_connections_from_network.ipynb +++ b/LinkedIn/LinkedIn_Get_connections_from_network.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get connections from network\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0a850f98-5d0b-4f13-8872-89257d65e2ec", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-26 (Created: 2022-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -62,7 +73,7 @@ ] }, "source": [ - "**Description:** This notebook helps you to build your professional network on LinkedIn by connecting with people in your network." + "**Description:** This notebook extracts your connections from your LinkedIn profile. It generates a dataframe that includes the following fields: the first and last name of the connection ('FIRSTNAME', 'LASTNAME'), the description present below the name on the profile page ('OCCUPATION'), the date when the connection was made ('CREATED_AT'), the URL of the profile ('PROFILE_URL'), the URL of the profile picture ('PROFILE_PICTURE'), the LinkedIn profile id of the connection ('PROFILE_ID'), and the LinkedIn public profile id of the connection ('PUBLIC_ID').\"" ] }, { @@ -116,10 +127,8 @@ "outputs": [], "source": [ "from naas_drivers import linkedin\n", - "import pandas as pd\n", - "from datetime import datetime\n", "import naas\n", - "import plotly.graph_objects as go" + "import os" ] }, { @@ -130,8 +139,18 @@ "tags": [] }, "source": [ - "### Setup LinkedIn\n", - "👉 How to get your cookies ?" + "### Setup Variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation\n", + "\n", + "**Optional**\n", + "\n", + "- `limit`: This refers to the quantity of connections you wish to retrieve. If you intend to fetch all connections, use -1. Please note that retrieving all connections might be time-consuming.\n", + "- `output_dir`: This variable represents the name of the output directory.\n", + "- `csv_file_name`: This variable stores the name of the CSV file that will contain the latest posts." ] }, { @@ -144,48 +163,56 @@ }, "outputs": [], "source": [ - "LI_AT = \"YOUR_COOKIE_LI_AT\" # EXAMPLE AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", - "JSESSIONID = \"YOUR_COOKIE_JSESSIONID\" # EXAMPLE ajax:8379907400220387585" + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", + "\n", + "# Optional\n", + "limit = 100\n", + "output_dir = \"linkedin_outputs/connections/\"\n", + "csv_file_name = \"connections_data.csv\"" ] }, { "cell_type": "markdown", - "id": "66b77860-a95b-486c-a153-9cab521de365", + "id": "pediatric-emerald", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Variables" + "## Model" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "63ba2bd2-cc65-4ddf-8d01-42460006a159", + "cell_type": "markdown", + "id": "1c2e59fd-c51b-4079-9ffe-d34db5606058", "metadata": { "papermill": {}, "tags": [] }, - "outputs": [], "source": [ - "# Outputs\n", - "title = \"LinkedIn - Connections\"\n", - "name_output = \"LinkedIn_connections\"\n", - "csv_output = f\"{name_output}.csv\"\n", - "html_output = f\"{name_output}.html\"\n", - "image_output = f\"{name_output}.png\"" + "### Define output paths\n", + "Create the output directory and define paths for the output files." ] }, { - "cell_type": "markdown", - "id": "pediatric-emerald", + "cell_type": "code", + "execution_count": null, + "id": "f27a2507-7c83-413d-93b4-05984f6c882d", "metadata": { "papermill": {}, "tags": [] }, + "outputs": [], "source": [ - "## Model" + "# Check if directory exists and create it if not\n", + "if not os.path.exists(output_dir):\n", + " os.makedirs(output_dir)\n", + " \n", + "# Generate outputs files path\n", + "csv_file_path = os.path.join(output_dir, csv_file_name)\n", + "print('📂 CSV file path:', csv_file_path)" ] }, { @@ -204,15 +231,15 @@ }, "source": [ "### Get connections from LinkedIn network\n", - "**Available columns :**\n", - "- FIRSTNAME : First name\n", - "- LASTNAME : Last name\n", - "- OCCUPATION : Text below the name in the profile page\n", - "- CREATED_AT : Date of connection between and your connection\n", - "- PROFILE_URL : Profile URL\n", - "- PROFILE_PICTURE : Profile picture URL\n", - "- PROFILE_ID : LinkedIn profile id\n", - "- PUBLIC_ID : LinkedIn public profile id" + "Available columns:\n", + "- 'FIRSTNAME': This represents the first name of the connection.\n", + "- 'LASTNAME': This is the last name of the connection.\n", + "- 'OCCUPATION': This is the text that appears below the name on the profile page.\n", + "- 'CREATED_AT': This is the date when the connection was established.\n", + "- 'PROFILE_URL': This is the URL of the LinkedIn profile.\n", + "- 'PROFILE_PICTURE': This is the URL of the profile picture.\n", + "- 'PROFILE_ID': This is the unique LinkedIn profile ID.\n", + "- 'PUBLIC_ID': This is the LinkedIn public profile ID.\"" ] }, { @@ -225,8 +252,9 @@ }, "outputs": [], "source": [ - "df_connections = linkedin.connect(LI_AT, JSESSIONID).network.get_connections(limit=-1)\n", - "df_connections" + "df = linkedin.connect(li_at, JSESSIONID).network.get_connections(limit=limit)\n", + "print(\"✅ Row fetched:\", len(df))\n", + "df.head(5)" ] }, { @@ -248,7 +276,7 @@ "tags": [] }, "source": [ - "### Save connections to CSV" + "### Save data to CSV" ] }, { @@ -261,18 +289,19 @@ }, "outputs": [], "source": [ - "df_connections.to_csv(csv_output, index=False)" + "df.to_csv(csv_file_path, index=False)\n", + "print(\"💾 Dataframe successfully saved:\", csv_file_path)" ] }, { "cell_type": "markdown", - "id": "0bbe4f5f-0962-4f32-b2b9-ddd9f2183093", + "id": "b1bbec9d-0b68-41c0-9840-9524f8c7b350", "metadata": { "papermill": {}, "tags": [] }, "source": [ - "### Share outputs with naas" + "### Create asset" ] }, { @@ -285,7 +314,7 @@ }, "outputs": [], "source": [ - "naas.asset.add(csv_output)\n", + "naas.asset.add(csv_file_path)\n", "\n", "# -> to remove your outputs, uncomment the lines and execute the cell\n", "# naas.asset.delete(csv_output)" diff --git a/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb b/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb index c1f0847628..f152b533a5 100644 --- a/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb +++ b/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get contact from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "392bb511-08b9-4656-855a-1848162cd023", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_conversations.ipynb b/LinkedIn/LinkedIn_Get_conversations.ipynb index 32ff07659c..852357c363 100644 --- a/LinkedIn/LinkedIn_Get_conversations.ipynb +++ b/LinkedIn/LinkedIn_Get_conversations.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get conversations\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4a95b6c5-c790-41eb-9465-daa7247d56a9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_followers_from_network.ipynb b/LinkedIn/LinkedIn_Get_followers_from_network.ipynb index d56089173a..23ebd4b387 100644 --- a/LinkedIn/LinkedIn_Get_followers_from_network.ipynb +++ b/LinkedIn/LinkedIn_Get_followers_from_network.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get followers from network\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6cd182cd-6911-49b9-b2a4-34dce2c5ff00", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_guests_from_event.ipynb b/LinkedIn/LinkedIn_Get_guests_from_event.ipynb index 0eb83dff50..f2ba9ff32b 100644 --- a/LinkedIn/LinkedIn_Get_guests_from_event.ipynb +++ b/LinkedIn/LinkedIn_Get_guests_from_event.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get guests from event\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "09c4f945-2d2e-47e8-9bbc-d1c7834ae824", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb b/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb index a6c1a2bff8..ec7720937d 100644 --- a/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb +++ b/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get identity from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "67c8ea59-74e9-469a-808d-a4f014378339", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_info_from_company.ipynb b/LinkedIn/LinkedIn_Get_info_from_company.ipynb index 3d6a65d2be..9b07fab2b0 100644 --- a/LinkedIn/LinkedIn_Get_info_from_company.ipynb +++ b/LinkedIn/LinkedIn_Get_info_from_company.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Get info from company\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "26578d46-c0cc-4996-98d9-5844c6e233f3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-03-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_invitations_received.ipynb b/LinkedIn/LinkedIn_Get_invitations_received.ipynb index f74d619438..7bebdca12d 100644 --- a/LinkedIn/LinkedIn_Get_invitations_received.ipynb +++ b/LinkedIn/LinkedIn_Get_invitations_received.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Get invitations received\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "0c809a48-2bce-4674-8e1b-23312c96712e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_invitations_sent.ipynb b/LinkedIn/LinkedIn_Get_invitations_sent.ipynb index db583e54c8..6274eb5bca 100644 --- a/LinkedIn/LinkedIn_Get_invitations_sent.ipynb +++ b/LinkedIn/LinkedIn_Get_invitations_sent.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Get invitations sent\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "12f45ade-74e6-4728-9467-8c24cd4a91ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_likes_from_post.ipynb b/LinkedIn/LinkedIn_Get_likes_from_post.ipynb index 014a4f36cf..7033dd5420 100644 --- a/LinkedIn/LinkedIn_Get_likes_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_likes_from_post.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get likes from post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "52b28bd4-2167-4d10-bbef-020aa6393b15", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb b/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb index ae30b1b232..f9e861f955 100644 --- a/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb +++ b/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get messages from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "00dd374c-bbc5-43e5-b6cb-238de1764b55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_network_from_profile.ipynb b/LinkedIn/LinkedIn_Get_network_from_profile.ipynb index 9ad905c94d..307694d727 100644 --- a/LinkedIn/LinkedIn_Get_network_from_profile.ipynb +++ b/LinkedIn/LinkedIn_Get_network_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get network from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "67592a0f-09db-4a6c-8c15-a083ac2c6a44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_polls_from_post.ipynb b/LinkedIn/LinkedIn_Get_polls_from_post.ipynb index 044de2f0bd..3162119338 100644 --- a/LinkedIn/LinkedIn_Get_polls_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_polls_from_post.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get polls from post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "149aa462-fdb8-4b6d-8654-3a4c04db91e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-01-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_posts_engagements.ipynb b/LinkedIn/LinkedIn_Get_posts_engagements.ipynb index 6f67f11633..5b0b5764d1 100644 --- a/LinkedIn/LinkedIn_Get_posts_engagements.ipynb +++ b/LinkedIn/LinkedIn_Get_posts_engagements.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Get posts engagements\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "533d604c-4ecd-4fcb-b2e1-c142beb61162", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-08-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_profile_information.ipynb b/LinkedIn/LinkedIn_Get_profile_information.ipynb index 58aac9f550..1dad724468 100644 --- a/LinkedIn/LinkedIn_Get_profile_information.ipynb +++ b/LinkedIn/LinkedIn_Get_profile_information.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get profile information\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f6dbd9c5-f636-42ee-a124-1ce05660dd23", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-10-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb b/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb index ce5b4c71e4..ab29ac4867 100644 --- a/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb +++ b/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get profile posts stats\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4054cc4b-d877-4302-aa19-35c65acc9f9f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb b/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb index b5a857b236..5856fd8326 100644 --- a/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb +++ b/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get resume from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7b33f7ed-fe89-492a-93d1-22f13e4b1b00", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-10-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb b/LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb new file mode 100644 index 0000000000..e1c1ca716f --- /dev/null +++ b/LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb @@ -0,0 +1,507 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "08e60f0b-15df-4b1e-bafb-8fdd9ba86794", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "bf47ced8-b6e7-4462-9e1f-ce408f6038a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# LinkedIn - Get sentiment analysis from post comments\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "83f92798-691c-459c-91ae-bc6007dd24ec", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #linkedin #sentimentanalysis #api #python #nlp #textanalysis" + ] + }, + { + "cell_type": "markdown", + "id": "f460a276-b2c7-44a4-a670-93641a1fcbdc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "1da37b2b-8529-49e6-a8ed-74ab9c5ce97c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-10 (Created: 2023-08-10)" + ] + }, + { + "cell_type": "markdown", + "id": "6f62a79a-0f8f-4890-8fdf-8ded2c562ef6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook provides a sentiment analysis of comments from LinkedIn post. This is useful to understand the sentiment of their posts and the reactions of their followers. The five adjectives that will be used to analyze comment sentiment on LinkedIn are the following:\n", + "- \"Praise\" - This is for highly positive comments that express admiration or approval. These comments often include compliments or positive feedback.\n", + "- \"Supportive\" - This is for positive comments that may not necessarily contain high praise but show agreement, support, or encouragement.\n", + "- \"Neutral\" - This is for comments that are neither positive nor negative, often factual statements or questions without any clear positive or negative connotations.\n", + "- \"Constructive\" - This is for comments that may seem negative but are intended to provide constructive feedback or suggest improvements.\n", + "- \"Disapproving\" - This is for comments that express disagreement, criticism, or negative feedback." + ] + }, + { + "cell_type": "markdown", + "id": "28e6b361-c9e0-48ab-99ca-7ef45b731ab0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by Linkedin or any of its affiliates or subsidiaries. It uses an independent and unofficial API. Use at your own risk.\n", + "\n", + "This project violates Linkedin's User Agreement Section 8.2, and because of this, Linkedin may (and will) temporarily or permanently ban your account. We are not responsible for your account being banned.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "d09ff026-4c5b-4050-acfc-d081790e509b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "ed49a3d0-5ada-423a-82ea-0beffb8c37e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d91e3b95-0e16-4840-8ac5-52fd6b3af807", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from naas_drivers import linkedin\n", + "try:\n", + " import openai\n", + "except:\n", + " !pip install openai --user\n", + " import openai\n", + "import pandas as pd\n", + "from datetime import datetime\n", + "import naas\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "9d0231d3-96cc-47ab-9334-c4d1e310517a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation\n", + "- `post_url`: This variable represents the post URL from LinkedIn\n", + "\n", + "[Get your OpenAI API key here](https://openai.com/docs/api-overview/)\n", + "- `openai_api_key`: OpenAI API key.\n", + "\n", + "**Optional**\n", + "- `prompt`: This is the text prompt that you want to send to the OpenAI API.\n", + "- `model`: ID of the model to use. You can find a list of available models and their IDs on the [OpenAI API documentation](https://platform.openai.com/docs/models/overview).\n", + "- `temperature` (Defaults to 1): This is a value that controls the level of randomness in the generated text. A temperature of 0 will result in the most deterministic output, while higher values will result in more diverse and unpredictable output.\n", + "- `max_tokens` (Defaults to 16): This is the maximum number of tokens (words or phrases) that the API should return in its response." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "229d37b5-b748-4b80-af2d-c31cb11f57ef", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", + "post_url = \"https://www.linkedin.com/xxxx\"\n", + "openai_api_key = naas.secret.get(name=\"OPENAI_API_KEY\") or \"ENTER_YOUR_OPENAI_API_KEY\"\n", + "\n", + "# Optional\n", + "prompt = f\"\"\"\n", + "In this task, you are required to analyze the sentiment of a comment made on a LinkedIn post. \n", + "Your role is to determine whether the sentiment of the comment is \"Praise\", \"Supportive\", \"Neutral\", \"Constructive\", or \"Disapproving\".\n", + "Here is the comment that you need to analyze: \"[COMMENT]\"\n", + "Your response should strictly be one of the following: \"Praise\", \"Supportive\", \"Neutral\", \"Constructive\", or \"Disapproving\".\n", + "\"\"\"\n", + "model = \"text-davinci-003\"\n", + "temperature = 0.2\n", + "max_tokens = 100" + ] + }, + { + "cell_type": "markdown", + "id": "0b0e69cd-b7ca-45e4-97ed-f1ab0dbc53e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ad32453f-f853-4b82-b72d-a2e099d1b9c8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get post comments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "31f68845-6ca7-427f-8920-2749ea990316", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_comments = linkedin.connect(li_at, JSESSIONID).post.get_comments(post_url)\n", + "print(\"Comments fetched:\", len(df_comments))\n", + "df_comments.head(1)" + ] + }, + { + "cell_type": "markdown", + "id": "b707bae9-571a-479c-8f78-cb204e0766da", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Analyze sentiment" + ] + }, + { + "cell_type": "markdown", + "id": "f65cd149-f3b3-4d55-81d9-4e867510caea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function uses the TextBlob library to analyze the sentiment of a comment. It takes a comment as an argument and returns the sentiment score." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dcc81ea9-d36c-4a59-a56c-0d2d956a3065", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_sentiment(\n", + " prompt,\n", + " model,\n", + " temperature,\n", + " max_tokens,\n", + "): \n", + " # Create completion\n", + " response = openai.Completion.create(\n", + " model=model,\n", + " prompt=prompt,\n", + " temperature=temperature,\n", + " max_tokens=max_tokens,\n", + " )\n", + " \n", + " # Extract the generated text\n", + " result = response[\"choices\"][0][\"text\"].replace(\"Answer:\", \"\").strip()\n", + " return result\n", + "\n", + "\n", + "# Connect with OpenAI API key\n", + "openai.api_key = openai_api_key\n", + "\n", + "# Loop on comments\n", + "for index, row in df_comments.iterrows():\n", + " # Init\n", + " comment = row[\"TEXT\"].strip()\n", + " fullname = row[\"FULLNAME\"]\n", + " occupation = row[\"OCCUPATION\"]\n", + " comment_likes = row[\"LIKES\"]\n", + " print(\"Comment:\", comment, f\"({comment_likes} likes)\")\n", + " print(f\"Made by: {fullname} - {occupation}\")\n", + "\n", + " # Get sentiment\n", + " comment_prompt = prompt.replace(\"[COMMENT]\", comment)\n", + " sentiment = get_sentiment(comment_prompt, model, temperature, max_tokens)\n", + " print(\"Sentiment:\", sentiment)\n", + " print()\n", + " df_comments.loc[index, \"SENTIMENT\"] = sentiment" + ] + }, + { + "cell_type": "markdown", + "id": "727a66d9-90c6-48cf-9463-557a1aaf20f4", + "metadata": { + "execution": { + "iopub.execute_input": "2023-08-11T09:27:14.791788Z", + "iopub.status.busy": "2023-08-11T09:27:14.791491Z", + "iopub.status.idle": "2023-08-11T09:27:14.799026Z", + "shell.execute_reply": "2023-08-11T09:27:14.798455Z", + "shell.execute_reply.started": "2023-08-11T09:27:14.791754Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save dataframe in CSV" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ef4dbae-a004-4287-9862-1cfe8e9492ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def save_df(df, file_name=None):\n", + " if not file_name:\n", + " activity_id = df.loc[0, \"POST_URL\"].split(\":activity:\")[-1]\n", + " file_name = f\"{datetime.now().strftime('%Y%m%d%H%M%S')}_comments_post_{activity_id}.csv\"\n", + " df.to_csv(file_name, index=False)\n", + " \n", + "save_df(df_comments)" + ] + }, + { + "cell_type": "markdown", + "id": "5d127eb0-c24d-4478-84c6-2840e4169db0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "094358ec-e39e-4035-b407-01a38833cbe8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Analyze result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c09d2045-867f-4233-b312-f5ac5f0ffea9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def analyze_sentiment(df_init):\n", + " # Init\n", + " df = df_init.copy()\n", + " \n", + " # Groupby\n", + " to_group = [\"SENTIMENT\"]\n", + " to_agg = {\n", + " \"POST_URL\": \"count\",\n", + " \"LIKES\": \"sum\",\n", + " }\n", + " to_rename = {\n", + " \"POST_URL\": \"SENTIMENT_COUNT\",\n", + " \"LIKES\": \"COMMENT_LIKES\",\n", + " }\n", + " df = df.groupby(to_group, as_index=False).agg(to_agg).rename(columns=to_rename)\n", + " \n", + " # Order result\n", + " categories = [\"Praise\", \"Supportive\", \"Neutral\", \"Constructive\", \"Disapproving\"]\n", + " df['SENTIMENT'] = pd.Categorical(df['SENTIMENT'], categories=categories, ordered=True)\n", + " df = df.sort_values('SENTIMENT')\n", + " \n", + " # Calculate score by adding comment likes\n", + " df[\"SCORE\"] = df[\"SENTIMENT_COUNT\"] + df[\"COMMENT_LIKES\"]\n", + " return df.reset_index(drop=True)\n", + "\n", + "df_sentiment = analyze_sentiment(df_comments)\n", + "df_sentiment" + ] + }, + { + "cell_type": "markdown", + "id": "f629bde9-c9a5-4d20-ae9e-23012c1a7f45", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Pie chart by sentiment distribution" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07b8eb71-a33d-4e9c-8b46-0177820f9fa8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_pie_chart(df, labels_column, values_column, title):\n", + " \"\"\"\n", + " Create a pie chart using Plotly.\n", + "\n", + " Parameters:\n", + " df (pandas.DataFrame): The DataFrame containing the data.\n", + " labels_column (str): The name of the column to use as labels.\n", + " values_column (str): The name of the column to use as values.\n", + " title (str): The title of the chart.\n", + " \"\"\"\n", + " # Define color map\n", + " color_map = {\n", + " 'Praise': 'green',\n", + " 'Supportive': 'lime',\n", + " 'Neutral': 'gray',\n", + " 'Constructive': 'orange',\n", + " 'Disapproving': 'red',\n", + " }\n", + " # Define the order of the categories\n", + " category_order = ['Praise', 'Supportive', 'Neutral', 'Constructive', 'Disapproving']\n", + "\n", + " fig = px.pie(\n", + " df,\n", + " names=labels_column,\n", + " values=values_column,\n", + " title=title,\n", + " color=labels_column, \n", + " color_discrete_map=color_map,\n", + " category_orders={labels_column: category_order},\n", + " hole=.3\n", + " )\n", + " fig.update_traces(textinfo='value+percent')\n", + " fig.show()\n", + " \n", + "create_pie_chart(df_sentiment, 'SENTIMENT', 'SENTIMENT_COUNT', 'Sentiment Distribution')\n", + "create_pie_chart(df_sentiment, 'SENTIMENT', 'SCORE', 'True Sentiment Distribution')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff02709e-eeac-4730-9bb9-d04c7d4f3af3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "14515451ee7c352417fc76bfd5acc3163dd04872ac20feb2a0a18fe0bda7db51", + "notebook_path": "LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb b/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb index dad4482975..0754715b54 100644 --- a/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb +++ b/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get sentiment emotion irony offensiveness from comments\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Nikolaj Groeneweg](https://www.linkedin.com/in/njgroene/)" ] }, + { + "cell_type": "markdown", + "id": "334d5f7a-b2ed-44ae-82a1-649868ae3ddc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-20)" + ] + }, { "cell_type": "markdown", "id": "655dccd8-1f26-4353-8742-a8a907fc1ec3", diff --git a/LinkedIn/LinkedIn_Get_stats_from_post.ipynb b/LinkedIn/LinkedIn_Get_stats_from_post.ipynb index 7c0c88370e..5694490524 100644 --- a/LinkedIn/LinkedIn_Get_stats_from_post.ipynb +++ b/LinkedIn/LinkedIn_Get_stats_from_post.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Get stats from post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e22f6df3-9752-439d-b649-9e4bff2d444f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb b/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb index dbceefd096..078c8dddfd 100644 --- a/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb +++ b/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Ignore invitation received\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "786b7452-627d-412b-b650-c8b750a1b613", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb b/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb index e82eb6dd13..79afc7ad61 100644 --- a/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb +++ b/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send comments from post to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c3f0bbdb-cf28-4da7-973e-79724aba880f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb b/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb index 9167ce19c7..c62e12bc98 100644 --- a/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb +++ b/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send company followers to Google Sheets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4b5268a2-c027-4f35-a62f-9bbb56bfdad6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb b/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb index 4cb6388d84..0755a0b785 100644 --- a/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb +++ b/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send connections from network to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "02c00e37-24dd-4518-99f5-ad11a694e159", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb b/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb index 2d686941dc..8fbc612771 100644 --- a/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb +++ b/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send event invitations post engagements\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0e303be7-e768-4b0e-aeb8-391568d64cf0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-07-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb b/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb index d37efa7ad2..256a233509 100644 --- a/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb +++ b/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Send followers demographic data to a Google Sheets spreadsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Asif Syed](https://www.linkedin.com/in/asifsyd/)" ] }, + { + "cell_type": "markdown", + "id": "2d98110d-5857-4e8f-89d3-6a3bff1dbb45", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-07-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb b/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb index db02ac138f..8ab85dcae6 100644 --- a/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb +++ b/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send invitation to company followers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "04e41d9b-1f42-4737-a328-11712502c2f3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-04-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb b/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb index def4ffb707..4e389497c3 100644 --- a/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb +++ b/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send invitation to profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4c82f5da-50a4-4216-a069-c24633434cfc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb b/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb index 9177eb7b7f..077f2f7ea1 100644 --- a/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb +++ b/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send invitation to profile from post likes\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d0865db4-1d0c-4ec3-9f00-54516b37d8ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-05-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb b/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb index d6fbc1931d..321793eb8c 100644 --- a/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb +++ b/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send invitations to post commenters\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Asif Syed](https://www.linkedin.com/in/asifsyd/)" ] }, + { + "cell_type": "markdown", + "id": "70331ed4-f38d-4ae7-808e-c454fca9a736", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-07-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb b/LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb new file mode 100644 index 0000000000..8534e51480 --- /dev/null +++ b/LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb @@ -0,0 +1,419 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ba8798cc-1351-44ff-be1e-4f762a5b0ebf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "de01e1b4-4603-4fe9-a70e-b438b91ef689", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# LinkedIn - Send like to latest profile post\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e493502e-ce65-47a2-b5e6-22b071da07e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #linkedin #socialmedia #like #profile #post #python" + ] + }, + { + "cell_type": "markdown", + "id": "2806c98c-3aa0-4af4-a27f-d75e2d1d05eb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "1d877922-0cdb-49c9-a035-8edadc8bdddf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-03 (Created: 2023-08-03)" + ] + }, + { + "cell_type": "markdown", + "id": "c214a89b-3395-4d18-852f-8c8fb65c42f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will follow a profile on LinkedIn and send like to its last posts." + ] + }, + { + "cell_type": "markdown", + "id": "3902e0dc-9fcf-4a13-81eb-1338edc70008", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by Linkedin or any of its affiliates or subsidiaries. It uses an independent and unofficial API. Use at your own risk.\n", + "\n", + "This project violates Linkedin's User Agreement Section 8.2, and because of this, Linkedin may (and will) temporarily or permanently ban your account. We are not responsible for your account being banned.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "d67831a3-60c6-4cbb-bc06-f03a6c069083", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "350d10b2-83f3-45ee-bf43-773af077f390", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6fada83-c9cc-4478-87d0-cca638901100", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from naas_drivers import linkedin\n", + "import requests\n", + "import naas\n", + "import os\n", + "try:\n", + " import hashlib\n", + "except:\n", + " !pip install hashlib --user\n", + " import hashlib" + ] + }, + { + "cell_type": "markdown", + "id": "f6cfef89-38f3-4601-86a8-5381e2194ee6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation\n", + "- `profiles_url`: This variable represents a list of LinkedIn profiles URL\n", + "- `cron`: This variable represents the CRON syntax used to run the scheduler. More information here: https://crontab.guru/#0_12,18_*_*_1-5\n", + "\n", + "**Optional**\n", + "\n", + "- `reaction_type`: This variable represents the type of reaction to sent to the post. It could be \"LIKE\", \"PRAISE\", \"APPRECIATION\", \"EMPATHY\", \"INTEREST\", \"ENTERTAINMENT\"\n", + "- `dir_path`: This variable represents the directory path to store the post URL" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47d4eeb3-5cd5-4e0e-9a31-bbdedd0e0263", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", + "profiles_url = [\n", + " \"https://www.linkedin.com/in/jeremyravenel/\",\n", + " \"https://www.linkedin.com/in/florent-ravenel/\",\n", + "]\n", + "cron = \"0 12,18 * * 1-5\" #At minute 0 past hour 12 and 18 on every day-of-week from Monday through Friday.\n", + "\n", + "# Optional\n", + "reaction_type = \"LIKE\" # \"PRAISE\", \"APPRECIATION\", \"EMPATHY\", \"INTEREST\", \"ENTERTAINMENT\"\n", + "dir_path = \"posts_liked\"" + ] + }, + { + "cell_type": "markdown", + "id": "54825487-e86e-46c7-b385-faac1f1e3da2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "358541d1-64e1-46de-ac4f-3877e5c7b5ae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to LinkedIn" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e704bdb-a00f-4738-bbe7-41240d0a7efd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "LK = linkedin.connect(li_at, JSESSIONID)\n", + "cookies = LK.cookies\n", + "headers = LK.headers" + ] + }, + { + "cell_type": "markdown", + "id": "a4164feb-ef87-4dac-9a93-58fd6efc8fa6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send like to post" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10cb0b8c-cc95-4b14-9b2a-2daffcb9824a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def send_like(\n", + " cookies,\n", + " headers,\n", + " post_url,\n", + " reaction_like\n", + "):\n", + " # Check post URL\n", + " response = None\n", + " if not post_url.startswith(\"https://www.linkedin.com/\"):\n", + " print(\"🛑 Post URL not valid! Please update it in the input section.\")\n", + " return response\n", + " # Parse url to get activity id\n", + " if \":activity:\" in post_url:\n", + " activity_tag = \":activity:\"\n", + " tag_end = \"?\"\n", + " elif \"-activity-\" in post_url:\n", + " activity_tag = \"-activity-\"\n", + " tag_end = \"-\"\n", + " activity_id = post_url.split(activity_tag)[-1].split(tag_end)[0]\n", + " \n", + " # Send like\n", + " url = f\"https://www.linkedin.com/voyager/api/voyagerSocialDashReactions?threadUrn=urn%3Ali%3Aactivity%3A{activity_id}\"\n", + " payload = {\"reactionType\": reaction_like}\n", + " res = requests.post(url, headers=headers, cookies=cookies, json=payload)\n", + " if res:\n", + " if res.status_code == 201:\n", + " print(\"👍 Like sent to:\", post_url)\n", + " else:\n", + " print(res.json())\n", + " return res" + ] + }, + { + "cell_type": "markdown", + "id": "fc9a3d8f-7b93-4c87-b4b1-fcdbe6482552", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "624ab8d9-e42e-4fd9-be56-eab2834e49c1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send like to latest profile posts published" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1cb70284-fecd-4df6-8dfe-8d0a2be3543f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_sha_256_hash(message):\n", + " # Encode the message to bytes\n", + " message_bytes = message.encode()\n", + "\n", + " # Create the hash object\n", + " sha_256_hash = hashlib.sha256(message_bytes)\n", + "\n", + " # Return the hexadecimal digest of the hash\n", + " return sha_256_hash.hexdigest()\n", + "\n", + "def is_file_exists(dir_path, file_name):\n", + " file_path = os.path.join(dir_path, file_name)\n", + " try:\n", + " with open(file_path):\n", + " return True\n", + " except IOError:\n", + " return False\n", + "\n", + "def save_file(dir_path, file_name):\n", + " # Create dir\n", + " if not os.path.exists(dir_path):\n", + " os.makedirs(dir_path)\n", + " \n", + " # Create file path\n", + " file_path = os.path.join(dir_path, file_name)\n", + " \n", + " # Open the file in write mode. This will create the file if it doesn't exist.\n", + " with open(file_path, 'w') as f:\n", + " pass # Do nothing\n", + "\n", + "# Loop on profile\n", + "for profile in profiles_url:\n", + " # Get last post\n", + " df = LK.profile.get_posts_feed(profile, count=1, limit=1)\n", + " if len(df) > 0:\n", + " # Get post URL\n", + " post_url = df.loc[0, \"POST_URL\"]\n", + " \n", + " # Transform URL to SHA\n", + " sha = create_sha_256_hash(post_url)\n", + " \n", + " # Check if file exists\n", + " if not is_file_exists(dir_path, sha):\n", + " send_like(\n", + " cookies,\n", + " headers,\n", + " post_url,\n", + " reaction_type\n", + " )\n", + " else:\n", + " print(\"👌 You already liked this post: \", post_url)" + ] + }, + { + "cell_type": "markdown", + "id": "5175a9ff-dd99-452a-9f07-dd54a2213ab0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Add scheduler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8300a9e7-7250-48eb-8c2c-e17fd8138502", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.scheduler.add(cron=cron)\n", + "\n", + "# Delete scheduler\n", + "# naas.scheduler.delete()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c85a3805e5e3536844c2b044e45753ced940951c9442c984d6704354a006eabb", + "notebook_path": "LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/LinkedIn/LinkedIn_Send_like_to_post.ipynb b/LinkedIn/LinkedIn_Send_like_to_post.ipynb new file mode 100644 index 0000000000..6fef8f0c9c --- /dev/null +++ b/LinkedIn/LinkedIn_Send_like_to_post.ipynb @@ -0,0 +1,346 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2954e3e8-1b11-4946-858b-478d5878e639", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "f8bc3806-ec06-4c6e-a405-76bf9eebe6d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# LinkedIn - Send like to post\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "945e3c7f-cdcd-4976-974c-29fabebb4805", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #linkedin #socialmedia #like #post #python #api" + ] + }, + { + "cell_type": "markdown", + "id": "c1dd5362-7198-428a-a177-6d2b84e73834", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "5396fb5f-e300-4b3a-8760-7cc3178a5035", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-02 (Created: 2023-08-02)" + ] + }, + { + "cell_type": "markdown", + "id": "d8e8d954-bfb2-4c90-84fd-3c0b0edb0ed5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to send a like to a post published on LinkedIn." + ] + }, + { + "cell_type": "markdown", + "id": "811898cf-c185-468f-8e29-fc3e9d65e626", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\n", + "
\n", + "Disclaimer:
\n", + "This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by Linkedin or any of its affiliates or subsidiaries. It uses an independent and unofficial API. Use at your own risk.\n", + "\n", + "This project violates Linkedin's User Agreement Section 8.2, and because of this, Linkedin may (and will) temporarily or permanently ban your account. We are not responsible for your account being banned.\n", + "
\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "40a7d355-df4e-4e28-ac9f-102bb85c3512", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "be7128ea-5322-438b-abaa-bc131017f379", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c3dc68e-ef62-48b2-be36-3f973eddfa45", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from naas_drivers import linkedin\n", + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "a5df344a-3e1e-4c85-a342-3a8ab164f6ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "**Mandatory**\n", + "\n", + "[Learn how to get your cookies on LinkedIn](https://www.notion.so/LinkedIn-driver-Get-your-cookies-d20a8e7e508e42af8a5b52e33f3dba75)\n", + "- `li_at`: Cookie used to authenticate Members and API clients\n", + "- `JSESSIONID`: Cookie used for Cross Site Request Forgery (CSRF) protection and URL signature validation\n", + "\n", + "**Optional**\n", + "\n", + "- `post_url`: This variable represents the post URL\n", + "- `reaction_type`: This variable represents the type of reaction to sent to the post. It could be \"LIKE\", \"PRAISE\", \"APPRECIATION\", \"EMPATHY\", \"INTEREST\", \"ENTERTAINMENT\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee606036-6453-461f-9ba4-300000de1d08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Mandatory\n", + "li_at = naas.secret.get(\"LINKEDIN_LI_AT\") or \"YOUR_LINKEDIN_LI_AT\" #example: AQFAzQN_PLPR4wAAAXc-FCKmgiMit5FLdY1af3-2\n", + "JSESSIONID = naas.secret.get(\"LINKEDIN_JSESSIONID\") or \"YOUR_LINKEDIN_JSESSIONID\" #example: ajax:8379907400220387585\n", + "post_url = \"\"\n", + "\n", + "# Optional\n", + "reaction_type = \"LIKE\" # \"PRAISE\", \"APPRECIATION\", \"EMPATHY\", \"INTEREST\", \"ENTERTAINMENT\"" + ] + }, + { + "cell_type": "markdown", + "id": "9109bdf6-dddf-4eb6-aad2-5f27375546bc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "245c3589-746b-4db6-8271-2bcd57d1f0d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to LinkedIn" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1755794e-2230-4279-910e-b89f54ec3027", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "LK = linkedin.connect(li_at, JSESSIONID)\n", + "cookies = LK.cookies\n", + "headers = LK.headers" + ] + }, + { + "cell_type": "markdown", + "id": "b3a34294-4613-4d59-af98-7f34e47f1f97", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send like to post" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6cadd18a-5dce-4d6f-8915-edfa0d72697d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def send_like(\n", + " cookies,\n", + " headers,\n", + " post_url,\n", + " reaction_like\n", + "):\n", + " # Check post URL\n", + " response = None\n", + " if not post_url.startswith(\"https://www.linkedin.com/\"):\n", + " print(\"🛑 Post URL not valid! Please update it in the input section.\")\n", + " return response\n", + " # Parse url to get activity id\n", + " if \":activity:\" in post_url:\n", + " activity_tag = \":activity:\"\n", + " tag_end = \"?\"\n", + " elif \"-activity-\" in post_url:\n", + " activity_tag = \"-activity-\"\n", + " tag_end = \"-\"\n", + " activity_id = post_url.split(activity_tag)[-1].split(tag_end)[0]\n", + " \n", + " # Send like\n", + " url = f\"https://www.linkedin.com/voyager/api/voyagerSocialDashReactions?threadUrn=urn%3Ali%3Aactivity%3A{activity_id}\"\n", + " payload = {\"reactionType\": reaction_like}\n", + " response = requests.post(url, headers=headers, cookies=cookies, json=payload)\n", + " return response\n", + "\n", + "res = send_like(\n", + " cookies,\n", + " headers,\n", + " post_url,\n", + " reaction_type\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4a1385da-9332-44d8-ae79-908f36aeb3a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "00782b2b-9ffd-4c84-9ec5-73626668a0cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "96eeb451-7be1-48cd-a664-f8399eddaae6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if res:\n", + " if res.status_code == 201:\n", + " print(\"👍 Like sent to:\", post_url)\n", + " else:\n", + " print(res.json())" + ] + }, + { + "cell_type": "markdown", + "id": "2f8fbfa5-b9fc-4cdc-8474-7b05dfa1d751", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e3eabf565c9cdb8e722c927522ecfe036376ee19a9d9b119f55a9c5440373e7e", + "notebook_path": "LinkedIn/LinkedIn_Send_like_to_post.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb b/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb index 4129f02f14..3c288f0e82 100644 --- a/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb +++ b/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send likes from post to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ab7d2114-40da-4ee6-9862-6575aa7b77da", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb b/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb index e651366a51..068ef61ad2 100644 --- a/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb +++ b/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send message to new connections\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Asif Syed](https://www.linkedin.com/in/www.linkedin.com/in/asifsyd/)" ] }, + { + "cell_type": "markdown", + "id": "21e02051-d498-4fbe-a97c-399229c40796", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-07-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_message_to_profile.ipynb b/LinkedIn/LinkedIn_Send_message_to_profile.ipynb index 421131ae4b..f1694f38a4 100644 --- a/LinkedIn/LinkedIn_Send_message_to_profile.ipynb +++ b/LinkedIn/LinkedIn_Send_message_to_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send message to profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0017fc4d-510a-4fba-b65c-c18c5f8db49e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2021-06-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb b/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb index b980ba43ee..448bac32c1 100644 --- a/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb +++ b/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send message to profile from post likes\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c3d18250-04b1-4e65-ab56-14323b295f2c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-05-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb b/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb index b3ce486f3c..4ebd5eca17 100644 --- a/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb +++ b/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send posts feed to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bfa3fe54-f7b1-46c4-b991-2706e44d0825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb b/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb index ca018d4bf4..9dbc1adc4f 100644 --- a/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb +++ b/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Send profile followers by email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c372ff99-16da-4d27-b12f-6e97e162847a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb b/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb index 44f1f7e7f4..c5368ce5fe 100644 --- a/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb +++ b/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Send weekly post engagement metrics by email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Nikolaj Groeneweg](https://www.linkedin.com/in/njgroene/)" ] }, + { + "cell_type": "markdown", + "id": "2e40c061-17bf-477d-bef0-d6268fcaf600", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-05-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb b/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb index 9090a73acd..e42794f535 100644 --- a/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb +++ b/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Update metrics from company posts in Notion content calendar\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bd0e5536-7178-49c1-b1c7-e1313d920e01", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-06-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb b/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb index d451604cf0..b8d83d2284 100644 --- a/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb +++ b/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# LinkedIn - Update metrics from posts in Notion content calendar\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "02e9842f-27d3-4322-a3d4-643480c22f84", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-03-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb b/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb index 3803a9d365..f7d2c52c83 100644 --- a/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb +++ b/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# LinkedIn - Withdraw pending profile invitations\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0751aade-3e0f-485b-8f0d-18e6bc069953", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-29 (Created: 2022-09-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Matplotlib/Matplotlib_Create_Barchart.ipynb b/Matplotlib/Matplotlib_Create_Barchart.ipynb new file mode 100644 index 0000000000..db283c3cdb --- /dev/null +++ b/Matplotlib/Matplotlib_Create_Barchart.ipynb @@ -0,0 +1,314 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Create Barchart\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #barchart #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman]()" + ] + }, + { + "cell_type": "markdown", + "id": "d4c5038f-0245-4012-96de-7307ac777865", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-17 (Created: 2023-07-17)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create a barchart chart using Matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "04240c05-6c61-4a01-8f56-08cf93322a64", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:**\n", + "- [Bar color demo](https://matplotlib.org/stable/gallery/lines_bars_and_markers/bar_colors.html#sphx-glr-gallery-lines-bars-and-markers-bar-colors-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "f37fb3ce-46f4-475f-948b-3baf5ce8325e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `legend_title`: The title or label for the legend in a graph representing fruit colors.\n", + "- `title`: The title of the graph depicting the fruit supply categorized by fruit kind and color.\n", + "- `labels`: A list of fruit types or names, such as 'apple', 'blueberry', 'cherry', and 'orange'.\n", + "- `values`: A list of corresponding values representing the supply or quantity of each fruit type.\n", + "- `bar_labels`: A list of labels for the different colors associated with each fruit type.\n", + "- `bar_colors`: A list of colors assigned to each fruit type, represented in the format 'tab:color' (e.g., 'tab:red').\n", + "- `ylabel`: The label for the y-axis of the graph, indicating the fruit supply.\n", + "- `fig_path`: The file path or name for the output image file of the graph, saved as \"fig.png\"." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "3802ad04-276f-4581-8f8b-895d6c90a4a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "legend_title = 'Fruit color'\n", + "title = 'Fruit supply by kind and color'\n", + "labels = ['apple', 'blueberry', 'cherry', 'orange']\n", + "values = [40, 120, 30, 55]\n", + "bar_colors = ['tab:green', 'tab:blue', 'tab:red', 'tab:orange']\n", + "ylabel = 'fruit supply'\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create the Barchart" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "cc597696-4834-4f84-8f51-879d66f1424b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.bar(labels, values, label=bar_labels, color=bar_colors)\n", + "\n", + "ax.set_ylabel(ylabel)\n", + "ax.set_title(title)\n", + "ax.legend(title=legend_title)\n", + "\n", + "legend_elements = [plt.Rectangle((0, 0), 1, 1, color=color, label=label) for color, label in zip(bar_colors, labels)]\n", + "ax.legend(handles=legend_elements, title=legend_title)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save figure" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "62676a21-f1ef-4de7-986f-89c4f1c48524", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "767e52ef-ab89-4389-b19d-8e490f332cb0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "0e693f16-eb5c-452f-b8b7-84cc5758de60", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2db7fe05-3fdd-4eb0-8357-08a6378f0e98", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c4aa64628872dabf26a9f58ad9be5a790a83a704cfcd3b791774f949ce8df046", + "notebook_path": "Matplotlib/Matplotlib_Create_Barchart.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb b/Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb new file mode 100644 index 0000000000..407275c3f5 --- /dev/null +++ b/Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Create Horizontal Barchart\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #horizontal barchart #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "5522a313-a2e7-4f88-a203-c19144897b68", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-17 (Created: 2023-07-17)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create a horizontal Bar chart using Matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "8a6ae47d-e4e4-4166-9c71-268f4cf30956", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "- [Horizontal Barchart](https://matplotlib.org/stable/gallery/lines_bars_and_markers/barh.html#sphx-glr-gallery-lines-bars-and-markers-barh-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "15201f14-ba6d-4cff-aa9a-45c8124452c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Set Up Variables\n", + "- `labels`: This variable is a tuple containing the names of people. It represents the categories or labels for the horizontal bar chart.\n", + "- `set_title`: The title of the graph.\n", + "- `values`: This variable is a NumPy array containing the performance values for each person. It represents the numerical data that will be plotted on the horizontal bar chart.\n", + "- `set_xlabel`: This label will be displayed below the x-axis of the plot, providing a description of the data represented along the x-axis, which in this case is the performance values.\n", + "- `fig_path`:The file path or name for the output image file of the graph, saved as \"fig.png\"." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "24834850-adc5-45da-bb1c-57dadea58211", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "labels = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')\n", + "values = np.array([10, 25, 30, 15, 20])\n", + "set_title = \"How fast do you want to go today?\"\n", + "set_xlabel = \"Performance\"\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create the stacked Bar chart" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Fixing random state for reproducibility\n", + "np.random.seed(19680801)\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "y_pos = np.arange(len(labels))\n", + "\n", + "ax.barh(y_pos, values, align='center')\n", + "ax.set_yticks(y_pos)\n", + "ax.set_yticklabels(labels) # Set the y-axis labels here\n", + "ax.invert_yaxis() # labels read top-to-bottom\n", + "ax.set_xlabel(set_xlabel)\n", + "ax.set_title(set_title)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "07ed5352-adeb-427b-b424-e15bdc859515", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save figure" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5995831b-5c6e-4cc7-bd4d-50f53d3267f1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "5dd8cb7e-8c57-4d87-99bc-e2ff9b7ae957", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "be3335fb-7ed7-4b8f-987b-a9e73b6d24de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "087c2b13300d04d4048791c573da3382591f69fdbeeb3db9d872a17a9c293063", + "notebook_path": "Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb b/Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb new file mode 100644 index 0000000000..f8e2f1b5eb --- /dev/null +++ b/Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Create Stacked Barchart\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #stacked barchart #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "36520383-fc0a-4761-8446-7de0dc00f9f1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-17)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create a stacked Bar chart using Matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "8a6ae47d-e4e4-4166-9c71-268f4cf30956", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:**\n", + "- [Stacked Barchart](https://matplotlib.org/stable/gallery/lines_bars_and_markers/bar_stacked.html#sphx-glr-gallery-lines-bars-and-markers-bar-stacked-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "15201f14-ba6d-4cff-aa9a-45c8124452c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Set Up Variables\n", + "- `set_title`: The title of the graph.\n", + "- `labels`: A tuple that stores the names of the penguin species as provided by the user.\n", + "- `values`: A dictionary that stores the weight counts for each species category (\"Below\" and \"Above\") provided by the user. The categories are the keys, and the values are numpy arrays containing the count data.\n", + "- `width`: A float value representing the width of the bars in the bar plot.\n", + "- `fig_path`:The file path or name for the output image file of the graph, saved as \"fig.png\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24834850-adc5-45da-bb1c-57dadea58211", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "set_title = 'Number of penguins with above average body mass'\n", + "labels = (\n", + " \"Adelie\\n $\\\\mu=$3700.66g\",\n", + " \"Chinstrap\\n $\\\\mu=$3733.09g\",\n", + " \"Gentoo\\n $\\\\mu=5076.02g$\",\n", + ")\n", + "values = {\n", + " \"Below\": np.array([70, 31, 58]),\n", + " \"Above\": np.array([82, 37, 66]),\n", + "}\n", + "width = 0.5\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create the stacked Bar chart" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots() \n", + "\n", + "bottom = np.zeros(3)\n", + "\n", + "for boolean, weight_count in values.items():\n", + " p = ax.bar(labels, weight_count, width, label=boolean, bottom=bottom)\n", + " bottom += weight_count\n", + "\n", + "ax.set_title(set_title)\n", + "ax.legend(loc=\"upper right\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "dd8677ff-16ca-497b-96a5-3b7a68735b7b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save figure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "af8fbb16-33d5-4b3b-bece-1ccf7c0dda4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "400cbbfe-286a-48c1-b86f-78374334eb67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fec88e6c-7dbb-4e0a-9f98-91d303c94f65", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b44c24fa0f9c6a8934b98015860672c84babcf90aabd201045cef089cac9e10b", + "notebook_path": "Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Create_Stackplot.ipynb b/Matplotlib/Matplotlib_Create_Stackplot.ipynb new file mode 100644 index 0000000000..2a97b9a735 --- /dev/null +++ b/Matplotlib/Matplotlib_Create_Stackplot.ipynb @@ -0,0 +1,309 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Create Stackplots\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #stackplots #streamgraphs #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "f1622e1b-2f57-4f8b-bc2b-80f3f8e113d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create stackplots using matplotlib. Stackplots draw multiple datasets as vertically stacked areas. This is useful when the individual data values and additionally their cumulative value are of interest." + ] + }, + { + "cell_type": "markdown", + "id": "ae9e445a-03e2-499c-9952-ba72cd12da29", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "- [Matplotlib - Stackplots](https://matplotlib.org/stable/gallery/lines_bars_and_markers/stackplot_demo.html#sphx-glr-gallery-lines-bars-and-markers-stackplot-demo-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "70974852-b8f5-4900-a82f-db5475f9797c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `values`: This variable is a list that contains the years for which population data is available. It holds the values [1950, 1960, 1970, 1980, 1990, 2000, 2010, 2018], representing the years from 1950 to 2018.\n", + "- `xlabel`: This variable is a string that represents the label for the x-axis of the plot. It is set to 'Year', indicating that the x-axis will show the years.\n", + "- `title`: This variable is a string that represents the title of the plot. It is set to 'World Population', which will be displayed at the top of the plot.\n", + "- `ylabel`: This variable is a string that represents the label for the y-axis of the plot. It is set to 'Number of people (millions)', indicating that the y-axis will show the number of people in millions.\n", + "- `labels`: This variable is a dictionary that stores the population data for different continents. The keys of the dictionary are strings representing continent names ('africa', 'americas', 'asia', 'europe', 'oceania'), and the values are lists containing the population data for each continent over the years specified in the values variable.\n", + "- `fig_path`: A string representing the path where the generated figure will be saved with the name \"fig.png\"." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "bf25ef1d-73a8-4c61-a27d-23d73308ce5e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "# data from United Nations World Population Prospects (Revision 2019)\n", + "# https://population.un.org/wpp/, license: CC BY 3.0 IGO\n", + "values = 1950, 1960, 1970, 1980,1990, 2000, 2010, 2018\n", + "xlabel = 'Year'\n", + "title = 'World Population'\n", + "ylabel = 'Number of people (millions) '\n", + "labels = {\n", + " 'africa': [228, 284, 365, 477, 631, 814, 1044, 1275],\n", + " 'americas': [340, 425, 519, 619, 727, 840, 943, 1006],\n", + " 'asia': [1394, 1686, 2120, 2625, 3202, 3714, 4169, 4560],\n", + " 'europe': [220, 253, 276, 295, 310, 303, 294, 293],\n", + " 'oceania': [12, 15, 19, 22, 26, 31, 36, 39],\n", + "}\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plot the Stackplot" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.stackplot(\n", + " values,\n", + " labels.values(),\n", + " labels=labels.keys(),\n", + " alpha=0.8\n", + ")\n", + "ax.legend(loc='upper left') # Remove 'reverse=True'\n", + "ax.set_title(title)\n", + "ax.set_xlabel(xlabel)\n", + "ax.set_ylabel(ylabel)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9cfaf7a0-4ef8-46b5-a1fb-1feeff1f46f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save figure" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "ae5800d9-869d-4284-89c1-c168af592869", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "23b2a0d4-a5df-44fe-bb2c-38f2d37330e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "36c9483b-0410-4355-bc85-2b7d52d52a02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "6c294eadef488f2bffbf61bdc27d1118210c59ff5131678cf5ea3b9ffb8c8db4", + "notebook_path": "Matplotlib/Matplotlib_Create_Stackplot.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Create_Step_Demo.ipynb b/Matplotlib/Matplotlib_Create_Step_Demo.ipynb new file mode 100644 index 0000000000..fb66740caa --- /dev/null +++ b/Matplotlib/Matplotlib_Create_Step_Demo.ipynb @@ -0,0 +1,353 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Create Step Demo\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #step demo #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "0f579764-0048-4d26-aa94-1491ea59daa2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to plot the coherence of two signals using Matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "2473e501-0556-472e-93e9-358fb8232532", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "- [Step Demo](https://matplotlib.org/stable/gallery/lines_bars_and_markers/step_demo.html#sphx-glr-gallery-lines-bars-and-markers-step-demo-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "eb94bc1f-3f55-4b4c-b0d5-bf172df94f1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `x`: It is a NumPy array created using `np.arange(14)`. It represents an array of numbers from 0 to 13 (inclusive) since `arange(14)` generates numbers from 0 up to, but not including, 14.\n", + "- `y`: It is a NumPy array obtained by taking the sine of each element of `x` divided by 2. It represents the sine values for each element in `x`.\n", + "- `color`: It is a string variable set to `'grey'`, representing the color that will be used in the plot.\n", + "- `legend_title`: It is a string variable set to `'Parameter where:'`, which will be used as the title for the first legend in the first plot.\n", + "- `title`: It is a string variable set to `'plt.step(where=...)'`, which will be used as the title for the first plot.\n", + "- `grid_line_color`: It is a string variable set to `'0.95'`, representing the color of the gridlines that will be added to the first plot.\n", + "- `legend_title2`: It is a string variable set to `'Parameter drawstyle:'`, which will be used as the title for the second legend in the second plot.\n", + "- `title2`: It is a string variable set to `'plt.plot(drawstyle=...)`, which will be used as the title for the second plot.\n", + "- `barlabel1`, `barlabel2`, `barlabel3`, `barlabel4`, `barlabel5`, `barlabel6`: These are string variables representing different labels for the legends in the plots. They are used to label different step and line plots in the two sets of plot configurations.\n", + "- `fig_path`: It is a string variable set to `'fig.png'`, representing the file path where the plot will be saved when `plt.savefig(fig_path)` is called." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d38ee7ff-1739-4a23-953c-d920338d98c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "x = np.arange(14)\n", + "y = np.sin(x / 2)\n", + "color = 'grey'\n", + "legend_title = 'Parameter where:'\n", + "title = 'plt.step(where=...)'\n", + "grid_line_color = '0.95'\n", + "legend_title2 = 'Parameter drawstyle:'\n", + "title2 = 'plt.plot(drawstyle=...)'\n", + "barlabel1 = 'pre (default)'\n", + "barlabel2 = 'mid'\n", + "barlabel3 = 'post'\n", + "barlabel4 = 'steps (=steps-pre)'\n", + "barlabel5 = 'steps-mid'\n", + "barlabel6 = 'steps-post'\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Step Demo" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax1 = plt.subplots()\n", + "\n", + "plt.step(x, y + 2, label=barlabel1)\n", + "plt.plot(x, y + 2, 'o--', color=(color), alpha=0.3)\n", + "\n", + "plt.step(x, y + 1, where='mid', label=barlabel2)\n", + "plt.plot(x, y + 1, 'o--', color=(color), alpha=0.3)\n", + "\n", + "plt.step(x, y, where='post', label=barlabel3)\n", + "plt.plot(x, y, 'o--', color=(color), alpha=0.3)\n", + "\n", + "plt.grid(axis='x', color=grid_line_color)\n", + "plt.legend(title=legend_title)\n", + "plt.title(title)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "9c06578b-b0ca-4763-a7eb-caf0b6dd8c61", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Using Drawstyle Parameter" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d6a174e1-ed5d-40dd-8e7b-8485b4053636", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax2 = plt.subplots()\n", + "plt.plot(x, y + 2, drawstyle='steps', label=barlabel4)\n", + "plt.plot(x, y + 2, 'o--', color=(color), alpha=0.3)\n", + "\n", + "plt.plot(x, y + 1, drawstyle='steps-mid', label=barlabel5)\n", + "plt.plot(x, y + 1, 'o--', color=(color), alpha=0.3)\n", + "\n", + "plt.plot(x, y, drawstyle='steps-post', label=barlabel6)\n", + "plt.plot(x, y, 'o--', color=(color), alpha=0.3)\n", + "\n", + "plt.grid(axis='x', color=grid_line_color)\n", + "plt.legend(title=legend_title2)\n", + "plt.title(title2)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save the figure" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "wired-minutes", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "cf8011d7-a4f5-40f5-9e67-282f4073239c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f02eb423-cb77-44a1-8613-d556b317a516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1f3fc35bee4b3150b9147bddd14a9ddcc1b03b43e06219f599ffbf03c0670508", + "notebook_path": "Matplotlib/Matplotlib_Create_Step_Demo.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Create_Streamgraphs.ipynb b/Matplotlib/Matplotlib_Create_Streamgraphs.ipynb new file mode 100644 index 0000000000..246c718a3c --- /dev/null +++ b/Matplotlib/Matplotlib_Create_Streamgraphs.ipynb @@ -0,0 +1,304 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Create Streamgraphs\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #stackplots #streamgraphs #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "e9791d27-0263-4458-b752-1e011cab0459", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create using matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "ae9e445a-03e2-499c-9952-ba72cd12da29", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "\n", + "- [Matplolib - Streamgraphs](https://matplotlib.org/stable/gallery/lines_bars_and_markers/stackplot_demo.html#sphx-glr-gallery-lines-bars-and-markers-stackplot-demo-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "70974852-b8f5-4900-a82f-db5475f9797c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `x`: This variable is a NumPy array representing the x-axis data. It is created using np.linspace(0, 100, 101), which generates 101 equally spaced points from 0 to 100.\n", + "- `ys`: This variable is a list containing the y-axis data for the stackplot. It is a list of three arrays, where each array represents the output of the gaussian_mixture(x) function, and each function call generates a random mixture of Gaussians evaluated at positions x.\n", + "- `fig_path`: A string representing the path where the generated figure will be saved with the name \"fig.png\"." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bf25ef1d-73a8-4c61-a27d-23d73308ce5e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "# Fixing random state for reproducibility\n", + "np.random.seed(19680801)\n", + "\n", + "def gaussian_mixture(x, n=5):\n", + " \"\"\"Return a random mixture of *n* Gaussians, evaluated at positions *x*.\"\"\"\n", + " def add_random_gaussian(a):\n", + " amplitude = 1 / (.1 + np.random.random())\n", + " dx = x[-1] - x[0]\n", + " x0 = (2 * np.random.random() - .5) * dx\n", + " z = 10 / (.1 + np.random.random()) / dx\n", + " a += amplitude * np.exp(-(z * (x - x0))**2)\n", + " a = np.zeros_like(x)\n", + " for j in range(n):\n", + " add_random_gaussian(a)\n", + " return a\n", + "\n", + "x = np.linspace(0, 100, 101)\n", + "ys = [gaussian_mixture(x) for _ in range(5)]\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4eea8430-a3d2-4ee7-b1e2-53c057c4487a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plot the Streamgraph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49baaa99-017d-4108-a61b-7b483d0b7548", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.stackplot(x, ys, baseline='wiggle')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "1299705e-b894-4321-9858-68cd81f208b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save figure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b52b0bd5-b55a-4852-aaf1-ca241d8265e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "e0f535b2-e65f-476d-b171-5402149e57b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3aaa386-3521-49b2-bc1d-59e623be65a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "9776fa7b943cf273829c127952e6b3fa77670a7f6964394f776398982b55a76e", + "notebook_path": "Matplotlib/Matplotlib_Create_Streamgraphs.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb b/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb index 0be33ff48f..83319ab196 100644 --- a/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb +++ b/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Matplotlib - Create Waterfall chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "dfab082e-f58f-4d1e-95f6-1a4b65c1c38a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Matplotlib/Matplotlib_Create_timeline _with_lines_dates_and_text.ipynb b/Matplotlib/Matplotlib_Create_timeline _with_lines_dates_and_text.ipynb new file mode 100644 index 0000000000..aaa16f3766 --- /dev/null +++ b/Matplotlib/Matplotlib_Create_timeline _with_lines_dates_and_text.ipynb @@ -0,0 +1,373 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Creating a timeline with lines, dates, and text\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #timeline #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "04e448ca-2280-424f-8e3e-c5c8398b628f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create a simple timeline using Matplotlib release dates." + ] + }, + { + "cell_type": "markdown", + "id": "2473e501-0556-472e-93e9-358fb8232532", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "- [Creating a timeline with lines, dates, and text](https://matplotlib.org/stable/gallery/lines_bars_and_markers/timeline.html#creating-a-timeline-with-lines-dates-and-text)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import matplotlib.dates as mdates\n", + "from datetime import datetime\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "eb94bc1f-3f55-4b4c-b0d5-bf172df94f1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `title`: is the title for the plot.\n", + "- `tab_color`: is the color for the vertical stems in the stem plot\n", + "- `fig_path`: is the path to save the figure as an output (e.g., \"fig.png\")." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d38ee7ff-1739-4a23-953c-d920338d98c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "title = \"Matplotlib release dates\"\n", + "tab_color = 'grey'\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "395ca64d-a2d2-4288-ac8d-ac4451987ce3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Pull Data from Github" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ac8f050-48fc-4a3b-9fb3-b78f286d6c2b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " # Try to fetch a list of Matplotlib releases and their dates\n", + " # from https://api.github.com/repos/matplotlib/matplotlib/releases\n", + " import urllib.request\n", + " import json\n", + "\n", + " url = 'https://api.github.com/repos/matplotlib/matplotlib/releases'\n", + " url += '?per_page=100'\n", + " data = json.loads(urllib.request.urlopen(url, timeout=1).read().decode())\n", + "\n", + " dates = []\n", + " names = []\n", + " for item in data:\n", + " if 'rc' not in item['tag_name'] and 'b' not in item['tag_name']:\n", + " dates.append(item['published_at'].split(\"T\")[0])\n", + " names.append(item['tag_name'])\n", + " # Convert date strings (e.g. 2014-10-18) to datetime\n", + " dates = [datetime.strptime(d, \"%Y-%m-%d\") for d in dates]\n", + "\n", + "except Exception:\n", + " # In case the above fails, e.g. because of missing internet connection\n", + " # use the following lists as fallback.\n", + " names = ['v2.2.4', 'v3.0.3', 'v3.0.2', 'v3.0.1', 'v3.0.0', 'v2.2.3',\n", + " 'v2.2.2', 'v2.2.1', 'v2.2.0', 'v2.1.2', 'v2.1.1', 'v2.1.0',\n", + " 'v2.0.2', 'v2.0.1', 'v2.0.0', 'v1.5.3', 'v1.5.2', 'v1.5.1',\n", + " 'v1.5.0', 'v1.4.3', 'v1.4.2', 'v1.4.1', 'v1.4.0']\n", + "\n", + " dates = ['2019-02-26', '2019-02-26', '2018-11-10', '2018-11-10',\n", + " '2018-09-18', '2018-08-10', '2018-03-17', '2018-03-16',\n", + " '2018-03-06', '2018-01-18', '2017-12-10', '2017-10-07',\n", + " '2017-05-10', '2017-05-02', '2017-01-17', '2016-09-09',\n", + " '2016-07-03', '2016-01-10', '2015-10-29', '2015-02-16',\n", + " '2014-10-26', '2014-10-18', '2014-08-26']\n", + "\n", + " # Convert date strings (e.g. 2014-10-18) to datetime\n", + " dates = [datetime.strptime(d, \"%Y-%m-%d\") for d in dates]" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plot the timeline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Choose some nice levels\n", + "levels = np.tile([-5, 5, -3, 3, -1, 1],\n", + " int(np.ceil(len(dates)/6)))[:len(dates)]\n", + "\n", + "# Create figure and plot a stem plot with the date\n", + "fig, ax = plt.subplots(figsize=(8.8, 4), constrained_layout=True)\n", + "ax.set(title=title)\n", + "\n", + "ax.vlines(dates, 0, levels, color=tab_color) # The vertical stems.\n", + "ax.plot(dates, np.zeros_like(dates), \"-o\",\n", + " color=\"k\", markerfacecolor=\"w\") # Baseline and markers on it.\n", + "\n", + "# annotate lines\n", + "for d, l, r in zip(dates, levels, names):\n", + " ax.annotate(r, xy=(d, l),\n", + " xytext=(-3, np.sign(l)*3), textcoords=\"offset points\",\n", + " horizontalalignment=\"right\",\n", + " verticalalignment=\"bottom\" if l > 0 else \"top\")\n", + "\n", + "# format x-axis with 4-month intervals\n", + "ax.xaxis.set_major_locator(mdates.MonthLocator(interval=4))\n", + "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%b %Y\"))\n", + "plt.setp(ax.get_xticklabels(), rotation=30, ha=\"right\")\n", + "\n", + "# remove y-axis and spines\n", + "ax.yaxis.set_visible(False)\n", + "ax.spines[[\"left\", \"top\", \"right\"]].set_visible(False)\n", + "\n", + "ax.margins(y=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save the figure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "wired-minutes", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "b784e002-0715-4eef-95b0-72720cdfa072", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c32d96a4-8d97-4333-97e7-71fe6c762c90", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "d0d75eac84da33d249e5a02389b33b1d1072ec9fa51c3714cc2d1301bce1a15e", + "notebook_path": "Matplotlib/Matplotlib_Create_timeline _with_lines_dates_and_text.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb b/Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb new file mode 100644 index 0000000000..b58ab9b914 --- /dev/null +++ b/Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Errorbar Limit Selection\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #errorbar #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "bb6c472a-20eb-49d7-a062-79d54a06b685", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to create illustrations of selectively drawing lower and/or upper limit symbols on errorbars using the parameters uplims, lolims of errorbar using Matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "a92ba777-2cf0-49aa-a303-078341db4f2c", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "- [Errorbar Limit Selection](https://matplotlib.org/stable/gallery/lines_bars_and_markers/errorbar_limits_simple.html#sphx-glr-gallery-lines-bars-and-markers-errorbar-limits-simple-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "0eaee013-2109-474a-b8f4-27bc3dd21826", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `fig_path`: A string representing the path where the generated figure will be saved with the name \"fig.png\".\n", + "- `x`: This is a NumPy array that represents the x-coordinates of the data points. It contains 10 values generated using `np.arange(10)`, which creates an array from 0 to 9.\n", + "- `y`: This is a NumPy array that represents the y-coordinates of the data points. It is calculated as `2.5 * np.sin(x / 20 * np.pi)`, which scales the sine function values by 2.5. It is used to generate a sinusoidal curve.\n", + "- `yerr`: This is a NumPy array that represents the magnitude of the error bars in the y-direction for each data point. It is created using `np.linspace(0.05, 0.2, 10)`, which generates 10 evenly spaced values from 0.05 to 0.2.\n", + "- `upperlimits`: This is a boolean or an array of booleans that controls whether the upper error bar is drawn as an arrow (True) or as a simple line (False) for each data point. It is used to specify which data points should have upper error bars as arrows.\n", + "- `lowerlimits`: This is a boolean or an array of booleans that controls whether the lower error bar is drawn as an arrow (True) or as a simple line (False) for each data point. It is used to specify which data points should have lower error bars as arrows." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c6c5bc05-2f3e-43d3-bf3c-3182325b2073", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "x = np.arange(10)\n", + "y = 2.5 * np.sin(x / 20 * np.pi)\n", + "yerr = np.linspace(0.05, 0.2, 10)\n", + "upperlimits = [True, False] * 5\n", + "lowerlimits = [False, True] * 5\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plot the Graph" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig = plt.figure()\n", + "\n", + "plt.errorbar(x, y + 3, yerr=yerr, label='both limits (default)')\n", + "\n", + "plt.errorbar(x, y + 2, yerr=yerr, uplims=True, label='uplims=True')\n", + "\n", + "plt.errorbar(x, y + 1, yerr=yerr, uplims=True, lolims=True,\n", + " label='uplims=True, lolims=True')\n", + "\n", + "plt.errorbar(x, y, yerr=yerr, uplims=upperlimits, lolims=lowerlimits,\n", + " label='subsets of uplims and lolims')\n", + "\n", + "plt.legend(loc='lower right')" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "711ca412-92b9-464e-8259-d2547cf2db3f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save the figure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c6e830af-937f-4b82-aeb9-4fa9c4b2da62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "38ae5018-3063-4b84-8486-4a504c7c9ffb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3e1d5382-2e52-40cd-bbd5-9789657eac98", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c32df804be451c266b92c3ad55937b47476ccfc6f07ce09ac434fce8e1c5f0e1", + "notebook_path": "Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb b/Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb new file mode 100644 index 0000000000..3d59582743 --- /dev/null +++ b/Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb @@ -0,0 +1,333 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Mapping marker properties to multivariate data\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #stackplots #markers #dataviz #snippet #operations #image #multivariate datasets" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "b47f92fa-4864-4c53-9942-32f7b81e5968", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook shows how to use different properties of markers to plot multivariate datasets using Matplotlib." + ] + }, + { + "cell_type": "markdown", + "id": "ae9e445a-03e2-499c-9952-ba72cd12da29", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "\n", + "- [Mapping marker properties to multivariate data](https://matplotlib.org/stable/gallery/lines_bars_and_markers/multivariate_marker_plot.html#sphx-glr-gallery-lines-bars-and-markers-multivariate-marker-plot-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.markers import MarkerStyle\n", + "from matplotlib.transforms import Affine2D\n", + "from matplotlib.text import TextPath\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "70974852-b8f5-4900-a82f-db5475f9797c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `xlabel`: This is a string variable that denotes the label for the x-axis of the plot. In this case, it is \"X position [m]\".\n", + "- `ylabel`: This is a string variable that represents the label for the y-axis of the plot. Here, it is \"Y position [m]\".\n", + "- `title`: This string variable signifies the title of the plot, which is 'Throwing success'.\n", + "- `label`: This is a string variable that indicates the label for the colorbar. It is \"Normalized Thrust [a.u.]\".\n", + "- `SUCCESS_SYMBOLS`: This list contains three `TextPath` objects. Each object represents a different symbol (\"☹\", \"😒\", \"☺\") used for marking successful throws on the plot.\n", + "- `fig_path`: This string variable signifies the file path where the generated figure will be saved as an image. However, it seems to be missing any file-saving code in the given snippet.\n", + "- `fig`: This refers to the figure object created by `plt.subplots()`.\n", + "- `ax`: This references the axes object created by `plt.subplots()`.\n", + "- `N`: This integer variable denotes the number of data points to generate. In this case, it is 25.\n", + "- `np.random.seed(42)`: This sets the random seed to ensure reproducibility of the random data generation.\n", + "- `skills`: This is a 1D NumPy array of length N. It represents the skills of participants with values between 5 and 13.\n", + "- `takeoff_angles`: This 1D NumPy array of length N represents the takeoff angles in degrees. These are normally distributed with mean 0 and standard deviation 90.\n", + "- `thrusts`: This 1D NumPy array of length N represents the thrust values. These are random values between 0 and 1.\n", + "- `successful`: This 1D NumPy array of length N represents the success status. These are random integers 0, 1, or 2.\n", + "- `positions`: This 2D NumPy array of shape (N, 2) represents the (x, y) positions of the data points. These are normally distributed around 0 with standard deviation 5.\n", + "- `data`: This zip object combines the `skills`, `takeoff_angles`, `thrusts`, `successful`, and `positions` arrays together. Each element of `data` is a tuple containing one data point's skill, takeoff angle, thrust, success status, and position.\n", + "- `cmap`: This is a colormap obtained from `plt.get_cmap(\"plasma\")`. It is used to color the scatter points based on the `thrusts`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bf25ef1d-73a8-4c61-a27d-23d73308ce5e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "xlabel = \"X position [m]\"\n", + "ylabel = \"Y position [m]\"\n", + "title = 'Throwing success'\n", + "label = \"Normalized Thrust [a.u.]\"\n", + "\n", + "SUCCESS_SYMBOLS = [\n", + " TextPath((0, 0), \"☹\"),\n", + " TextPath((0, 0), \"😒\"),\n", + " TextPath((0, 0), \"☺\"),\n", + "]\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create the Marker" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "N = 25\n", + "np.random.seed(42)\n", + "skills = np.random.uniform(5, 80, size=N) * 0.1 + 5\n", + "takeoff_angles = np.random.normal(0, 90, N)\n", + "thrusts = np.random.rand(N)\n", + "successful = np.random.randint(0, 3, size=N)\n", + "positions = np.random.normal(size=(N, 2)) * 5\n", + "data = zip(skills, takeoff_angles, thrusts, successful, positions)\n", + "\n", + "cmap = plt.get_cmap(\"plasma\")\n", + "\n", + "fig.suptitle((title), size=14)\n", + "\n", + "for skill, takeoff, thrust, mood, pos in data:\n", + " t = Affine2D().rotate_deg(takeoff).scale(skill)\n", + " m = MarkerStyle(SUCCESS_SYMBOLS[mood])\n", + " m._transform = t + m.get_transform() # Set the custom transformation for the marker style\n", + " ax.scatter(pos[0], pos[1], marker=m, color=cmap(thrust))\n", + "\n", + "fig.colorbar(plt.cm.ScalarMappable(norm=None, cmap=cmap),\n", + " ax=ax, label=label)\n", + "ax.set_xlabel(xlabel)\n", + "ax.set_ylabel(ylabel)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save the figure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "wired-minutes", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "dbdb5be1-a4b1-43a9-9e7b-247acef46d34", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5089623e-a2c5-4462-8ba3-60267c869ea8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "ec9d2f3bc763b8c5dab172f1354acd3ef85d13adbcfe201601c7155547bb3429", + "notebook_path": "Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb b/Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb new file mode 100644 index 0000000000..9835473b81 --- /dev/null +++ b/Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb @@ -0,0 +1,319 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f3009d0e-3d28-486a-a45b-0aa390832e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "continuing-pioneer", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Matplotlib - Plotting the Coherence of two signals\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d5a217ea-e554-474a-9c7b-2c9782c7104f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #matplotlib #chart #coherence #dataviz #snippet #operations #image" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "ded07bef-5371-4a5a-9d37-7299e8daee44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook provides instructions on how to plot the coherence of two signals using Matplotlib" + ] + }, + { + "cell_type": "markdown", + "id": "2473e501-0556-472e-93e9-358fb8232532", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:** \n", + "- [Plotting the coherence of two signals](https://matplotlib.org/stable/gallery/lines_bars_and_markers/cohere.html#sphx-glr-gallery-lines-bars-and-markers-cohere-py)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "349da579-e86d-4c4a-ac9f-fad6145f8061", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "eb94bc1f-3f55-4b4c-b0d5-bf172df94f1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `xlabel`: A string representing the label for the x-axis of the first subplot.\n", + "- `ylabel`: A string representing the label for the y-axis of the first subplot.\n", + "- `dt`: The time step or the sampling interval between data points in the time series.\n", + "- `frequency`: The frequency of the coherent part in the signals s1 and s2.\n", + "- `duration`: The total duration of the time series data.\n", + "- `coherenceparam1`: The number of data points to use in the coherence calculation.In this example, it uses 256 data points to calculate the coherence.\n", + "- `coherenceparam2`: The sampling frequency used in the coherence calculation.The coherence function uses this information to compute the corresponding frequency values for the coherence plot.\n", + "- `ylabel_coherence`: A string representing the label for the y-axis of the second subplot (coherence plot).\n", + "- `fig_path`: A string representing the path where the generated figure will be saved with the name \"fig.png\"." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d38ee7ff-1739-4a23-953c-d920338d98c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "xlabel = 'Time'\n", + "ylabel = 's1 and s2'\n", + "dt = 0.01\n", + "frequency = 10\n", + "duration = 30\n", + "coherenceparam1 = 256\n", + "coherenceparam2 = 1. / dt\n", + "ylabel_coherence = 'Coherence'\n", + "\n", + "# Outputs\n", + "fig_path = \"fig.png\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ef3c71fb-a46f-4216-978f-1b7fe0667bfd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plot the Coherence of two signals" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "devoted-negotiation", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Fixing random state for reproducibility\n", + "np.random.seed(19680801)\n", + "\n", + "t = np.arange(0, (duration) , dt)\n", + "nse1 = np.random.randn(len(t)) # white noise 1\n", + "nse2 = np.random.randn(len(t)) # white noise 2\n", + "\n", + "# Two signals with a coherent part at 10 Hz and a random part\n", + "s1 = np.sin(2 * np.pi * (frequency) * t) + nse1\n", + "s2 = np.sin(2 * np.pi * (frequency) * t) + nse2\n", + "\n", + "fig, axs = plt.subplots(2, 1)\n", + "\n", + "axs[0].plot(t, s1, t, s2)\n", + "axs[0].set_xlim(0, 2)\n", + "axs[0].set_xlabel(xlabel)\n", + "axs[0].set_ylabel(ylabel)\n", + "axs[0].grid(True)\n", + "\n", + "cxy, f = axs[1].cohere(s1, s2, (coherenceparam1) , (coherenceparam2))\n", + "\n", + "axs[1].set_ylabel(ylabel_coherence)\n", + "\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save the figure" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "wired-minutes", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(fig_path)" + ] + }, + { + "cell_type": "markdown", + "id": "eb3bb8bc-9a60-459c-9135-c410be24c3f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Share asset with naas" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "65bfe6da-b964-4ea9-8fe5-6419655f111a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "naas.asset.add(fig_path, params={\"inline\": True})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "42138b50edc125a7228a7a869f6566ffccf68e03ad9a7f48c4c553f3ff2f00e6", + "notebook_path": "Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Metrics Store/Content_creation_Track_connections.ipynb b/Metrics Store/Content_creation_Track_connections.ipynb index ddcfe98a21..31db4bef67 100644 --- a/Metrics Store/Content_creation_Track_connections.ipynb +++ b/Metrics Store/Content_creation_Track_connections.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Metrics Store - Content creation Track connections\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Riddhi Deshpande](https://www.linkedin.com/in/riddhideshpande/)" ] }, + { + "cell_type": "markdown", + "id": "719dd0fa-3628-4119-b064-9621e199e328", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Microsoft Teams/Microsoft_Teams_Send_message.ipynb b/Microsoft Teams/Microsoft_Teams_Send_message.ipynb index 16598c6907..c36509f9ad 100644 --- a/Microsoft Teams/Microsoft_Teams_Send_message.ipynb +++ b/Microsoft Teams/Microsoft_Teams_Send_message.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Microsoft Teams - Send message\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "d5f5b701-5c62-4da0-b1c4-2d1165782e44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Microsoft Word/Microsoft_Word_Convert_to_HMTL.ipynb b/Microsoft Word/Microsoft_Word_Convert_to_HMTL.ipynb index bf06c9d3bb..c713832cb0 100644 --- a/Microsoft Word/Microsoft_Word_Convert_to_HMTL.ipynb +++ b/Microsoft Word/Microsoft_Word_Convert_to_HMTL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Microsoft Word - Convert to HMTL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "58d2ac54-4d10-484e-a55e-63583bb563ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb b/Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb new file mode 100644 index 0000000000..a5bc9bf8fe --- /dev/null +++ b/Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb @@ -0,0 +1,307 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4e89d55b-eb6d-4d50-a0a2-aa674d4c5af1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "fe56529c-52f7-4b91-a9d9-caac34166024", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Mixpanel - Get Profile Event Activity\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "aa6a93f4-a993-47ca-b1be-d3933fd0ed1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #mixpanel #activity #stream #query #api #reference" + ] + }, + { + "cell_type": "markdown", + "id": "f580fcaf-11bc-4fc7-94b0-e7008f3a45ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "b49c299b-a88e-4429-b530-142f913e1f55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-06 (Created: 2023-07-06)" + ] + }, + { + "cell_type": "markdown", + "id": "7f66ca60-701f-4e64-9741-d8cc07258f1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook returns the activity feed for specified users. It is usefull for organizations to track user activity and get insights from it." + ] + }, + { + "cell_type": "markdown", + "id": "3dfadedf-fec3-4ed0-87a2-b0b9ab64284d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Mixpanel Activity Stream Query](https://developer.mixpanel.com/reference/activity-stream-query)\n", + "- [Mixpanel API Documentation](https://developer.mixpanel.com/docs/api-documentation)" + ] + }, + { + "cell_type": "markdown", + "id": "676d34d0-ea2a-47cf-99fb-27d5c11e6ed4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "ab696ff7-2c1f-4792-8c65-fe6d442ce694", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4776d99-942b-4580-b47f-f9dbc5e03f44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import json\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "1da5ad12-718f-42c9-8d54-519823543ecd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `api_key`: Mixpanel API key (this can be obtained from the project settings)\n", + "- `project_id`: Mixpanel Project ID\n", + "- `distinct_ids`: A JSON array as a string representing the distinct_ids to return activity feeds\n", + "- `from_date`: Start date from which information has to be retrieved\n", + "- `to_date`: Ending date till which we need the data\n", + "- `service_account_username`: Create a new service account and paste the username\n", + "- `service_account_password`: Create a new service account and paste the password" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0463e05a-7c58-4bbe-b40a-ba866c86bfc3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = \"Paste your api key\" or naas.secret.get(\"MIXPANEL_API_KEY\")\n", + "project_id = \"Paste your project ID\" or naas.secret.get(\"MIXPANEL_PROJECT_ID\")\n", + "distinct_ids = \"Paste your distinct ids\" or naas.secret.get(\"MIXPANEL_DISTINCT_IDS\")\n", + "from_date = \"\"\n", + "to_date = \"\"\n", + "service_account_username = \"Paste your Service account username\" or naas.secret.get(\"MIXPANEL_SERVICE_ACCOUNT_USERNAME\")\n", + "service_account_secret = \"Paste your service account password\" or naas.secret.get(\"MIXPANEL_SERVICE_ACCOUNT_SECRET\")" + ] + }, + { + "cell_type": "markdown", + "id": "80415fcc-8896-4af2-b92e-ac8cdec70d0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "6f66b78a-6260-4765-97f0-1c44dbee7d4f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Profile Event Activity" + ] + }, + { + "cell_type": "markdown", + "id": "0f4fa175-30b3-4566-97da-2a2dca835478", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function returns the activity feed for specified users." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7075ae34-3a39-4c72-abe1-abeea59572b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_profile_event_activity(api_key, distinct_ids, project_id, from_date, to_date):\n", + " url = \"https://mixpanel.com/api/2.0/stream/query?project_id=\"+project_id+\"&distinct_ids=\"+distinct_ids+\"&from_date=\"+from_date+\"&to_date=\"+to_date\n", + " headers = {\n", + " \"accept\": \"application/json\"\n", + " }\n", + "\n", + " response = requests.get(url, headers=headers)\n", + " print(response.text)" + ] + }, + { + "cell_type": "markdown", + "id": "40b30352-c7ad-4923-a5f8-f9ff3ff02340", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "bf863a77-8e6d-41ca-bcde-f024e60f5f91", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63a5a34d-9c0c-4e91-afe0-7d1c02673bf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "activity_feed = get_profile_event_activity(api_key, distinct_ids, project_id, from_date, to_date)\n", + "activity_feed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3140b46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "348ef3d0-b394-429f-a1a1-816165d95add", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "a53f5b5e6b059ad365cf319b58a4a0d99fd1f954bd7c82bb61bdd9d42b9beebc", + "notebook_path": "Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/MongoDB/MongoDB_Get_data.ipynb b/MongoDB/MongoDB_Get_data.ipynb index f44199263b..9de1bf0384 100644 --- a/MongoDB/MongoDB_Get_data.ipynb +++ b/MongoDB/MongoDB_Get_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# MongoDB - Get data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "10e1c37a-1fcd-492d-bbc2-48f00070ac03", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/MongoDB/MongoDB_Send_data.ipynb b/MongoDB/MongoDB_Send_data.ipynb index 827ad37764..f162562753 100644 --- a/MongoDB/MongoDB_Send_data.ipynb +++ b/MongoDB/MongoDB_Send_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# MongoDB - Send data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "03ea6f0a-a302-4bd0-9b93-90f1fe8bc743", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb b/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb index ae76c0d2a8..83b0ae1e50 100644 --- a/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb +++ b/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# MongoDB - Send data to Google Sheets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "09baf620-50bc-40c4-933c-d6679ac5e5f0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-21)" + ] + }, { "cell_type": "markdown", "id": "b2b288da-6e0e-47d4-a835-b63a038c97dd", diff --git a/MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb b/MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb new file mode 100644 index 0000000000..a3226a0bc3 --- /dev/null +++ b/MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb @@ -0,0 +1,308 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d98f101c-52c8-45c1-b3a1-2ad5b835bf8a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "5d648da5-f36b-488d-a031-65d2a48dc697", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# MoviePy - Convert audio file M4A to MP3\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "65442a74-89dc-42e6-850a-23a875779700", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #moviepy #audio #convert #m4a #mp3 #python" + ] + }, + { + "cell_type": "markdown", + "id": "eda126d3-397f-44dc-a504-8147649ced26", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "dfe9d1de-7ad3-4e8a-aece-23f2a49d4421", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-23 (Created: 2023-07-23)" + ] + }, + { + "cell_type": "markdown", + "id": "00249c80-bfb3-4860-b843-d73faa5b8330", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook would allow you to transform an audio file from M4A to MP3. It can be further used by people who want to use their Iphone voice recording mémos file and generate transcripts with AI." + ] + }, + { + "cell_type": "markdown", + "id": "afbcfb2d-1ff4-46ea-9f61-9b36a0c9c68a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [PyPI - MoviePy](https://pypi.org/project/moviepy/)" + ] + }, + { + "cell_type": "markdown", + "id": "d1d5e44a-0519-43e2-be99-a36ac680ddb6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "24eb7e1c-80ec-4992-8a69-0709884d6a75", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "288aecd9-6469-4c3f-ba93-3ae6d796edfc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " from moviepy.editor import AudioFileClip\n", + "except:\n", + " !pip install ffmpeg-python --user\n", + " from moviepy.editor import AudioFileClip\n", + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "e6380fd1-c4a2-4029-bb62-8aa12fdc23a2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `input_file`: path to the M4A file\n", + "- `output_file`: path to the MP3 file" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e697796b-cbbf-429a-b929-2c78de1e8116", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "input_file = \"https://filesamples.com/samples/audio/m4a/sample4.m4a\"\n", + "output_file = \"output.mp3\"" + ] + }, + { + "cell_type": "markdown", + "id": "d261455e-8dc3-4d7a-9625-657b577a22f5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ed5c51d7-291e-4069-a24a-8bddcafbad41", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Download audio file\n", + "If audio file is an URL, the file will be downloaded in local." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "665191e4-7639-4557-a472-61613c2a2252", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def download_audio(input_file):\n", + " # Init\n", + " if input_file.startswith(\"http\"):\n", + " url = input_file\n", + " input_file = url.split('/')[-1]\n", + " else:\n", + " return input_file\n", + " \n", + " # Send a GET request to download the file\n", + " response = requests.get(url)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " # Save the content of the response (M4A file) to a local file\n", + " with open(input_file, \"wb\") as file:\n", + " file.write(response.content)\n", + " print(\"✅ M4A file downloaded successfully.\")\n", + " else:\n", + " print(\"❌ Failed to download the M4A file.\")\n", + " return input_file\n", + " \n", + "input_file = download_audio(input_file)\n", + "print(\"➡️ Input file:\", input_file)" + ] + }, + { + "cell_type": "markdown", + "id": "1dd6ceea-deff-4033-ba61-2f66d1bd10fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "bbb6ce13-0583-49eb-8eff-511ed3e55f6a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert M4A to MP3\n", + "Using the `AudioFileClip` class from the `moviepy` library, we can convert an audio file from M4A to MP3." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e18534d5-8500-4d1f-b1c5-52c1b6d46260", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Load the M4A file using moviepy\n", + "audio = AudioFileClip(input_file)\n", + "\n", + "# Export the audio to MP3 format\n", + "audio.write_audiofile(output_file)" + ] + }, + { + "cell_type": "markdown", + "id": "4065921d-8c8d-4b8c-99e0-06642ec8a7e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "1f1098d9-fc61-4fa9-8d16-1038168e322f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "47c0e6657c573a3ff0e9d41a364f948a355dee01276d4dca70e25b179bb648a1", + "notebook_path": "MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/MySQL/MySQL_Query_database.ipynb b/MySQL/MySQL_Query_database.ipynb index 0f7cf52afd..dfd6ec56c1 100644 --- a/MySQL/MySQL_Query_database.ipynb +++ b/MySQL/MySQL_Query_database.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# MySQL - Query database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "8de3d449-6f68-4e5f-895d-b9eb3e885414", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/NASA/NASA_Artic_sea_ice.ipynb b/NASA/NASA_Artic_sea_ice.ipynb index b41d53a688..bf8d9a85fd 100644 --- a/NASA/NASA_Artic_sea_ice.ipynb +++ b/NASA/NASA_Artic_sea_ice.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# NASA - Artic sea ice\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "03ea0d17-2206-43a0-8f03-9936d2d99548", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-10)" + ] + }, { "cell_type": "markdown", "id": "traditional-assist", diff --git a/NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb b/NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb new file mode 100644 index 0000000000..39910dcdba --- /dev/null +++ b/NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb @@ -0,0 +1,274 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "naas-logo", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "veterinary-pleasure", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# NASA - Display Exoplanet by Light Curves\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "fc44a5d0-50db-4c8c-967a-3670dea9db8d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #nasa #naas #opendata #analytics #astronomy #html #png #operations #image #pylab" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "2a6c5d1f-5835-4d2f-bee5-3ad9c350a7cd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-05)" + ] + }, + { + "cell_type": "markdown", + "id": "traditional-assist", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook is display Exoplanet by light curves. An exoplanet is any planet beyond our solar system. Most orbit other stars, but free-floating exoplanets, called rogue planets, orbit the galactic center and are untethered to any star.
\n" + ] + }, + { + "cell_type": "markdown", + "id": "contained-burlington", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- Data source: Satellite observations. Credit: /NASA\n", + "- [Classify Exoplanet by Light Curves](https://www.kaggle.com/keplersmachines/kepler-labelled-time-series-data)" + ] + }, + { + "cell_type": "markdown", + "id": "4b08853c-1a82-4e12-9ac6-39bebbd80d0f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "cf6fdfd1-8b34-466c-9d42-42d568ca8d85", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "77fb59f5-b8e1-44db-9b41-72ec0d378173", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "%pylab inline\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "14eaf079-e76b-4ed0-ab35-c81ee575acea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `flux_data`: source data in CSV. The \"FLUX\" column represents the brightness of the star" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad58558e-2edb-422c-a469-21219cbdd5b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "flux_data = 'https://storage.googleapis.com/inspirit-ai-data-bucket-1/Data/AI%20Scholars/Sessions%206%20-%2010%20(Projects)/Project%20-%20Planet%20Hunters/exoTest.csv'" + ] + }, + { + "cell_type": "markdown", + "id": "98e4a20f-f69f-41ff-abdb-b56d454fe63c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "e9eb1dfb-7ccc-4cad-ba67-89ea299cafb7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data\n", + "- `LABEL` -> 2 is an exoplanet star and 1 is a non-exoplanet-star.\n", + "- `FLUX1-FLUX3197` -> the light intensity recorded for each star, at a different point in time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b717651c-3f2f-48c7-a66b-73bc418ca581", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pd.read_csv(flux_data)\n", + "print(\"Row fetched:\", len(df))\n", + "df.tail(12)" + ] + }, + { + "cell_type": "markdown", + "id": "c3d6d6eb-0a05-42e9-906e-880d2f432d2a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "random-restoration", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plot graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "informative-terry", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "labels = df['LABEL']\n", + "flux_data = df.drop('LABEL',axis=1) #drop the labels from the data frame, leaving only the flux data\n", + "\n", + "exo_data=flux_data.loc[labels==2] \n", + "\n", + "def plot_light_curve(dataset, index):\n", + " plt.figure()\n", + " plt.plot(np.array(dataset[index:index+1])[0])\n", + " plt.show()\n", + " \n", + "for i in range(len(exo_data)):#the number in the bracket is how many times plots of the light curve you want.\n", + " plot_light_curve(exo_data, i) #the number is the dataset you want transformed into a light curve" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "8c8fa4d995ff61138dd01ab17c04bb8001b05cbb2aeb5f0eaab6a5c27c9ed6f4", + "notebook_path": "NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/NASA/NASA_Global_temperature.ipynb b/NASA/NASA_Global_temperature.ipynb index 2a7036bc97..226be3b638 100644 --- a/NASA/NASA_Global_temperature.ipynb +++ b/NASA/NASA_Global_temperature.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# NASA - Global temperature\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Colyn TIDMAN](https://www.linkedin.com/in/colyntidman/), [Dylan PICHON](https://www.linkedin.com/in/dylan-pichon/)" ] }, + { + "cell_type": "markdown", + "id": "2dafe02f-fb20-4126-9822-7603c2a88479", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-28)" + ] + }, { "cell_type": "markdown", "id": "bridal-mongolia", diff --git a/NASA/NASA_Sea_level.ipynb b/NASA/NASA_Sea_level.ipynb index 374600af4d..d543127243 100644 --- a/NASA/NASA_Sea_level.ipynb +++ b/NASA/NASA_Sea_level.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# NASA - Sea level\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Colyn TIDMAN](https://www.linkedin.com/in/colyntidman/), [Dylan PICHON](https://www.linkedin.com/in/dylan-pichon/)" ] }, + { + "cell_type": "markdown", + "id": "2e6e4ce6-c52f-446d-b19e-f5f47d51a22a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-28)" + ] + }, { "cell_type": "markdown", "id": "realistic-updating", diff --git a/Naas Auth/Naas_Auth_bearer_validate.ipynb b/Naas Auth/Naas_Auth_bearer_validate.ipynb index f77afe7123..803ffbd096 100644 --- a/Naas Auth/Naas_Auth_bearer_validate.ipynb +++ b/Naas Auth/Naas_Auth_bearer_validate.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas Auth - Bearer validate\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "d0ac3550-f84f-4e64-a11b-26e6c3d768b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-01-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas Auth/Naas_Auth_connect.ipynb b/Naas Auth/Naas_Auth_connect.ipynb index 38df1f048b..e8a1edc712 100644 --- a/Naas Auth/Naas_Auth_connect.ipynb +++ b/Naas Auth/Naas_Auth_connect.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas Auth - Connect\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "892ac2fb-d5ca-4e6e-8160-c9a692dee1ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-01-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas Auth/Naas_Auth_users_me.ipynb b/Naas Auth/Naas_Auth_users_me.ipynb index 057fb79aeb..66eafdb779 100644 --- a/Naas Auth/Naas_Auth_users_me.ipynb +++ b/Naas Auth/Naas_Auth_users_me.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas Auth - Users me\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "44830912-95a6-450e-87ec-499a0249dcab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-01-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb b/Naas Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb index 4bcec3045a..ea72c2a2f2 100644 --- a/Naas Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb +++ b/Naas Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas Dashboard - Financial Consolidation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Meriem Si](https://www.linkedin.com/in/meriem-si-104236181/)" ] }, + { + "cell_type": "markdown", + "id": "d9391887-bed1-4d70-bc30-4114b1c84bbc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb b/Naas Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb index d8574a6416..240c817b36 100644 --- a/Naas Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb +++ b/Naas Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas Dashboard - Revenue Cogs by Segment\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Fernando Chavez Osuna](https://www.linkedin.com/in/fernando-chavez-osuna-1a420a181)" ] }, + { + "cell_type": "markdown", + "id": "5a5a7c27-cbc6-4c90-8971-87f2d3c9d191", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb b/Naas Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb index 7e2d5578b4..58ae359515 100644 --- a/Naas Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb +++ b/Naas Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas Dashboard - Social Media KPIs ScoreCard\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Ismail CHIHAB](https://www.linkedin.com/in/ismail-chihab-4b0a04202/)" ] }, + { + "cell_type": "markdown", + "id": "33b74f16-611f-4d12-9445-a27ddc21a73d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Add_or_Update_Asset.ipynb b/Naas/Naas_Add_or_Update_Asset.ipynb index 031badf675..3af180ddf1 100644 --- a/Naas/Naas_Add_or_Update_Asset.ipynb +++ b/Naas/Naas_Add_or_Update_Asset.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Add or Update Asset\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "2c690e23-f9d5-4b0e-af6a-a2b0d3c2261f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "3254dbc3-9bda-4c46-b502-60674af26293", diff --git a/Naas/Naas_Add_or_Update_Dependency.ipynb b/Naas/Naas_Add_or_Update_Dependency.ipynb index fa4fae174d..19108d72c8 100644 --- a/Naas/Naas_Add_or_Update_Dependency.ipynb +++ b/Naas/Naas_Add_or_Update_Dependency.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Add or Update Dependency\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5352d8b4-78f8-43be-8745-58e01b3de57c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "86307034-ca70-479a-93a0-01f714087715", diff --git a/Naas/Naas_Add_or_Update_Scheduler.ipynb b/Naas/Naas_Add_or_Update_Scheduler.ipynb index f0a7500dfe..5e3c874d72 100644 --- a/Naas/Naas_Add_or_Update_Scheduler.ipynb +++ b/Naas/Naas_Add_or_Update_Scheduler.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Add or Update Scheduler\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "6930c074-db2f-41c2-98f0-fde70bc6e9e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "1b65b662-59e8-40d7-89cb-ee5da27baeea", diff --git a/Naas/Naas_Add_or_Update_Secret.ipynb b/Naas/Naas_Add_or_Update_Secret.ipynb index 84cbf7cef5..586664b2f5 100644 --- a/Naas/Naas_Add_or_Update_Secret.ipynb +++ b/Naas/Naas_Add_or_Update_Secret.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Add or Update Secret\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "8729d2b4-bd1e-4eff-a66e-a08df3f2f99a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "0b39429c-9853-4ea4-8a23-a48ac896e31f", diff --git a/Naas/Naas_Add_or_Update_Webhook.ipynb b/Naas/Naas_Add_or_Update_Webhook.ipynb index 0962bc9b52..1a0d3ca868 100644 --- a/Naas/Naas_Add_or_Update_Webhook.ipynb +++ b/Naas/Naas_Add_or_Update_Webhook.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Add or Update Webhook\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "5b4a0974-3979-43d6-8f68-937b05a26c14", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "9dc99c6a-a656-4fbf-8158-07d5307c8c8c", diff --git a/Naas/Naas_Asset_demo.ipynb b/Naas/Naas_Asset_demo.ipynb index 8de8f2d6bd..a9f260c1ee 100644 --- a/Naas/Naas_Asset_demo.ipynb +++ b/Naas/Naas_Asset_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Asset demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "88ab16a0-1454-4905-b5d2-a40568c23951", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-31)" + ] + }, { "cell_type": "markdown", "id": "50bbad8d", diff --git a/Naas/Naas_Automate_GitHub_Auth.ipynb b/Naas/Naas_Automate_GitHub_Auth.ipynb index 377ac9b9bd..4545b2ee7a 100644 --- a/Naas/Naas_Automate_GitHub_Auth.ipynb +++ b/Naas/Naas_Automate_GitHub_Auth.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Automate GitHub Auth\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "1c067038-23d9-447d-9812-621b76f24c84", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Configure_Github_with_ssh.ipynb b/Naas/Naas_Configure_Github_with_ssh.ipynb index 2cc3400b47..d96cf5ec87 100644 --- a/Naas/Naas_Configure_Github_with_ssh.ipynb +++ b/Naas/Naas_Configure_Github_with_ssh.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Configure Github with ssh\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "638ee2b6-163c-47b1-ace9-7b8688ba92fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Create_Kernel.ipynb b/Naas/Naas_Create_Kernel.ipynb index 374a6ac8ae..eddd337bb6 100644 --- a/Naas/Naas_Create_Kernel.ipynb +++ b/Naas/Naas_Create_Kernel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Create Kernel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "25e35fec-2b50-4d5f-9cc6-93fce165bd0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-11)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Naas/Naas_Create_Pipeline.ipynb b/Naas/Naas_Create_Pipeline.ipynb index 027a9ffd72..77257797a8 100644 --- a/Naas/Naas_Create_Pipeline.ipynb +++ b/Naas/Naas_Create_Pipeline.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Create Pipeline\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "20d456d2-70f8-4a70-953d-9d4e8398c228", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-20)" + ] + }, { "cell_type": "markdown", "id": "bf2e0f26-7fdf-4351-9209-8bb54c5ef7e9", diff --git a/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb b/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb index 2cab28acb3..16e39f9128 100644 --- a/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb +++ b/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Create onboarding plugin using OpenAI\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7fcc20b7-83ec-4c34-bec1-b9f365957a99", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-15 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", @@ -179,25 +190,25 @@ "Finally, update the system prompt with the corresponding key-value table based on the chosen template by showing an hypterlink the user can click on to change the system prompt.\n", "\n", "persona_templates = {\n", - " \"CEO\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb\",\n", - " \"CTO\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb\",\n", - " \"COO\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_COO.ipynb\",\n", - " \"Product Manager\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_product_manager.ipynb\",\n", - " \"Data Scientist/Analyst\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_data_scientist.ipynb\",\n", - " \"Software Developer/Engineer\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_software_engineer.ipynb\",\n", - " \"IT Professional\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_an_IT_professional.ipynb\",\n", - " \"Business Analyst\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_business_analyst.ipynb\",\n", - " \"Project Manager\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_project_manager.ipynb\",\n", - " \"Marketer\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_marketer.ipynb\",\n", - " \"Sales Professional\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_sales_professional.ipynb\",\n", - " \"Educator or Student\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_an_educator_or_student.ipynb\",\n", - " \"AI Enthusiast\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_an_AI_enthusiast.ipynb\",\n", - " \"Hobbyist\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_hobbyist.ipynb\",\n", - " \"Lifelong Learner\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_lifelong_learner.ipynb\",\n", - " \"Creative Writer or Artist\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_creative_writer_or_artist.ipynb\",\n", - " \"Parent or Child\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_parent_or_child.ipynb\",\n", - " \"Retiree\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_retiree.ipynb\",\n", - " \"Homeowner\": \"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_homeowner.ipynb\",\n", + " \"CEO\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb\",\n", + " \"CTO\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb\",\n", + " \"COO\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_COO.ipynb\",\n", + " \"Product Manager\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_product_manager.ipynb\",\n", + " \"Data Scientist/Analyst\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_data_scientist.ipynb\",\n", + " \"Software Developer/Engineer\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_software_engineer.ipynb\",\n", + " \"IT Professional\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_an_IT_professional.ipynb\",\n", + " \"Business Analyst\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_business_analyst.ipynb\",\n", + " \"Project Manager\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_project_manager.ipynb\",\n", + " \"Marketer\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_marketer.ipynb\",\n", + " \"Sales Professional\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_sales_professional.ipynb\",\n", + " \"Educator or Student\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_an_educator_or_student.ipynb\",\n", + " \"AI Enthusiast\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_an_AI_enthusiast.ipynb\",\n", + " \"Hobbyist\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_hobbyist.ipynb\",\n", + " \"Lifelong Learner\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_lifelong_learner.ipynb\",\n", + " \"Creative Writer or Artist\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_creative_writer_or_artist.ipynb\",\n", + " \"Parent or Child\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_parent_or_child.ipynb\",\n", + " \"Retiree\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_retiree.ipynb\",\n", + " \"Homeowner\": \"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_homeowner.ipynb\",\n", " \"Other\": \"\"\n", "}\n", "\"\"\"\n", @@ -245,7 +256,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{\"name\": \"Welcome to Naas!\", \"prompt\": \"You are Abi, an advanced chat assistant from Naas.ai, designed to provide an engaging onboarding experience and help users understand the value of our platform as quickly as possible.Naas.ai is a universal data platform that empowers users to create their own personal AI assistant leveraging powerful language models similar to ChatGPT, using customizable pre-built templates.Your primary objective is to guide the user conversation step by step, collecting essential onboarding information. Remember, all questions should not be asked at once; the user must answer one question at a time. DO NOT SIMULATE ANSWERS.You MUST steer the conversation towards achieving these specific goals:- Ascertain whether the user intends to use Naas.ai for professional, personal, or both types of purposes.- Obtain the user's first and last names.- Find out the user's current city and convert it into the ISO-standard timezone.- Depending on the intended use of the platform (professional or personal), prompt the user to identify their role or interest. This should align with the available data & AI templates offered by Naas.- If the platform usage is professional, inquire about the user's company name and the type of business data they frequently work with.- Assess the user's interest in specific services offered by Naas.ai.- Suggest a template tailored to the user's role, allowing them to confirm their selection.Once you have collected all the necessary information, dynamically update the system prompt with a key-value table that corresponds to the chosen role's template.The final message should be a JSON object, strictly adhering to the following format:persona = { \\\"usage_intent\\\": \\\"\\\", \\\"first_name\\\": \\\"\\\", \\\"last_name\\\": \\\"\\\", \\\"timezone\\\": \\\"\\\", \\\"professional_occupation\\\": \\\"\\\", \\\"company_name\\\": \\\"\\\", \\\"business_data_type\\\": \\\"\\\", \\\"personal_interest_category\\\": \\\"\\\", \\\"specific_service_interest\\\": \\\"\\\", \\\"configured_services\\\": [\\\"\\\", \\\"\\\", \\\"\\\", \\\"...\\\"], \\\"template\\\": \\\"\\\"}Remember, the last message should exclusively contain the JSON object and must comply with JSON formatting rules as it will be processed as such.YOU MUST SURROUND THE JSON OBJECT WITH ```json ```.The user will initially send an empty message. Introduce yourself as Abi and begin by asking the first question to gather the necessary information. Personalize the conversation based on the user's responses, and aim to rapidly guide them towards an 'aha' moment with Naas.ai. Finally, update the system prompt with the corresponding key-value table based on the chosen template by showing an hypterlink the user can click on to change the system prompt.persona_templates = { \\\"CEO\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb\\\", \\\"CTO\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb\\\", \\\"COO\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_COO.ipynb\\\", \\\"Product Manager\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_product_manager.ipynb\\\", \\\"Data Scientist/Analyst\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_data_scientist.ipynb\\\", \\\"Software Developer/Engineer\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_software_engineer.ipynb\\\", \\\"IT Professional\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_an_IT_professional.ipynb\\\", \\\"Business Analyst\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_business_analyst.ipynb\\\", \\\"Project Manager\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_project_manager.ipynb\\\", \\\"Marketer\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_marketer.ipynb\\\", \\\"Sales Professional\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_sales_professional.ipynb\\\", \\\"Educator or Student\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_an_educator_or_student.ipynb\\\", \\\"AI Enthusiast\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_an_AI_enthusiast.ipynb\\\", \\\"Hobbyist\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_hobbyist.ipynb\\\", \\\"Lifelong Learner\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_lifelong_learner.ipynb\\\", \\\"Creative Writer or Artist\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_creative_writer_or_artist.ipynb\\\", \\\"Parent or Child\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_parent_or_child.ipynb\\\", \\\"Retiree\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_retiree.ipynb\\\", \\\"Homeowner\\\": \\\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_homeowner.ipynb\\\", \\\"Other\\\": \\\"\\\"}\", \"model\": \"gpt-4\", \"temperature\": 1, \"max_tokens\": 2084}\n" + "{\"name\": \"Welcome to Naas!\", \"prompt\": \"You are Abi, an advanced chat assistant from Naas.ai, designed to provide an engaging onboarding experience and help users understand the value of our platform as quickly as possible.Naas.ai is a universal data platform that empowers users to create their own personal AI assistant leveraging powerful language models similar to ChatGPT, using customizable pre-built templates.Your primary objective is to guide the user conversation step by step, collecting essential onboarding information. Remember, all questions should not be asked at once; the user must answer one question at a time. DO NOT SIMULATE ANSWERS.You MUST steer the conversation towards achieving these specific goals:- Ascertain whether the user intends to use Naas.ai for professional, personal, or both types of purposes.- Obtain the user's first and last names.- Find out the user's current city and convert it into the ISO-standard timezone.- Depending on the intended use of the platform (professional or personal), prompt the user to identify their role or interest. This should align with the available data & AI templates offered by Naas.- If the platform usage is professional, inquire about the user's company name and the type of business data they frequently work with.- Assess the user's interest in specific services offered by Naas.ai.- Suggest a template tailored to the user's role, allowing them to confirm their selection.Once you have collected all the necessary information, dynamically update the system prompt with a key-value table that corresponds to the chosen role's template.The final message should be a JSON object, strictly adhering to the following format:persona = { \\\"usage_intent\\\": \\\"\\\", \\\"first_name\\\": \\\"\\\", \\\"last_name\\\": \\\"\\\", \\\"timezone\\\": \\\"\\\", \\\"professional_occupation\\\": \\\"\\\", \\\"company_name\\\": \\\"\\\", \\\"business_data_type\\\": \\\"\\\", \\\"personal_interest_category\\\": \\\"\\\", \\\"specific_service_interest\\\": \\\"\\\", \\\"configured_services\\\": [\\\"\\\", \\\"\\\", \\\"\\\", \\\"...\\\"], \\\"template\\\": \\\"\\\"}Remember, the last message should exclusively contain the JSON object and must comply with JSON formatting rules as it will be processed as such.YOU MUST SURROUND THE JSON OBJECT WITH ```json ```.The user will initially send an empty message. Introduce yourself as Abi and begin by asking the first question to gather the necessary information. Personalize the conversation based on the user's responses, and aim to rapidly guide them towards an 'aha' moment with Naas.ai. Finally, update the system prompt with the corresponding key-value table based on the chosen template by showing an hypterlink the user can click on to change the system prompt.persona_templates = { \\\"CEO\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb\\\", \\\"CTO\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb\\\", \\\"COO\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_COO.ipynb\\\", \\\"Product Manager\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_product_manager.ipynb\\\", \\\"Data Scientist/Analyst\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_data_scientist.ipynb\\\", \\\"Software Developer/Engineer\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_software_engineer.ipynb\\\", \\\"IT Professional\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_an_IT_professional.ipynb\\\", \\\"Business Analyst\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_business_analyst.ipynb\\\", \\\"Project Manager\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_project_manager.ipynb\\\", \\\"Marketer\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_marketer.ipynb\\\", \\\"Sales Professional\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_sales_professional.ipynb\\\", \\\"Educator or Student\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_an_educator_or_student.ipynb\\\", \\\"AI Enthusiast\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_an_AI_enthusiast.ipynb\\\", \\\"Hobbyist\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_hobbyist.ipynb\\\", \\\"Lifelong Learner\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_lifelong_learner.ipynb\\\", \\\"Creative Writer or Artist\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_creative_writer_or_artist.ipynb\\\", \\\"Parent or Child\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_parent_or_child.ipynb\\\", \\\"Retiree\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_retiree.ipynb\\\", \\\"Homeowner\\\": \\\"https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_homeowner.ipynb\\\", \\\"Other\\\": \\\"\\\"}\", \"model\": \"gpt-4\", \"temperature\": 1, \"max_tokens\": 2084}\n" ] } ], diff --git a/Naas/Naas_Credits_Get_Balance.ipynb b/Naas/Naas_Credits_Get_Balance.ipynb index d1bd6ebbd8..da4ff8e767 100644 --- a/Naas/Naas_Credits_Get_Balance.ipynb +++ b/Naas/Naas_Credits_Get_Balance.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Credits Get Balance\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "89d1f3ed-1236-4541-9a37-b5bd38ef29b4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Delete_Asset.ipynb b/Naas/Naas_Delete_Asset.ipynb index 1140c7d178..715bc7ff12 100644 --- a/Naas/Naas_Delete_Asset.ipynb +++ b/Naas/Naas_Delete_Asset.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Delete Asset\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d4ea6d95-35eb-491d-89c2-95498cb4a628", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-16 (Created: 2023-03-21)" + ] + }, { "cell_type": "markdown", "id": "3254dbc3-9bda-4c46-b502-60674af26293", @@ -58,15 +69,15 @@ }, { "cell_type": "markdown", - "id": "96d8b325-710d-48b7-86dd-33f6bf13d5ba", + "id": "159b876c-3d67-4fb8-bdd3-7ac9ff5e29bf", "metadata": { "papermill": {}, "tags": [] }, "source": [ "**References:**\n", - "- [Naas Documentation](https://docs.naas.ai/)\n", - "- [Naas Asset Documentation](https://docs.naas.ai/features/asset)" + "- [Deleting Assets](https://site.naas.ai/docs/framework/jobs/asset/#deleting-assets)\n", + "- [Naas Asset Documentation](https://site.naas.ai/docs/framework/jobs/asset)" ] }, { @@ -251,4 +262,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/Naas/Naas_Delete_Dependency.ipynb b/Naas/Naas_Delete_Dependency.ipynb index 30ca155a84..a43d04aeed 100644 --- a/Naas/Naas_Delete_Dependency.ipynb +++ b/Naas/Naas_Delete_Dependency.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Delete Dependency\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c20f6628-0c65-406b-9b21-281a263c5495", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "3254dbc3-9bda-4c46-b502-60674af26293", diff --git a/Naas/Naas_Delete_Scheduler.ipynb b/Naas/Naas_Delete_Scheduler.ipynb index c3b1b092b4..2b03abcd32 100644 --- a/Naas/Naas_Delete_Scheduler.ipynb +++ b/Naas/Naas_Delete_Scheduler.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Delete Scheduler\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "97a2e8de-9dc2-4e5c-9eed-b5911b53b705", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-16 (Created: 2023-03-15)" + ] + }, { "cell_type": "markdown", "id": "78f1675e-056a-4913-b39f-058a4da749b6", @@ -65,8 +76,8 @@ }, "source": [ "**References:**\n", - "- [Naas API Documentation](https://docs.naas.ai/)\n", - "- [Naas Scheduler Documentation](https://docs.naas.ai/features/scheduler)" + "- [Removing a Scheduler](https://site.naas.ai/docs/framework/jobs/scheduler/#removing-a-schedule)\n", + "- [Naas Scheduler Documentation](https://site.naas.ai/docs/framework/jobs/scheduler)" ] }, { @@ -251,4 +262,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/Naas/Naas_Delete_Secret.ipynb b/Naas/Naas_Delete_Secret.ipynb index e54bf53042..665bab4133 100644 --- a/Naas/Naas_Delete_Secret.ipynb +++ b/Naas/Naas_Delete_Secret.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Delete Secret\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "511b4918-6572-47cc-a48b-2e65cbf6b558", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-27 (Created: 2023-04-27)" + ] + }, { "cell_type": "markdown", "id": "0b39429c-9853-4ea4-8a23-a48ac896e31f", diff --git a/Naas/Naas_Delete_Webhook.ipynb b/Naas/Naas_Delete_Webhook.ipynb index 23805a7e56..9e552285f7 100644 --- a/Naas/Naas_Delete_Webhook.ipynb +++ b/Naas/Naas_Delete_Webhook.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Delete Webhook\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "32bb2816-79cb-4925-bcbf-f758a132b9ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-24)" + ] + }, { "cell_type": "markdown", "id": "78f1675e-056a-4913-b39f-058a4da749b6", diff --git a/Naas/Naas_Delete_all_assets.ipynb b/Naas/Naas_Delete_all_assets.ipynb new file mode 100644 index 0000000000..5cf14f79de --- /dev/null +++ b/Naas/Naas_Delete_all_assets.ipynb @@ -0,0 +1,234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9adc822f-0de4-4c31-9c49-e5d357ef99dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "fcaeae35-a4ae-41fb-8da4-664ac3124302", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Naas - Delete all assets\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "509485fb-7323-4958-85bf-64721163d3d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #naas #assets #delete #automation" + ] + }, + { + "cell_type": "markdown", + "id": "f406354c-8367-4c1b-92f0-40555b964c1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "288e0e75-de04-428b-88a2-748f36b4c44e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-16 (Created: 2023-08-16)" + ] + }, + { + "cell_type": "markdown", + "id": "c8dd2509-cf86-4142-9173-6d22354ade30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook deletes all assets in Naas Lab." + ] + }, + { + "cell_type": "markdown", + "id": "79ca21d0-4d6e-47a2-a1ee-7899baea1590", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Deleting Assets](https://site.naas.ai/docs/framework/jobs/asset/#deleting-assets)\n", + "- [Naas Asset Documentation](https://site.naas.ai/docs/framework/jobs/asset)" + ] + }, + { + "cell_type": "markdown", + "id": "8880d1df-361d-4ecd-a535-54345f230e99", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "129e1121-27b2-4777-9c5a-b01b29e4710c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "082a8950-8c7e-42c0-9512-a4eb52253106", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import os" + ] + }, + { + "cell_type": "markdown", + "id": "edf74c54-11ea-4f44-a3fb-4cbd8947cec6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "bcd6d947-a016-4fde-97bd-90adda3b97e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all assets" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "58ae88f0-1ef6-417b-bec4-34f351c7d3b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = naas.asset.currents(raw=True)\n", + "print(\"Assets fetched:\", len(data))" + ] + }, + { + "cell_type": "markdown", + "id": "0583410b-9860-4051-9f21-f7a000799701", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "daee3229-303b-46fe-934b-6be433fb2511", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Delete all assets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43b7a658-ee3e-40a4-a9ac-37b0b7673c1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "for d in data:\n", + " file_name = d.get(\"path\")\n", + " file_path = f\"/home/ftp/{file_name}\"\n", + " \n", + " # Delele schedulers\n", + " naas.asset.delete(file_path)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "ad17062d674c08958e8d52d2c391a621c91ce8ce90e01be930c7fec90dc78a84", + "notebook_path": "Naas/Naas_Delete_all_assets.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Naas/Naas_Delete_all_schedulers.ipynb b/Naas/Naas_Delete_all_schedulers.ipynb new file mode 100644 index 0000000000..78e1d65444 --- /dev/null +++ b/Naas/Naas_Delete_all_schedulers.ipynb @@ -0,0 +1,234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9adc822f-0de4-4c31-9c49-e5d357ef99dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "fcaeae35-a4ae-41fb-8da4-664ac3124302", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Naas - Delete all schedulers\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "509485fb-7323-4958-85bf-64721163d3d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #naas #scheduler #delete #automation" + ] + }, + { + "cell_type": "markdown", + "id": "f406354c-8367-4c1b-92f0-40555b964c1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "288e0e75-de04-428b-88a2-748f36b4c44e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-16 (Created: 2023-08-16)" + ] + }, + { + "cell_type": "markdown", + "id": "c8dd2509-cf86-4142-9173-6d22354ade30", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook deletes all schedulers in Naas Lab." + ] + }, + { + "cell_type": "markdown", + "id": "5836f7e0-b1ac-4cd8-9a0e-1fe833cd8afd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Removing a Scheduler](https://site.naas.ai/docs/framework/jobs/scheduler/#removing-a-schedule)\n", + "- [Naas Scheduler Documentation](https://site.naas.ai/docs/framework/jobs/scheduler)" + ] + }, + { + "cell_type": "markdown", + "id": "8880d1df-361d-4ecd-a535-54345f230e99", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "129e1121-27b2-4777-9c5a-b01b29e4710c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "082a8950-8c7e-42c0-9512-a4eb52253106", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import naas\n", + "import os" + ] + }, + { + "cell_type": "markdown", + "id": "edf74c54-11ea-4f44-a3fb-4cbd8947cec6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "bcd6d947-a016-4fde-97bd-90adda3b97e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### List all schedulers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58ae88f0-1ef6-417b-bec4-34f351c7d3b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = naas.scheduler.currents(raw=True)\n", + "print(\"Schedulers fetched:\", len(data))" + ] + }, + { + "cell_type": "markdown", + "id": "0583410b-9860-4051-9f21-f7a000799701", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "daee3229-303b-46fe-934b-6be433fb2511", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Delete all schedulers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43b7a658-ee3e-40a4-a9ac-37b0b7673c1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "for d in data:\n", + " file_name = d.get(\"path\")\n", + " file_path = f\"/home/ftp/{file_name}\"\n", + " \n", + " # Delele schedulers\n", + " naas.scheduler.delete(file_path)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "8c929e981ea24e0ea05c39e9bb399e341431ef3b5c9533df80b4292b78269a2f", + "notebook_path": "Naas/Naas_Delete_all_schedulers.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Naas/Naas_Dependency_demo.ipynb b/Naas/Naas_Dependency_demo.ipynb index 2b3c69862e..2815f023d8 100644 --- a/Naas/Naas_Dependency_demo.ipynb +++ b/Naas/Naas_Dependency_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Dependency demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "fc85e1f9-bd09-4090-bff6-dea7e79e50b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Doc_demo.ipynb b/Naas/Naas_Doc_demo.ipynb index 35baa7ce82..89d39339f0 100644 --- a/Naas/Naas_Doc_demo.ipynb +++ b/Naas/Naas_Doc_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Doc demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "4d4f145d-41f3-4057-8579-c21ce67fef46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Download_Content_Engine.ipynb b/Naas/Naas_Download_Content_Engine.ipynb index c4611aebf9..94188ccca8 100644 --- a/Naas/Naas_Download_Content_Engine.ipynb +++ b/Naas/Naas_Download_Content_Engine.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Download Content Engine\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "227c1d15-67da-43db-829b-2501b5b8d1da", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Emailbuilder_demo.ipynb b/Naas/Naas_Emailbuilder_demo.ipynb index a52f960de9..5e95660efc 100644 --- a/Naas/Naas_Emailbuilder_demo.ipynb +++ b/Naas/Naas_Emailbuilder_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Emailbuilder demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "fd4b3380-3c36-4417-9d4b-a01d5b304138", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Find_Asset_link_from_path.ipynb b/Naas/Naas_Find_Asset_link_from_path.ipynb index 56f1ba8c65..0f6b3301bb 100644 --- a/Naas/Naas_Find_Asset_link_from_path.ipynb +++ b/Naas/Naas_Find_Asset_link_from_path.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Find Asset link from path\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "76a78a0b-3633-498f-ad05-ccd06884620f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-04 (Created: 2023-05-04)" + ] + }, { "cell_type": "markdown", "id": "549cc679-7e12-46ff-82af-8a3bfea32fe4", diff --git a/Naas/Naas_Get_Transactions.ipynb b/Naas/Naas_Get_Transactions.ipynb index 6813224a7c..ee062910fa 100644 --- a/Naas/Naas_Get_Transactions.ipynb +++ b/Naas/Naas_Get_Transactions.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Get Transactions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "649babfc-951f-4f96-bc78-8e8089201282", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Get_help.ipynb b/Naas/Naas_Get_help.ipynb index 0fd28e2783..6db47b45a5 100644 --- a/Naas/Naas_Get_help.ipynb +++ b/Naas/Naas_Get_help.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Get help\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "c208a0fb-bf7f-4f69-866a-f853d0f73748", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb b/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb index 82fb909422..20f70f607c 100644 --- a/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb +++ b/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Get number of downloads naas drivers package\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "aa739bc6-4c0d-4c93-8968-80d385aeef38", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Get_number_of_downloads_naas_package.ipynb b/Naas/Naas_Get_number_of_downloads_naas_package.ipynb index fb5c09d65f..c8d662b5a9 100644 --- a/Naas/Naas_Get_number_of_downloads_naas_package.ipynb +++ b/Naas/Naas_Get_number_of_downloads_naas_package.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Get number of downloads naas package\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "de5cc874-174d-4604-a2b6-f9988019849c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Get_total_downloads_naas_libraries.ipynb b/Naas/Naas_Get_total_downloads_naas_libraries.ipynb index 9e1c21ade3..3210a25348 100644 --- a/Naas/Naas_Get_total_downloads_naas_libraries.ipynb +++ b/Naas/Naas_Get_total_downloads_naas_libraries.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Get total downloads naas libraries\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "e73cc97e-bf9c-4fc9-9ad9-8c2036596d5e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_List_Assets.ipynb b/Naas/Naas_List_Assets.ipynb index ce63341b30..de2f5a4e07 100644 --- a/Naas/Naas_List_Assets.ipynb +++ b/Naas/Naas_List_Assets.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Assets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "975cc962-f65b-4dfe-9d94-6d522cf1507d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-21)" + ] + }, { "cell_type": "markdown", "id": "3254dbc3-9bda-4c46-b502-60674af26293", diff --git a/Naas/Naas_List_Dependencies.ipynb b/Naas/Naas_List_Dependencies.ipynb index c16d2b0a07..645ab21953 100644 --- a/Naas/Naas_List_Dependencies.ipynb +++ b/Naas/Naas_List_Dependencies.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Dependencies\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1545e7c6-1dca-4be0-9b22-25f730b44f82", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "3254dbc3-9bda-4c46-b502-60674af26293", diff --git a/Naas/Naas_List_Schedulers.ipynb b/Naas/Naas_List_Schedulers.ipynb index d97cc0d437..286e76b454 100644 --- a/Naas/Naas_List_Schedulers.ipynb +++ b/Naas/Naas_List_Schedulers.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Schedulers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "37f9315d-2d8d-45bf-a213-706df4f09401", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-01 (Created: 2023-06-01)" + ] + }, { "cell_type": "markdown", "id": "446d152a-3b90-4758-820e-faa22f6bad72", diff --git a/Naas/Naas_List_Schedulers_with_all_executions.ipynb b/Naas/Naas_List_Schedulers_with_all_executions.ipynb index b1594d5b36..1e399a2019 100644 --- a/Naas/Naas_List_Schedulers_with_all_executions.ipynb +++ b/Naas/Naas_List_Schedulers_with_all_executions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Schedulers with all executions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "137e9d3e-92f2-472c-b35b-a29dbc083b2c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-01 (Created: 2023-06-01)" + ] + }, { "cell_type": "markdown", "id": "446d152a-3b90-4758-820e-faa22f6bad72", diff --git a/Naas/Naas_List_Schedulers_with_last_execution.ipynb b/Naas/Naas_List_Schedulers_with_last_execution.ipynb index a32556ba93..b702acad90 100644 --- a/Naas/Naas_List_Schedulers_with_last_execution.ipynb +++ b/Naas/Naas_List_Schedulers_with_last_execution.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Schedulers with last execution\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "626e313c-1464-40e9-975b-b4f06a0df7dd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-01 (Created: 2023-06-01)" + ] + }, { "cell_type": "markdown", "id": "446d152a-3b90-4758-820e-faa22f6bad72", diff --git a/Naas/Naas_List_Secrets.ipynb b/Naas/Naas_List_Secrets.ipynb index 32bdadbd50..a1c38ab964 100644 --- a/Naas/Naas_List_Secrets.ipynb +++ b/Naas/Naas_List_Secrets.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Secrets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "b7d387c3-e40a-4ca2-abc1-3ea93d9f9d9d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-27 (Created: 2023-04-27)" + ] + }, { "cell_type": "markdown", "id": "0b39429c-9853-4ea4-8a23-a48ac896e31f", diff --git a/Naas/Naas_List_Webhooks.ipynb b/Naas/Naas_List_Webhooks.ipynb index 54fc82defd..c71e8bf853 100644 --- a/Naas/Naas_List_Webhooks.ipynb +++ b/Naas/Naas_List_Webhooks.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - List Webhooks\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a589a2e4-c3c3-46df-811b-7f16973280ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-24)" + ] + }, { "cell_type": "markdown", "id": "b9e48137-29ad-40ac-a8c9-a3ee3345149a", diff --git a/Naas/Naas_Manage_Pipeline_Errors.ipynb b/Naas/Naas_Manage_Pipeline_Errors.ipynb index e2e38b8338..13f223e2a7 100644 --- a/Naas/Naas_Manage_Pipeline_Errors.ipynb +++ b/Naas/Naas_Manage_Pipeline_Errors.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Manage Pipeline Errors\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "6be34c95-0dbe-4bf7-a5b5-067b12a54326", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-25)" + ] + }, { "cell_type": "markdown", "id": "bf2e0f26-7fdf-4351-9209-8bb54c5ef7e9", diff --git a/Naas/Naas_NLP_Examples.ipynb b/Naas/Naas_NLP_Examples.ipynb index d7b4b36997..e36ef01956 100644 --- a/Naas/Naas_NLP_Examples.ipynb +++ b/Naas/Naas_NLP_Examples.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - NLP Examples\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "4ccefc36-d3c6-4a91-a5d4-8d8f0dfe314a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Notification_demo.ipynb b/Naas/Naas_Notification_demo.ipynb index f5f806f6e8..4a0572516e 100644 --- a/Naas/Naas_Notification_demo.ipynb +++ b/Naas/Naas_Notification_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Notification demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "03db06dd-ae00-42c7-8cc1-02a57e3a2cb8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-31)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb b/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb index 123281eb77..6a03a3bd70 100644 --- a/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb +++ b/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Remove Pipeline Executions Outputs\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "a87b2404-3ce4-4e45-a8e8-0885df9c54d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-24)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Naas/Naas_Remove_Scheduler_Outputs.ipynb b/Naas/Naas_Remove_Scheduler_Outputs.ipynb index 0342e6b026..820b38ab76 100644 --- a/Naas/Naas_Remove_Scheduler_Outputs.ipynb +++ b/Naas/Naas_Remove_Scheduler_Outputs.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Remove Scheduler Outputs\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "83fcd20c-e683-415b-8e10-d369fae5800a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Reset_Instance.ipynb b/Naas/Naas_Reset_Instance.ipynb index ffea3a6c13..609b12545e 100644 --- a/Naas/Naas_Reset_Instance.ipynb +++ b/Naas/Naas_Reset_Instance.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Naas - Reset Instance\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "0b0b54a7-754e-4ca6-b2c2-e973721e9a11", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Scheduler_demo.ipynb b/Naas/Naas_Scheduler_demo.ipynb index 600b895518..c644a0cc45 100644 --- a/Naas/Naas_Scheduler_demo.ipynb +++ b/Naas/Naas_Scheduler_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Scheduler demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "d626be46-0f1d-49e3-a171-ff629e0a87e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-06-28)" + ] + }, { "cell_type": "markdown", "id": "mounted-wrapping", diff --git a/Naas/Naas_Secret_demo.ipynb b/Naas/Naas_Secret_demo.ipynb index a761554c64..53b639adea 100644 --- a/Naas/Naas_Secret_demo.ipynb +++ b/Naas/Naas_Secret_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Secret demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "5f516e12-0a1e-431f-9612-a5645b1f4161", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-31)" + ] + }, { "cell_type": "markdown", "id": "equipped-diploma", diff --git a/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb b/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb index d26c4adb3d..8a666cd790 100644 --- a/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb +++ b/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Send Asset image to Notion page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f38b8cc4-b5f9-469f-96a7-c36b4b39293f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "e735dee3-8da5-4375-8dac-53698ba14871", diff --git a/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb b/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb index a5b2a820bb..678c5a2a44 100644 --- a/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb +++ b/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Send notifications from Google Sheets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "bfead142-dbb8-4fd4-a848-fca00bfb827f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-12 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Set_timezone.ipynb b/Naas/Naas_Set_timezone.ipynb index 2636798ce5..eb17102a3f 100644 --- a/Naas/Naas_Set_timezone.ipynb +++ b/Naas/Naas_Set_timezone.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Set timezone\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "ff15b374-6e49-494e-8d87-14d5bec19fbe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Start_data_product.ipynb b/Naas/Naas_Start_data_product.ipynb index 2e1b2db569..37b183ac67 100644 --- a/Naas/Naas_Start_data_product.ipynb +++ b/Naas/Naas_Start_data_product.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Start data product\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "70c6e312-cc72-47f0-b38d-d45df2649f64", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-11)" + ] + }, { "cell_type": "markdown", "id": "55aebec7-d8db-4ad1-8fa4-136e546ce940", diff --git a/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb b/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb index 279abbca28..dbcdd4f923 100644 --- a/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb +++ b/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Use SSH tunnel to reach network protected resources\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "44759ba2-806d-40cb-885c-70c4ba10f9ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Naas/Naas_Webhook_demo.ipynb b/Naas/Naas_Webhook_demo.ipynb index f0f804d32d..cdb28cff94 100644 --- a/Naas/Naas_Webhook_demo.ipynb +++ b/Naas/Naas_Webhook_demo.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Naas - Webhook demo\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "317f1d1d-1009-44ff-9785-a04b9ddd271b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-31)" + ] + }, { "cell_type": "markdown", "id": "bright-advocate", diff --git a/Neo/Neo_Get_currencies_live_prices.ipynb b/Neo/Neo_Get_currencies_live_prices.ipynb index abbce0d475..d3d15eb043 100644 --- a/Neo/Neo_Get_currencies_live_prices.ipynb +++ b/Neo/Neo_Get_currencies_live_prices.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Neo - Get currencies live prices\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "c30dcce6-bae5-4440-a3cc-b2a3d1fb058f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Newsapi/Newsapi_Get_data.ipynb b/Newsapi/Newsapi_Get_data.ipynb index 7fdad796db..95165f3017 100644 --- a/Newsapi/Newsapi_Get_data.ipynb +++ b/Newsapi/Newsapi_Get_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Newsapi - Get data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "a3d27ec3-7d88-4c17-b1f9-0279480ede11", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Newsapi/Newsapi_Run_sentiment_analysis.ipynb b/Newsapi/Newsapi_Run_sentiment_analysis.ipynb index 4cf0808b5a..724161b31a 100644 --- a/Newsapi/Newsapi_Run_sentiment_analysis.ipynb +++ b/Newsapi/Newsapi_Run_sentiment_analysis.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Newsapi - Run sentiment analysis\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "e52ca3be-7ea8-414a-ac4b-8adc780de3ec", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-10)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Newsapi/Newsapi_Send_emails_briefs.ipynb b/Newsapi/Newsapi_Send_emails_briefs.ipynb index fed7b91e65..12262cdc03 100644 --- a/Newsapi/Newsapi_Send_emails_briefs.ipynb +++ b/Newsapi/Newsapi_Send_emails_briefs.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Newsapi - Send emails briefs\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "8d1a61ab-29ee-4aaa-b365-fb0b2926bcfb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-10)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Add_bulleted_list_in_page.ipynb b/Notion/Notion_Add_bulleted_list_in_page.ipynb index 6c4a7292d8..6dcb7fb26a 100644 --- a/Notion/Notion_Add_bulleted_list_in_page.ipynb +++ b/Notion/Notion_Add_bulleted_list_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add bulleted list in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1cb51cfd-f9e2-4420-9081-4ff6a0a2c3e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-30 (Created: 2023-04-30)" + ] + }, { "cell_type": "markdown", "id": "b1c8845c-1f10-4783-a34d-75270ab49cce", diff --git a/Notion/Notion_Add_code_block_in_page.ipynb b/Notion/Notion_Add_code_block_in_page.ipynb index 3566448eef..92d6e6f97e 100644 --- a/Notion/Notion_Add_code_block_in_page.ipynb +++ b/Notion/Notion_Add_code_block_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add code block in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "75e99a31-8983-4c94-922a-3ae5d1f4e2d9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-30 (Created: 2023-04-30)" + ] + }, { "cell_type": "markdown", "id": "b1c8845c-1f10-4783-a34d-75270ab49cce", diff --git a/Notion/Notion_Add_cover_image_to_page.ipynb b/Notion/Notion_Add_cover_image_to_page.ipynb index 817f138491..c2f44d3d2d 100644 --- a/Notion/Notion_Add_cover_image_to_page.ipynb +++ b/Notion/Notion_Add_cover_image_to_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Add cover image to page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "8147d9f2-4169-449f-998d-30d9f43ac98a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Add_equation_in_page.ipynb b/Notion/Notion_Add_equation_in_page.ipynb index 66ec70151e..0dc117cb00 100644 --- a/Notion/Notion_Add_equation_in_page.ipynb +++ b/Notion/Notion_Add_equation_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add equation in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "be00a03e-cde3-4f93-9a12-7321e9d91d3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-30 (Created: 2023-04-30)" + ] + }, { "cell_type": "markdown", "id": "b1c8845c-1f10-4783-a34d-75270ab49cce", diff --git a/Notion/Notion_Add_heading_in_page.ipynb b/Notion/Notion_Add_heading_in_page.ipynb index 9dac529e88..fd04cbef63 100644 --- a/Notion/Notion_Add_heading_in_page.ipynb +++ b/Notion/Notion_Add_heading_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add heading in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "af5e8cdc-1c11-4376-b9c6-fffbcc9528c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-30 (Created: 2023-04-30)" + ] + }, { "cell_type": "markdown", "id": "b1c8845c-1f10-4783-a34d-75270ab49cce", diff --git a/Notion/Notion_Add_icon_image_to_page.ipynb b/Notion/Notion_Add_icon_image_to_page.ipynb index cd2500d0ec..aff41099ef 100644 --- a/Notion/Notion_Add_icon_image_to_page.ipynb +++ b/Notion/Notion_Add_icon_image_to_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Add icon image to page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "4718cf52-3f67-45c7-a4c7-bed5cf27e7c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb b/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb index ca6cc349bc..6b36a3303c 100644 --- a/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb +++ b/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add new github member to team from database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)\n" ] }, + { + "cell_type": "markdown", + "id": "9636d136-8ed1-4ef9-a233-cca1a4beb130", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Add_numbered_list_in_page.ipynb b/Notion/Notion_Add_numbered_list_in_page.ipynb index 8f3e6b75e9..276d90443d 100644 --- a/Notion/Notion_Add_numbered_list_in_page.ipynb +++ b/Notion/Notion_Add_numbered_list_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add numbered list in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c3452d56-221a-4474-b6f2-e7011496fee3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-30 (Created: 2023-04-30)" + ] + }, { "cell_type": "markdown", "id": "b1c8845c-1f10-4783-a34d-75270ab49cce", diff --git a/Notion/Notion_Add_paragraph_with_link_in_page.ipynb b/Notion/Notion_Add_paragraph_with_link_in_page.ipynb index b347d68303..fa4630328e 100644 --- a/Notion/Notion_Add_paragraph_with_link_in_page.ipynb +++ b/Notion/Notion_Add_paragraph_with_link_in_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Add paragraph with link in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "884d8248-26e5-4d7d-810e-8164294890f3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-17)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Add_to_do_list_in_page.ipynb b/Notion/Notion_Add_to_do_list_in_page.ipynb index beca4174ed..f11c8e4aaa 100644 --- a/Notion/Notion_Add_to_do_list_in_page.ipynb +++ b/Notion/Notion_Add_to_do_list_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Add to do list in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "2470d8c3-2049-4653-aff4-27ba7590b0e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-28 (Created: 2023-04-28)" + ] + }, { "cell_type": "markdown", "id": "4547507e-8c0c-424a-83da-990f87139005", diff --git a/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb b/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb index 48427e9377..f1a70af5e4 100644 --- a/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb +++ b/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Automate transcript generation from recording link in page property\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "9a2b8396-8057-4ffa-a5e8-6582e878ad81", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Create_page.ipynb b/Notion/Notion_Create_page.ipynb index b9fcd96b63..811e53110c 100644 --- a/Notion/Notion_Create_page.ipynb +++ b/Notion/Notion_Create_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Create page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "dd28407e-5b0b-4fc5-814c-3121f684fe73", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-13)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb b/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb index 40740a1b05..b135d0a759 100644 --- a/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb +++ b/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Create pages in database from dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "430c5af5-6b68-45c6-a653-03904d6a597b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-15)" + ] + }, { "cell_type": "markdown", "id": "a527fb01-5c49-4ee9-ba30-46a94c4cb88f", diff --git a/Notion/Notion_Delete_all_pages_from_database.ipynb b/Notion/Notion_Delete_all_pages_from_database.ipynb index c9e81c5da5..800552c702 100644 --- a/Notion/Notion_Delete_all_pages_from_database.ipynb +++ b/Notion/Notion_Delete_all_pages_from_database.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Delete all pages from database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "80ab4904-7336-4096-b24e-7c9a97540b37", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-24)" + ] + }, { "cell_type": "markdown", "id": "9e9b4036-b5d9-40af-bdfa-3dbc40691338", diff --git a/Notion/Notion_Delete_blocks_from_page.ipynb b/Notion/Notion_Delete_blocks_from_page.ipynb index cc728cc1df..6d919b24a9 100644 --- a/Notion/Notion_Delete_blocks_from_page.ipynb +++ b/Notion/Notion_Delete_blocks_from_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Delete blocks from page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "53187041-68f3-4116-a65d-cd7ed5a00fc7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Delete_page.ipynb b/Notion/Notion_Delete_page.ipynb index ba460c1ebe..5d63ed68ed 100644 --- a/Notion/Notion_Delete_page.ipynb +++ b/Notion/Notion_Delete_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Delete page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "43d23389-9009-4e0e-b5cb-95ce6b5ac8d9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Duplicate_page.ipynb b/Notion/Notion_Duplicate_page.ipynb index 2cd8979c7f..d038b124dd 100644 --- a/Notion/Notion_Duplicate_page.ipynb +++ b/Notion/Notion_Duplicate_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Duplicate page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "17ae339d-4d8d-48a4-91a3-3fd51b71a630", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-26)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Explore_API.ipynb b/Notion/Notion_Explore_API.ipynb index 111450b55c..478c5188d1 100644 --- a/Notion/Notion_Explore_API.ipynb +++ b/Notion/Notion_Explore_API.ipynb @@ -23,7 +23,7 @@ }, "source": [ "# Notion - Explore API\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -48,6 +48,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "3faf360e-141e-4f85-a901-49cb55ed21fd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb b/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb index 0a4dabb219..0880910fc4 100644 --- a/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb +++ b/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Generate Google Sheets rows for new items in database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Pooja Srivastava](https://www.linkedin.com/in/pooja-srivastava-in/)" ] }, + { + "cell_type": "markdown", + "id": "6f80ae22-ab4d-4def-b3e3-5c53c699600f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Get_blocks_from_page.ipynb b/Notion/Notion_Get_blocks_from_page.ipynb index 4019afc203..59d33245de 100644 --- a/Notion/Notion_Get_blocks_from_page.ipynb +++ b/Notion/Notion_Get_blocks_from_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Get blocks from page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "8c1a1672-8a64-40b6-9e7e-d5c387e77256", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Get_database.ipynb b/Notion/Notion_Get_database.ipynb index 24c31fb480..6d8312c49b 100644 --- a/Notion/Notion_Get_database.ipynb +++ b/Notion/Notion_Get_database.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Get database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "ce845437-6805-4f84-81a5-9bd84e590819", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-23)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Get_page.ipynb b/Notion/Notion_Get_page.ipynb index d0fbc20b1d..29d35f4eec 100644 --- a/Notion/Notion_Get_page.ipynb +++ b/Notion/Notion_Get_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Get page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c3d2af38-2678-42ff-a656-ee106075cc6c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Get_users.ipynb b/Notion/Notion_Get_users.ipynb index 667497d234..c4e4d4b10e 100644 --- a/Notion/Notion_Get_users.ipynb +++ b/Notion/Notion_Get_users.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Get users\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "0c303fd6-1531-4efe-b7a8-a86e3f128c81", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb b/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb index e8b3934acc..280716551d 100644 --- a/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb +++ b/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Send LinkedIn invitations from database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "33e84429-91cc-4a4d-a30a-68c091ea8393", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb b/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb index 4552b62686..29db0e32a5 100644 --- a/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb +++ b/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Send Slack Messages For New Database Items\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "- For this use case we need to create & use user token, rather than bot token with the following permissions/scopes -> [channels: history, channels: read, chat: write, users: read]" ] }, + { + "cell_type": "markdown", + "id": "fa15cd87-bdd1-44ca-bff6-2db4345d6a37", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-31)" + ] + }, { "cell_type": "markdown", "id": "bc22a4ad", diff --git a/Notion/Notion_Sent_Gmail_On_New_Item.ipynb b/Notion/Notion_Sent_Gmail_On_New_Item.ipynb index 3cd9f79ba0..e5f8ad0cac 100644 --- a/Notion/Notion_Sent_Gmail_On_New_Item.ipynb +++ b/Notion/Notion_Sent_Gmail_On_New_Item.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Sent Gmail On New Item\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Arun K C](https://www.linkedin.com/in/arun-kc/)" ] }, + { + "cell_type": "markdown", + "id": "0ed0b894-305a-4111-b3a9-f757aa448da9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-01-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb b/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb index c3e0d8dd2c..32a2305685 100644 --- a/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb +++ b/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Update database with GitHub repositories info\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "079a6423-01c0-412e-8dd4-3ae21e5cddc6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-13 (Created: 2023-04-12)" + ] + }, { "cell_type": "markdown", "id": "8db0c2aa-ff3f-42ba-807c-2221129f3c61", diff --git a/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb b/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb index 2aa816a46e..eb2675d36f 100644 --- a/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb +++ b/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Update database with LinkedIn company info\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e5437820-add0-4a13-a553-0b3dd71c5674", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-13 (Created: 2023-04-07)" + ] + }, { "cell_type": "markdown", "id": "eb57fcb4-94d9-4cf9-a8fb-cd93e008795c", diff --git a/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb b/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb index 9824ee9c32..d1c1d57786 100644 --- a/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb +++ b/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Update database with LinkedIn profile info\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "31d1abd6-b56e-4a6f-bddb-d7f745bd604c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-13 (Created: 2023-04-13)" + ] + }, { "cell_type": "markdown", "id": "eb57fcb4-94d9-4cf9-a8fb-cd93e008795c", diff --git a/Notion/Notion_Update_page.ipynb b/Notion/Notion_Update_page.ipynb index 05197abb86..269d402213 100644 --- a/Notion/Notion_Update_page.ipynb +++ b/Notion/Notion_Update_page.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Update page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "a4c4fab5-acff-4988-b258-66a3e0e0fc81", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Update_page_relation.ipynb b/Notion/Notion_Update_page_relation.ipynb index e5a1f1dfae..0bc429f457 100644 --- a/Notion/Notion_Update_page_relation.ipynb +++ b/Notion/Notion_Update_page_relation.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Update page relation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "1b581be7-2f46-4854-a6ff-94c25698e3be", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-24 (Created: 2023-04-24)" + ] + }, { "cell_type": "markdown", "id": "3dd99dd5-806c-4b95-8c65-97258f5825f0", diff --git a/Notion/Notion_Update_pages_from_database.ipynb b/Notion/Notion_Update_pages_from_database.ipynb index 2c6f8800ac..8cee78e14f 100644 --- a/Notion/Notion_Update_pages_from_database.ipynb +++ b/Notion/Notion_Update_pages_from_database.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Notion - Update pages from database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "5f7cc50f-c0fd-44c5-9d38-e26b3b4337ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Notion/Notion_Upload_PDF_in_page.ipynb b/Notion/Notion_Upload_PDF_in_page.ipynb index 5a37bc8f84..44139b78e5 100644 --- a/Notion/Notion_Upload_PDF_in_page.ipynb +++ b/Notion/Notion_Upload_PDF_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Upload PDF in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "cee3b808-0dc1-4f13-8194-07cbf676d2e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-28 (Created: 2023-04-28)" + ] + }, { "cell_type": "markdown", "id": "4547507e-8c0c-424a-83da-990f87139005", diff --git a/Notion/Notion_Upload_image_in_page.ipynb b/Notion/Notion_Upload_image_in_page.ipynb index eea27f6c98..4f645707ab 100644 --- a/Notion/Notion_Upload_image_in_page.ipynb +++ b/Notion/Notion_Upload_image_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Upload image in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "9f6ce5f4-872d-4c45-8091-6c63dd87c8df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-28 (Created: 2023-04-28)" + ] + }, { "cell_type": "markdown", "id": "4547507e-8c0c-424a-83da-990f87139005", diff --git a/Notion/Notion_Upload_video_in_page.ipynb b/Notion/Notion_Upload_video_in_page.ipynb index 6cdac31727..634fa5c122 100644 --- a/Notion/Notion_Upload_video_in_page.ipynb +++ b/Notion/Notion_Upload_video_in_page.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Notion - Upload video in page\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "7ed8a9f3-ea64-4355-9ed8-4c1031296329", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-28 (Created: 2023-04-28)" + ] + }, { "cell_type": "markdown", "id": "4547507e-8c0c-424a-83da-990f87139005", diff --git a/OS/OS_Access_environment_variable.ipynb b/OS/OS_Access_environment_variable.ipynb index b2c9009feb..274c11a2f4 100644 --- a/OS/OS_Access_environment_variable.ipynb +++ b/OS/OS_Access_environment_variable.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - Access environment variable\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "185b5031-6897-43ac-9073-49f6a5bacb46", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-05 (Created: 2023-06-05)" + ] + }, { "cell_type": "markdown", "id": "ec95cb57-b363-4e5e-b4ad-bd914fd5ebe1", diff --git a/OS/OS_Add_new_environment_variable.ipynb b/OS/OS_Add_new_environment_variable.ipynb index ef3ac8a3d1..703d0d75c1 100644 --- a/OS/OS_Add_new_environment_variable.ipynb +++ b/OS/OS_Add_new_environment_variable.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - Add new environment variable\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "80413189-74c9-4f15-b72b-cafc7185cc3d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-05 (Created: 2023-06-05)" + ] + }, { "cell_type": "markdown", "id": "ec95cb57-b363-4e5e-b4ad-bd914fd5ebe1", diff --git a/OS/OS_Check_path_exist.ipynb b/OS/OS_Check_path_exist.ipynb index 01617f0aae..54d511969a 100644 --- a/OS/OS_Check_path_exist.ipynb +++ b/OS/OS_Check_path_exist.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - Check path exist\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "333781a8-a1f2-429e-8bbf-9931a668a8e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-08 (Created: 2023-06-08)" + ] + }, { "cell_type": "markdown", "id": "2c46f996-46e9-4155-ab5b-5f49fb5ff052", diff --git a/OS/OS_Create_directory.ipynb b/OS/OS_Create_directory.ipynb index 89dc877ddd..99c5513414 100644 --- a/OS/OS_Create_directory.ipynb +++ b/OS/OS_Create_directory.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OS - Create directory\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Moemen Ebdelli](https://www.linkedin.com/in/moemen-ebdelli)" ] }, + { + "cell_type": "markdown", + "id": "2f479b5e-d314-4f12-85a7-3cb6ae09b101", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/OS/OS_Get_access_of_environment_variables.ipynb b/OS/OS_Get_access_of_environment_variables.ipynb index ec363be96d..9c45a8873b 100644 --- a/OS/OS_Get_access_of_environment_variables.ipynb +++ b/OS/OS_Get_access_of_environment_variables.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - Get access of environment variables\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f60b95fa-2fc8-4236-a984-b058d1fd416b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-05 (Created: 2023-06-05)" + ] + }, { "cell_type": "markdown", "id": "ec95cb57-b363-4e5e-b4ad-bd914fd5ebe1", diff --git a/OS/OS_Get_current_working_directory.ipynb b/OS/OS_Get_current_working_directory.ipynb index 1fa6d45912..9d50d613d4 100644 --- a/OS/OS_Get_current_working_directory.ipynb +++ b/OS/OS_Get_current_working_directory.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - Get current working directory\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "375f9a9d-8f7f-496f-b6d3-92ab361f022a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-05 (Created: 2023-06-05)" + ] + }, { "cell_type": "markdown", "id": "791185fe-ac12-4624-ae7f-3e9aae53a212", diff --git a/OS/OS_Get_folder_stats.ipynb b/OS/OS_Get_folder_stats.ipynb new file mode 100644 index 0000000000..8a330adfa3 --- /dev/null +++ b/OS/OS_Get_folder_stats.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a0f034b8-880d-4dce-b2c5-8e60e2912ef4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "e925a816-a97e-425e-b476-119cd3875ae6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OS - Get folder stats\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "03370f04-0525-4195-afa0-72b07021c01a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #os #folder #stats #python #library #filesystem" + ] + }, + { + "cell_type": "markdown", + "id": "de3ebab1-65ec-4306-bb76-3d393366af08", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "daf2cd1d-d061-4fab-a33b-6580cd6dfe29", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-05 (Created: 2023-07-05)" + ] + }, + { + "cell_type": "markdown", + "id": "660531d7-0f6b-4659-a2be-bf9e3d2b65f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will get the stats of a folder and its content." + ] + }, + { + "cell_type": "markdown", + "id": "893fbfbe-a157-4d55-b5ad-11c9012fd217", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python OS Library](https://docs.python.org/3/library/os.html)" + ] + }, + { + "cell_type": "markdown", + "id": "2432aaac-1627-44d6-a61a-a7c9740c3380", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "72b33a05-d59d-419f-a9da-554e3e577ea2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e4f96b24-a834-41fe-b715-bb55332184f1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "from datetime import datetime" + ] + }, + { + "cell_type": "markdown", + "id": "5b36f9bf-6579-4315-afd0-0197019f2a52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `folder_path`: Path of the folder to get stats from" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "10ad2ea6-6f48-4406-ba0c-ca0dce0db1f5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "folder_path = \"./\"" + ] + }, + { + "cell_type": "markdown", + "id": "1599a0de-d989-4f6c-a9fb-d7dfb465abc5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "76bb8d3d-f19b-4aff-822c-1beb8b6ac994", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get folder stats" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "eecc8b1a-ee9e-421c-b4c6-7c212e335fee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Get the metadata of the folder\n", + "folder_stat = os.stat(folder_path)\n", + "\n", + "# Extract the relevant information from the metadata\n", + "folder_size = folder_stat.st_size\n", + "folder_permissions = folder_stat.st_mode\n", + "folder_owner = folder_stat.st_uid\n", + "folder_group = folder_stat.st_gid\n", + "folder_creation_time = folder_stat.st_ctime\n", + "folder_modification_time = folder_stat.st_mtime\n", + "\n", + "# Convert timestamp to a datetime object to a formatted date string\n", + "folder_creation_time = datetime.fromtimestamp(folder_creation_time).strftime('%Y-%m-%d %H:%M:%S')\n", + "folder_modification_time = datetime.fromtimestamp(folder_modification_time).strftime('%Y-%m-%d %H:%M:%S')" + ] + }, + { + "cell_type": "markdown", + "id": "e17c0f9c-06ca-4e37-8fe6-9b9008c016f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "b5ab4cde-0f79-4d7f-9637-d74a4f8b3eca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "323f4db8-3824-4e0a-b369-792d4f17fd90", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Print the folder metadata\n", + "print(f\"Folder Size: {folder_size} bytes\")\n", + "print(f\"Folder Permissions: {folder_permissions:o}\")\n", + "print(f\"Folder Owner: {folder_owner}\")\n", + "print(f\"Folder Group: {folder_group}\")\n", + "print(f\"Folder Creation Time: {folder_creation_time}\")\n", + "print(f\"Folder Modification Time: {folder_modification_time}\")" + ] + }, + { + "cell_type": "markdown", + "id": "07470443-05a7-4984-a043-963c67eef90b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "9527abdf0d80d051bbee0006c3948f220d4254591ef205fbd310d2e5f672e8e3", + "notebook_path": "OS/OS_Get_folder_stats.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OS/OS_List_entries_in_directory.ipynb b/OS/OS_List_entries_in_directory.ipynb index fc7246d140..9f207755cc 100644 --- a/OS/OS_List_entries_in_directory.ipynb +++ b/OS/OS_List_entries_in_directory.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - List entries in directory\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "2b31f2a3-e7f1-4bf0-a7c6-94092fefc7cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-13 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "ae633511-0455-4f2e-9673-a4f4aa01ddff", diff --git a/OS/OS_Remove_file.ipynb b/OS/OS_Remove_file.ipynb index 4f0ceac973..dee667cd41 100644 --- a/OS/OS_Remove_file.ipynb +++ b/OS/OS_Remove_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OS - Remove file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "2cf306d0-ab2c-4204-8078-f91980796c94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "2c46f996-46e9-4155-ab5b-5f49fb5ff052", diff --git a/OS/OS_Rename_file.ipynb b/OS/OS_Rename_file.ipynb index f0af06533f..7a2198be3f 100644 --- a/OS/OS_Rename_file.ipynb +++ b/OS/OS_Rename_file.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OS - Rename file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Divakar](https://www.linkedin.com/in/divakar-r-9b34b86b/)" ] }, + { + "cell_type": "markdown", + "id": "3e9a6190-4284-402f-8bd8-767cd5cba343", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "4ee51ccb-052d-4d96-801b-4c5463e1d1f0", diff --git a/OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb b/OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb new file mode 100644 index 0000000000..e0b96996d8 --- /dev/null +++ b/OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb @@ -0,0 +1,374 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize GDP per capita through the years\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's GDP per capita data. The values are calculated by taking the expenditure-side real GDP at chained PPPs and dividing by the population." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://www.rug.nl/ggdc/productivity/pwt/?lang=en\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "30df1df1-ef56-43c8-9c1c-2e790674faba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://dataverse.nl/api/access/datafile/354095\"\n", + "title = \"GDP per capita\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"GDP per capita\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_excel(url, sheet_name=\"Data\")\n", + "new_column = []\n", + "for i in range(len(contents_df)):\n", + " if contents_df.iloc[i,4] == np.nan:\n", + " new_column.append(0)\n", + " else:\n", + " new_column.append(contents_df.iloc[i,4]/contents_df.iloc[i,6])\n", + "new_dict = {\"Country\": contents_df[\"country\"],\n", + " \"Year\": contents_df[\"year\"],\n", + " \"gdp\": new_column}\n", + "new_df = pd.DataFrame(data=new_dict)" + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash App" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "p = \"gdp\"\n", + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"GDP per capita from 1950 to 2019\"),\n", + " html.P(\"Select countries\"),\n", + " dcc.Dropdown(\n", + " id=\"countries\",\n", + " options=new_df.Country.unique(),\n", + " value=[\"United States\"],\n", + " multi = True\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1950, max=2019, value=[1950, 2019],\n", + " marks={x: str(x) for x in [1950, 1965, 1980, 1995, 2010, 2019]}),\n", + " dcc.Graph(id=p, figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@app.callback(\n", + " Output(p, 'figure'),\n", + " Output(p, 'style'),\n", + " Input('countries', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " dff = (new_df[\"Country\"].isin(country)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0])\n", + " figures = px.line(new_df[dff], x='Year', y=p, color = \"Country\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600\n", + " )\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b536a539006dced496f5dee0a0054d535f4880f440631c3b26f6f8d5f626c7d6", + "notebook_path": "OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_Human_Development_Index.ipynb b/OWID/OWID_Visualize_Human_Development_Index.ipynb new file mode 100644 index 0000000000..e22da562be --- /dev/null +++ b/OWID/OWID_Visualize_Human_Development_Index.ipynb @@ -0,0 +1,363 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize Human Development Index\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #owid #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-07 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's HDI data." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://github.com/owid/owid-datasets/tree/master/datasets/Human%20Development%20Index%20-%20UNDP\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "45856096-b047-400c-aaaf-075cdf471838", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/Human%20Development%20Index%20-%20UNDP/Human%20Development%20Index%20-%20UNDP.csv\"\n", + "title = \"Human Development Index\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"Human Development Index\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_csv(url, header = 0) " + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash app" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Human Development Index up to 2017\"),\n", + " html.P(\"Select country\"),\n", + " dcc.Dropdown(\n", + " id=\"country\",\n", + " options= contents_df.Entity.unique(),\n", + " value=\"United States\"\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1980, max=2017, value=[1980, 2017],\n", + " marks={x: str(x) for x in [1980, 1987, 1994, 2001, 2008, 2017]}),\n", + " dcc.Graph(id=\"Human Development Index (UNDP)\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"Human Development Index (UNDP)\", 'figure'),\n", + " Output(\"Human Development Index (UNDP)\", 'style'),\n", + " Input('country', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " country_list = [country]\n", + " dff = (contents_df[\"Entity\"].isin(country_list)) & (contents_df[\"Year\"] <= year[1]) & (contents_df[\"Year\"] >= year[0])\n", + " \n", + " figures = px.line(contents_df[dff], x='Year', y=\"Human Development Index (UNDP)\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600)\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "6e7757204de2a51a6e8288197ddf9daa841e3eb0df0cbf09e51e26d7ed655035", + "notebook_path": "OWID/OWID_Visualize_Human_Development_Index.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb b/OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb new file mode 100644 index 0000000000..a598062779 --- /dev/null +++ b/OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb @@ -0,0 +1,380 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7aa3dcc1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "6cfd1dc6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize oil consumption throughout the years\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e91d5cd4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "43ee703f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "49ab8379-c861-4557-b103-4198de661b93", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-26 (Created: 2023-06-26)" + ] + }, + { + "cell_type": "markdown", + "id": "155d452e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's oil consumption data." + ] + }, + { + "cell_type": "markdown", + "id": "7b71b730", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://ourworldindata.org/grapher/oil-consumption-by-country?tab=chart&time=earliest..latest\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "852d4006", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "1cf7568c-35bd-445c-856e-71f71ba817ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6ec8266d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "bd3ffd05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c16b8c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://www.bp.com/content/dam/bp/business-sites/en/global/corporate/xlsx/energy-economics/statistical-review/bp-stats-review-2022-all-data.xlsx\"\n", + "title = \"Oil consumption\"" + ] + }, + { + "cell_type": "markdown", + "id": "39e80975", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "d8ed9cfc-62fb-489b-a968-e34bbd4c8028", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5709f750", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "# app = dash.Dash(title = \"Oil consumption\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "90fe0d5c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "472f87fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_excel(url, sheet_name = \"Oil Consumption - EJ\", header = 2)\n", + "contents_df = contents_df.drop([0,5,18,54,64,86,106,111,112,113,114,115,116,117,118,119]) # Drop unnecessary rows\n", + "contents_df = contents_df.reset_index(drop=True)\n", + "contents_df[\"Exajoules\"] = contents_df[\"Exajoules\"].replace([\"of which: OECD\"], \"OECD\")\n", + "entity = [] # Lists to create a new dataframe\n", + "year = []\n", + "oil_consumption = []\n", + "for i in range(len(contents_df)):\n", + " for j in range(57):\n", + " entity.append(contents_df.iloc[i,0])\n", + " year.append(1965+j)\n", + " oil_consumption.append(contents_df.iloc[i,j+1])\n", + "new_dict = {\"Entity\": entity,\n", + " \"Year\": year,\n", + " \"oil_consumption\": oil_consumption}\n", + "new_df = pd.DataFrame(data=new_dict)" + ] + }, + { + "cell_type": "markdown", + "id": "b38b6390", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash App" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33e64c4a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "p = \"oil_consumption\"\n", + "app.layout = html.Div(\n", + " [\n", + " html.H3(\"Oil consumption\"),\n", + " html.P(\"Oil consumption is measured in terawatt-hour (TWh) equivalents per year.\"),\n", + " dcc.Dropdown(\n", + " id=\"countries\",\n", + " options=new_df.Entity.unique(),\n", + " value=[\"US\", \"China\", \"Canada\", \"United Kingdom\", \"Australia\", \"South Africa\", \"Norway\"],\n", + " multi = True\n", + " ),\n", + " dcc.Graph(id=p, figure={}, style={'display': 'none'}),\n", + " dcc.RangeSlider(id='slider', min=1965, max=2021, value=[1965, 2021],\n", + " marks={x: str(x) for x in [1965, 1975, 1985, 1995, 2005, 2021]}),\n", + " html.P('Source: Statistical Review of World Energy - BP (2022)')\n", + " ],\n", + " style={'padding': '40px'}\n", + ")\n", + "\n", + "@callback(\n", + " Output(p, 'figure'),\n", + " Output(p, 'style'),\n", + " Input('countries', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " dff = (new_df[\"Entity\"].isin(country)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0])\n", + " figures = px.line(new_df[dff], x='Year', y=p, color = \"Entity\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600\n", + " )\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "91587dfb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "63011f3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c712cb7d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8bf9612c-6302-474e-9950-e599a75ff9f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "efd4c086cffe158c960a2bc7ea8dc9f71663b0deca619bccc47ec7ce81729245", + "notebook_path": "OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb b/OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb new file mode 100644 index 0000000000..2c37cb4cd8 --- /dev/null +++ b/OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb @@ -0,0 +1,559 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "12f70955", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "eda38e5e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize Population of Different Age Groups\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e2d4cef3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "1edaba32", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "77a457d7-aa2a-4b48-959b-9b0672c59ba4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-04 (Created: 2023-07-12)" + ] + }, + { + "cell_type": "markdown", + "id": "371b301c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's popultion by age group data." + ] + }, + { + "cell_type": "markdown", + "id": "faff9224", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://ourworldindata.org/grapher/population-by-age-group-with-projections\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "9f37978d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "5125d5b6-c7e5-4d77-b9ed-7f2f461bb865", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d634fde7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "665854f7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "929e8701", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://population.un.org/wpp/Download/Files/1_Indicators%20(Standard)/EXCEL_FILES/2_Population/WPP2022_POP_F02_1_POPULATION_5-YEAR_AGE_GROUPS_BOTH_SEXES.xlsx\"\n", + "title = \"Population composition\"" + ] + }, + { + "cell_type": "markdown", + "id": "0159d636", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "fd320203-ba56-482b-bd94-774927ce1c7a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5f389ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "# app = dash.Dash(title = \"Population composition\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "3d2b5196", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get data from estimates up to 2021" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0a313d1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_excel(url, sheet_name = \"Estimates\", header = 16) \n", + "contents_df = contents_df.drop([72, 649, 1154, 1587])\n", + "contents_df = contents_df.reset_index(drop=True)# Clean Data\n", + "entity = contents_df[\"Region, subregion, country or area *\"]\n", + "year = contents_df[\"Year\"]" + ] + }, + { + "cell_type": "markdown", + "id": "c779814c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Sort Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ebc0424", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "under_five = contents_df[\"0-4\"]*1000 # sort out the data\n", + "under_fifteen = under_five.add(contents_df[\"5-9\"]*1000).add(contents_df[\"10-14\"]*1000)\n", + "under_twenty_five = under_fifteen.add(contents_df[\"15-19\"]*1000).add(contents_df[\"20-24\"]*1000)\n", + "twenty_five_to_sixty_four = (contents_df[\"25-29\"].add(contents_df[\"30-34\"]).add(contents_df[\"35-39\"]).add(contents_df[\"40-44\"]).add(contents_df[\"45-49\"]).add(contents_df[\"50-54\"]).add(contents_df[\"55-59\"]).add(contents_df[\"60-64\"]))*1000\n", + "sixty_five_plus = (contents_df[\"65-69\"].add(contents_df[\"70-74\"]).add(contents_df[\"75-79\"]).add(contents_df[\"80-84\"]).add(contents_df[\"85-89\"]).add(contents_df[\"90-94\"]).add(contents_df[\"95-99\"]).add(contents_df[\"100+\"]))*1000\n", + "total = under_twenty_five.add(twenty_five_to_sixty_four).add(sixty_five_plus) " + ] + }, + { + "cell_type": "markdown", + "id": "a09e46b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get data from medium projections from 2022 to 2100" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bc0d7a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df1 = pd.read_excel(url, sheet_name = \"Medium variant\", header = 16)\n", + "contents_df1 = contents_df1.drop([79, 712, 1266, 1741])\n", + "contents_df1 = contents_df1.reset_index(drop=True)\n", + "entity_1 = contents_df1[\"Region, subregion, country or area *\"]\n", + "year_1 = contents_df1[\"Year\"]\n", + "under_five1 = contents_df1[\"0-4\"]*1000\n", + "under_fifteen1 = under_five1.add(contents_df1[\"5-9\"]*1000).add(contents_df1[\"10-14\"]*1000)\n", + "under_twenty_five1 = under_fifteen1.add(contents_df1[\"15-19\"]*1000).add(contents_df1[\"20-24\"]*1000)\n", + "twenty_five_to_sixty_four1 = (contents_df1[\"25-29\"].add(contents_df1[\"30-34\"]).add(contents_df1[\"35-39\"]).add(contents_df1[\"40-44\"]).add(contents_df1[\"45-49\"]).add(contents_df1[\"50-54\"]).add(contents_df1[\"55-59\"]).add(contents_df1[\"60-64\"]))*1000\n", + "sixty_five_plus1 = (contents_df1[\"65-69\"].add(contents_df1[\"70-74\"]).add(contents_df1[\"75-79\"]).add(contents_df1[\"80-84\"]).add(contents_df1[\"85-89\"]).add(contents_df1[\"90-94\"]).add(contents_df1[\"95-99\"]).add(contents_df1[\"100+\"]))*1000\n", + "total1 = under_twenty_five1.add(twenty_five_to_sixty_four1).add(sixty_five_plus1)" + ] + }, + { + "cell_type": "markdown", + "id": "b4da3ad5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Combining the data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79ce54e5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "new_entity = pd.concat([entity, entity_1])\n", + "new_year = pd.concat([year, year_1])\n", + "new_under_five = pd.concat([under_five, under_five1])\n", + "new_under_fifteen = pd.concat([under_fifteen, under_fifteen1])\n", + "new_under_twenty_five = pd.concat([under_twenty_five, under_twenty_five1])\n", + "new_twenty_five_to_sixty_four = pd.concat([twenty_five_to_sixty_four, twenty_five_to_sixty_four1])\n", + "new_sixty_five_plus = pd.concat([sixty_five_plus, sixty_five_plus1])\n", + "new_total = pd.concat([total, total1])\n", + "new_total = new_total.reset_index(drop=True)\n", + "new_entity = new_entity.reset_index(drop=True)\n", + "new_year = new_year.reset_index(drop=True)\n", + "new_under_five = new_under_five.reset_index(drop=True)\n", + "new_under_fifteen = new_under_fifteen.reset_index(drop = True)\n", + "new_under_twenty_five = new_under_twenty_five.reset_index(drop = True)\n", + "new_twenty_five_to_sixty_four = new_twenty_five_to_sixty_four.reset_index(drop = True)\n", + "new_sixty_five_plus = new_sixty_five_plus.reset_index(drop = True)" + ] + }, + { + "cell_type": "markdown", + "id": "adf15ed6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create a brand new dataframe to help plotting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5db1de4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "categories = []\n", + "categories1 = []\n", + "categories2 = []\n", + "categories3 = []\n", + "categories4 = []\n", + "categories5 = []\n", + "for i in range(len(new_entity)):\n", + " categories.append(\"Under 5\")\n", + " categories1.append(\"Under 15\")\n", + " categories2.append(\"Under 25\")\n", + " categories3.append(\"25-64\")\n", + " categories4.append(\"65+\")\n", + " categories5.append(\"Total\")\n", + " \n", + "new_dict = {\"Entity\": new_entity,\n", + " \"Year\": new_year,\n", + " \"Categories\": categories,\n", + " \"Population\": new_under_five}\n", + "new_df = pd.DataFrame(data=new_dict)\n", + "\n", + "new_dict1 = {\"Entity\": new_entity,\n", + " \"Year\": new_year,\n", + " \"Categories\": categories1,\n", + " \"Population\": new_under_fifteen}\n", + "new_df1 = pd.DataFrame(data=new_dict1)\n", + "\n", + "new_dict2 = {\"Entity\": new_entity,\n", + " \"Year\": new_year,\n", + " \"Categories\": categories2,\n", + " \"Population\": new_under_twenty_five}\n", + "new_df2 = pd.DataFrame(data=new_dict2)\n", + "\n", + "new_dict3 = {\"Entity\": new_entity,\n", + " \"Year\": new_year,\n", + " \"Categories\": categories3,\n", + " \"Population\": new_twenty_five_to_sixty_four}\n", + "new_df3 = pd.DataFrame(data=new_dict3)\n", + "\n", + "new_dict4 = {\"Entity\": new_entity,\n", + " \"Year\": new_year,\n", + " \"Categories\": categories4,\n", + " \"Population\": new_sixty_five_plus}\n", + "new_df4 = pd.DataFrame(data=new_dict4)\n", + "\n", + "new_dict5 = {\"Entity\": new_entity,\n", + " \"Year\": new_year,\n", + " \"Categories\": categories5,\n", + " \"Population\": new_total}\n", + "new_df5 = pd.DataFrame(data=new_dict5)\n", + "\n", + "new_df = pd.concat([new_df, new_df1, new_df2, new_df3, new_df4, new_df5])" + ] + }, + { + "cell_type": "markdown", + "id": "3f584b5b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash app" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9662b9fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Population of different age groups from 1950 to 2021 with medium projections from 2022 onwards\"),\n", + " html.P(\"Select country\"),\n", + " dcc.Dropdown(\n", + " id=\"country\",\n", + " options=new_df.Entity.unique(),\n", + " value=\"WORLD\"\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1950, max=2100, value=[1950, 2100],\n", + " marks={x: str(x) for x in [1950, 1975, 2000, 2025, 2050, 2075, 2100]}),\n", + " dcc.Graph(id=\"Population\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"Population\", 'figure'),\n", + " Output(\"Population\", 'style'),\n", + " Input('country', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " country_list = [country]\n", + " dff = (new_df[\"Entity\"].isin(country_list)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0]) & (new_df[\"Year\"] <= 2021)\n", + " dff1 = (new_df[\"Entity\"].isin(country_list)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0]) & (new_df[\"Year\"] > 2021)\n", + " greater = new_df[dff1] # create a new dataframe that will change the names of different categories\n", + " greater.replace(to_replace= \"Under 5\", value = \"Under 5 Projections\", inplace=True)\n", + " greater.replace(to_replace= \"Under 15\", value = \"Under 15 Projections\", inplace=True)\n", + " greater.replace(to_replace= \"Under 25\", value = \"Under 25 Projections\", inplace=True)\n", + " greater.replace(to_replace= \"25-64\", value = \"25-64 Projections\", inplace=True)\n", + " greater.replace(to_replace= \"65+\", value = \"65+ Projections\", inplace=True)\n", + " greater.replace(to_replace= \"Total\", value = \"Total Projections\", inplace=True) \n", + " \n", + " figures = px.line(\n", + " new_df[dff],\n", + " x='Year',\n", + " y=\"Population\",\n", + " color=\"Categories\",\n", + " markers=True\n", + " ).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)',\n", + " height= 600\n", + " )\n", + " figures.add_traces(list(px.line(greater, x=\"Year\", y=\"Population\", color = \"Categories\").select_traces()))\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "ee15e3f0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "aea0ba9b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ff4d647", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6524224-4df4-41d8-9416-ae7443ce7df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "4b06d4ef00af69ff2b94b5dd3745d5d6b9d2544014f0e2f317599a3a4174f360", + "notebook_path": "OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb b/OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb new file mode 100644 index 0000000000..55cf2f68ad --- /dev/null +++ b/OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb @@ -0,0 +1,364 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize economic freedom through the years\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's economic freedom ranking data." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://github.com/owid/owid-datasets/tree/master/datasets/Economic%20Freedom%20of%20the%20World%20-%20Fraser%20Institute%20(2018)\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "d313f98d-ae24-4506-ae58-752c110d444b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/Economic%20Freedom%20of%20the%20World%20-%20Fraser%20Institute%20(2018)/Economic%20Freedom%20of%20the%20World%20-%20Fraser%20Institute%20(2018).csv\"\n", + "title = \"Economic freedom ranking\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"Economic freedom ranking\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_csv(url, header = 0) " + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash App" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Economic freedom ranking up to 2016\"),\n", + " html.P(\"Select country\"),\n", + " dcc.Dropdown(\n", + " id=\"country\",\n", + " options= contents_df.Entity.unique(),\n", + " value=\"United States\"\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1950, max=2016, value=[1950, 2016],\n", + " marks={x: str(x) for x in [1950, 1965, 1980, 1995, 2010, 2016]}),\n", + " dcc.Graph(id=\"Economic Freedom Rank\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"Economic Freedom Rank\", 'figure'),\n", + " Output(\"Economic Freedom Rank\", 'style'),\n", + " Input('country', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " country_list = [country]\n", + " dff = (contents_df[\"Entity\"].isin(country_list)) & (contents_df[\"Year\"] <= year[1]) & (contents_df[\"Year\"] >= year[0])\n", + " \n", + " figures = px.line(contents_df[dff], x='Year', y=\"Economic Freedom Rank\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600)\n", + " figures.update_yaxes(autorange=\"reversed\")\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "7db31d10c4b5b92d0d39f1d3dc6ee14dc4e511f4718304f9cfb63394215ce6e8", + "notebook_path": "OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb b/OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb new file mode 100644 index 0000000000..ad77bbb70d --- /dev/null +++ b/OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb @@ -0,0 +1,414 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize greenhouse gas per capita\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's greenhouse gas emissions per capita data." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://github.com/owid/owid-datasets/tree/master/datasets/GHG%20Emissions%20by%20Country%20and%20Sector%20(CAIT%2C%202021)\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "02c7f0a5-56f7-4e82-953b-222e22e8c473", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/CO2%20emissions%20by%20sector%20(CAIT%2C%202021)/CO2%20emissions%20by%20sector%20(CAIT%2C%202021).csv\"\n", + "title = \"Greenhouse gas emission per capita\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"Greenhouse gas emission per capita\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_csv(url, header = 0) \n", + "entity = contents_df[\"Entity\"]\n", + "year = contents_df[\"Year\"]\n", + "energy = contents_df[\"Energy (per capita)\"]# sort the data\n", + "industry = contents_df[\"Industry (per capita)\"]\n", + "total = contents_df[\"Total excluding LUCF (per capita)\"]" + ] + }, + { + "cell_type": "markdown", + "id": "fd74767f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create a new dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7fbd942c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "categories = []\n", + "categories1 = []\n", + "categories2 = []\n", + "for i in range(len(entity)):\n", + " categories.append(\"Energy\")\n", + " categories1.append(\"Industry\")\n", + " categories2.append(\"Total\")\n", + "new_dict = {\"Country\": entity,\n", + " \"Year\": year,\n", + " \"Categories\": categories,\n", + " \"CO2 emission\": energy}\n", + "new_df = pd.DataFrame(data=new_dict)\n", + "new_dict1 = {\"Country\": entity,\n", + " \"Year\": year,\n", + " \"Categories\": categories1,\n", + " \"CO2 emission\": industry}\n", + "new_df1 = pd.DataFrame(data=new_dict1)\n", + "new_dict2 = {\"Country\": entity,\n", + " \"Year\": year,\n", + " \"Categories\": categories2,\n", + " \"CO2 emission\": total}\n", + "new_df2 = pd.DataFrame(data=new_dict2)\n", + "new_df = pd.concat([new_df, new_df1, new_df2])" + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash App" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"CO2 emission per capita from 1990 to 2018 in tons\"),\n", + " html.P(\"Select country\"),\n", + " dcc.Dropdown(\n", + " id=\"country\",\n", + " options=new_df.Country.unique(),\n", + " value=\"United States\"\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1990, max=2018, value=[1990, 2018],\n", + " marks={x: str(x) for x in [1990, 1995, 2000, 2005, 2010, 2018]}),\n", + " dcc.Graph(id=\"CO2 emission\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"CO2 emission\", 'figure'),\n", + " Output(\"CO2 emission\", 'style'),\n", + " Input('country', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " country_list = [country]\n", + " dff = (new_df[\"Country\"].isin(country_list)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0]) & (new_df[\"Year\"] <= 2021)\n", + " \n", + " figures = px.line(new_df[dff], x='Year', y=\"CO2 emission\", color = \"Categories\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600)\n", + " styles = {'display': 'block'} \n", + " return figures, styles\n" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "54dbdfd194259317e5cc940745c978c24d6b9369f598c3db583326036b883167", + "notebook_path": "OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb b/OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb new file mode 100644 index 0000000000..5e06111ddd --- /dev/null +++ b/OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb @@ -0,0 +1,373 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize Life expectancy at birth for both sexes throughout the years\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's life exepctancy data." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://population.un.org/wpp/Download/Standard/MostUsed/\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "e46921dc-be39-4d56-8a29-87d64a464497", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://population.un.org/wpp/Download/Files/1_Indicators%20(Standard)/EXCEL_FILES/1_General/WPP2022_GEN_F01_DEMOGRAPHIC_INDICATORS_COMPACT_REV1.xlsx\"\n", + "title = \"Life expectancy at birth\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"Life expectancy at birth\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_excel(url, sheet_name = \"Estimates\", header = 16)\n", + "contents_df = contents_df.drop([72, 649, 1154, 1587])\n", + "contents_df = contents_df.reset_index(drop=True)\n", + "entity = contents_df[\"Region, subregion, country or area *\"]\n", + "year = contents_df[\"Year\"]\n", + "life_expectancy = contents_df[\"Life Expectancy at Birth, both sexes (years)\"]\n", + "new_dict = {\"Entity\": entity,\n", + " \"Year\": year,\n", + " \"Life_expectancy\": life_expectancy}\n", + "new_df = pd.DataFrame(data=new_dict)" + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash App" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "p = \"Life_expectancy\"\n", + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Life expectancy from 1950 to 2021\"),\n", + " html.P(\"Select countries\"),\n", + " dcc.Dropdown(\n", + " id=\"countries\",\n", + " options=new_df.Entity.unique(),\n", + " value=[\"WORLD\"],\n", + " multi = True\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1950, max=2021, value=[1950, 2021],\n", + " marks={x: str(x) for x in [1950, 1965, 1980, 1995, 2010, 2021]}),\n", + " dcc.Graph(id=p, figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(p, 'figure'),\n", + " Output(p, 'style'),\n", + " Input('countries', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " dff = (new_df[\"Entity\"].isin(country)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0])\n", + " figures = px.line(new_df[dff], x='Year', y=p, color = \"Entity\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600\n", + " )\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "cc3affc15c3291bab55e3463dfad9686c656e095970dbcfdce0e1000938d1b0e", + "notebook_path": "OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_tourist_departures_per_1000.ipynb b/OWID/OWID_Visualize_tourist_departures_per_1000.ipynb new file mode 100644 index 0000000000..64b116bab4 --- /dev/null +++ b/OWID/OWID_Visualize_tourist_departures_per_1000.ipynb @@ -0,0 +1,364 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Tourist depature per 1000\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's tourist departures per 1000 data." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://github.com/owid/owid-datasets/tree/master/datasets/Number%20of%20tourist%20departures%20per%201000%20-%20World%20Bank%20%26%20UN%20(2019)\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "b3dc6237-bf4b-42e6-b937-18ab7e81d64b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/Number%20of%20tourist%20departures%20per%201000%20-%20World%20Bank%20%26%20UN%20(2019)/Number%20of%20tourist%20departures%20per%201000%20-%20World%20Bank%20%26%20UN%20(2019).csv\"\n", + "title = \"Tourist departures per 1000\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"Tourist departures per 1000\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_csv(url, header = 0) " + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash app" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = Dash(title = \"Tourist departures per 1000\")\n", + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Tourist departures per 1000 up to 2017\"),\n", + " html.P(\"Select country\"),\n", + " dcc.Dropdown(\n", + " id=\"country\",\n", + " options= contents_df.Entity.unique(),\n", + " value=\"United States\"\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1995, max=2017, value=[1995, 2017],\n", + " marks={x: str(x) for x in [1995, 2000, 2005, 2010, 2017]}),\n", + " dcc.Graph(id=\"Number of departures (per 1000 people)\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"Number of departures (per 1000 people)\", 'figure'),\n", + " Output(\"Number of departures (per 1000 people)\", 'style'),\n", + " Input('country', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " country_list = [country]\n", + " dff = (contents_df[\"Entity\"].isin(country_list)) & (contents_df[\"Year\"] <= year[1]) & (contents_df[\"Year\"] >= year[0])\n", + " \n", + " figures = px.line(contents_df[dff], x='Year', y=\"Number of departures (per 1000 people)\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600)\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "cdf2fb54787b4191d2516b1cc6e7000a531dfa63a2142118ccd6c91cf6435684", + "notebook_path": "OWID/OWID_Visualize_tourist_departures_per_1000.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_wealth_distribution.ipynb b/OWID/OWID_Visualize_wealth_distribution.ipynb new file mode 100644 index 0000000000..7060635309 --- /dev/null +++ b/OWID/OWID_Visualize_wealth_distribution.ipynb @@ -0,0 +1,406 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize wealth distribuition of certain major economic powers\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-31 (Created: 2023-07-31)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's wealth distribution data. It shows the percentage of personal wealth obtained by the top 1% and the top 10%." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://github.com/owid/owid-datasets/tree/master/datasets/Top%20Net%20Personal%20Wealth%20Shares%20%E2%80%93%20WID%20(2018)\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "040d559e-6f66-4f61-9186-035e27b14fd9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/Top%20Net%20Personal%20Wealth%20Shares%20%E2%80%93%20WID%20(2018)/Top%20Net%20Personal%20Wealth%20Shares%20%E2%80%93%20WID%20(2018).csv\"\n", + "title = \"Wealth distribution\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"Wealth distribution\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_csv(url, header = 0) \n", + "entity = contents_df[\"Entity\"]\n", + "year = contents_df[\"Year\"]\n", + "one_pct = contents_df[\"Top 1% share of net personal wealth (WID 2018)\"]# sort the data\n", + "ten_pct = contents_df[\"Top 10% share of net personal wealth (WID 2018)\"]" + ] + }, + { + "cell_type": "markdown", + "id": "81c9c0a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create new dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68bfb55d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "categories = []\n", + "categories1 = []\n", + "for i in range(len(entity)):\n", + " categories.append(\"Top 1%\")\n", + " categories1.append(\"Top 10%\")\n", + "new_dict = {\"Country\": entity,\n", + " \"Year\": year,\n", + " \"Categories\": categories,\n", + " \"Wealth\": one_pct}\n", + "new_df = pd.DataFrame(data=new_dict)\n", + "new_dict1 = {\"Country\": entity,\n", + " \"Year\": year,\n", + " \"Categories\": categories1,\n", + " \"Wealth\": ten_pct}\n", + "new_df1 = pd.DataFrame(data=new_dict1)\n", + "new_df = pd.concat([new_df, new_df1])" + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash App" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Wealth of top 1% vs wealth of top 10% as a percentage of total wealth for 5 countries\"),\n", + " html.P(\"Select country\"),\n", + " dcc.Dropdown(\n", + " id=\"country\",\n", + " options=new_df.Country.unique(),\n", + " value=\"China\"\n", + " ),\n", + " dcc.RangeSlider(id='slider', min=1807, max=2015, value=[1978, 2015],\n", + " marks={x: str(x) for x in [1807, 1857, 1907, 1957, 2007, 2015]}),\n", + " dcc.Graph(id=\"Wealth\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"Wealth\", 'figure'),\n", + " Output(\"Wealth\", 'style'),\n", + " Input('country', 'value'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(country, year):\n", + " country_list = [country]\n", + " dff = (new_df[\"Country\"].isin(country_list)) & (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0]) & (new_df[\"Year\"] <= 2021)\n", + " \n", + " figures = px.line(new_df[dff], x='Year', y=\"Wealth\", color = \"Categories\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600)\n", + " styles = {'display': 'block'} \n", + " return figures, styles" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "304c492a6ad755b2370ccec6705ca275e6fd9dd894580e1e4f7663bb73341059", + "notebook_path": "OWID/OWID_Visualize_wealth_distribution.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OWID/OWID_Visualize_world_population_growth.ipynb b/OWID/OWID_Visualize_world_population_growth.ipynb new file mode 100644 index 0000000000..58b12249fe --- /dev/null +++ b/OWID/OWID_Visualize_world_population_growth.ipynb @@ -0,0 +1,359 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b1d69ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "267d5bbf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OWID - Visualize world population growth\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "5231f49b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #dash #dashboard #plotly #naas #asset #analytics #dropdown #callback #bootstrap #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "8b9eabab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Zihui Ouyang](https://www.linkedin.com/in/zihui-ouyang-539626227/)" + ] + }, + { + "cell_type": "markdown", + "id": "acb27e96-54ec-49d8-8eb8-e8d94dd9ef94", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-08-07 (Created: 2023-08-07)" + ] + }, + { + "cell_type": "markdown", + "id": "ab610df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook creates an interactive plot using Dash app infrastructure with OWID's world population growth data." + ] + }, + { + "cell_type": "markdown", + "id": "37a304c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- https://github.com/owid/owid-datasets/tree/master/datasets/Annual%20world%20population%20growth%20rate%20-%20OWID\n", + "- https://stackoverflow.com/questions/70886359/dash-python-making-subplots-when-multiple-parameters-are-selected\n", + "- https://dash-example-index.herokuapp.com/line-charts" + ] + }, + { + "cell_type": "markdown", + "id": "af4fbd09", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "61bb4b6a-3622-4fc8-a64b-f58c3061298e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0649176e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import dash\n", + " import os\n", + "except:\n", + " !pip install dash --user\n", + " import dash\n", + "try:\n", + " import dash_bootstrap_components as dbc\n", + "except:\n", + " !pip install dash_bootstrap_components --user\n", + " import dash_bootstrap_components as dbc\n", + "import pandas as pd\n", + "import numpy as np\n", + "from dash import Dash, html, dcc, callback, Output, Input\n", + "import plotly.express as px" + ] + }, + { + "cell_type": "markdown", + "id": "cabe4219", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `DASH_PORT`: specify a port number for Dash\n", + "- `url`: URL to get data from Excel\n", + "- `title`: App title" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9ffa9db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "DASH_PORT = 8050\n", + "url = \"https://raw.githubusercontent.com/owid/owid-datasets/master/datasets/Annual%20world%20population%20growth%20rate%20-%20OWID/Annual%20world%20population%20growth%20rate%20-%20OWID.csv\"\n", + "title = \"World population growth\"" + ] + }, + { + "cell_type": "markdown", + "id": "f2d0f398", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1f81b91e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Initialize Dash app\n", + "The `os.environ.get(\"JUPYTERHUB_USER\")` is used to access the environment variable `JUPYTERHUB_USER` already stored into your Naas Lab." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1f3df3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = dash.Dash(\n", + " title=title,\n", + " requests_pathname_prefix=f'/user/{os.environ.get(\"JUPYTERHUB_USER\")}/proxy/{DASH_PORT}/',\n", + " external_stylesheets=[dbc.themes.BOOTSTRAP],\n", + " meta_tags=[\n", + " {\"name\": \"viewport\", \"content\": \"width=device-width, initial-scale=1.0\"}\n", + " ],\n", + ")\n", + "\n", + "#app = dash.Dash(title = \"World population growth\") if you are not in Naas" + ] + }, + { + "cell_type": "markdown", + "id": "7d73d825", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aad6eb74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "contents_df = pd.read_csv(url, header = 0) \n", + "new_df = contents_df[contents_df['Year'] > 1949]" + ] + }, + { + "cell_type": "markdown", + "id": "560e3784", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Dash app" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2629798", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "app = Dash(title = \"Population growth in the world\")\n", + "app.layout = html.Div(\n", + " [\n", + " html.H4(\"Population growth from 1950 to 2015\"),\n", + " dcc.RangeSlider(id='slider', min=1950, max=2015, value=[1950, 2015],\n", + " marks={x: str(x) for x in [1950, 1965, 1980, 1995, 2015]}),\n", + " dcc.Graph(id=\"Annual population growth rate (OWID)\", figure={}, style={'display': 'none'})\n", + " ]\n", + ")\n", + "\n", + "@callback(\n", + " Output(\"Annual population growth rate (OWID)\", 'figure'),\n", + " Output(\"Annual population growth rate (OWID)\", 'style'),\n", + " Input('slider', 'value')\n", + ")\n", + "\n", + "def update_graph(year):\n", + " dff = (new_df[\"Year\"] <= year[1]) & (new_df[\"Year\"] >= year[0])\n", + " \n", + " figures = px.line(new_df[dff], x='Year', y=\"Annual population growth rate (OWID)\", markers = True).update_layout(\n", + " plot_bgcolor='rgba(0, 0, 0, 0)', height= 600)\n", + " styles = {'display': 'block'} \n", + " return figures, styles\n", + "if __name__ == \"__main__\":\n", + " app.run_server(debug=True, port=8049, use_reloader=False)" + ] + }, + { + "cell_type": "markdown", + "id": "d43335ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "4f1ab927", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Generate URL and show logs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cb37b0c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if __name__ == \"__main__\":\n", + " app.run_server(proxy=f\"http://127.0.0.1:{DASH_PORT}::https://app.naas.ai\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8917e7-a31c-4934-b851-41ad402b502f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b0de207f2a64ae314c14994522d6994a3c3cbae7fc6d5b79be15da7d8e223d0e", + "notebook_path": "OWID/OWID_Visualize_world_population_growth.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb b/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb index 1d20f05d45..77fa657981 100644 --- a/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb +++ b/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a AI enthusiast\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c5f71b20-74a8-45dd-86cb-b5ac32960d57", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb b/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb index fd415c95ad..c02cc11c7c 100644 --- a/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Business Analyst\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "90dcc124-2418-4ee1-a902-1f8264bd5875", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_CEO.ipynb b/OpenAI/OpenAI_Act_as_a_CEO.ipynb index cc77d27481..2697d42531 100644 --- a/OpenAI/OpenAI_Act_as_a_CEO.ipynb +++ b/OpenAI/OpenAI_Act_as_a_CEO.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a CEO\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "eade586e-db28-4e09-b2ca-fa722e8dea1d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_COO.ipynb b/OpenAI/OpenAI_Act_as_a_COO.ipynb index 2340256379..1337b8259c 100644 --- a/OpenAI/OpenAI_Act_as_a_COO.ipynb +++ b/OpenAI/OpenAI_Act_as_a_COO.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a COO\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "50d11884-589b-4f62-a635-107f6bbcee86", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_CTO.ipynb b/OpenAI/OpenAI_Act_as_a_CTO.ipynb index c240438258..f577382ebc 100644 --- a/OpenAI/OpenAI_Act_as_a_CTO.ipynb +++ b/OpenAI/OpenAI_Act_as_a_CTO.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a CTO\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0908a3f2-e71c-4f0f-9c18-b897bc62e937", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb b/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb index 5318aaed99..65e262c01b 100644 --- a/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Creative Writer or Artist\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "69295add-9164-45d4-b7d2-7fb45077af58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb b/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb index 71e2782540..28f8c2ca21 100644 --- a/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Data Analyst\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "723eea12-be4d-48b0-96a4-c02d2a3f60e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb b/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb index e7d1882e0d..e683df0fce 100644 --- a/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Data Scientist\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "177c831b-c984-4040-b017-d4ee3de624ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb b/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb index 8d5c706fd7..41c0ba800f 100644 --- a/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Educator or student\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5619da89-c029-4ae0-aa17-fcc1304c3725", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb b/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb index aa853afc17..f6b44c4450 100644 --- a/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Hobbyist\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0246f6ea-d35a-46a3-b006-4e6955bb4abc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb b/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb index da3e13eed4..00823fa276 100644 --- a/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Homeowner\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "89803bf7-1f9c-4169-ab26-80a3e76cab8a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb b/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb index 234399bcd5..5052461999 100644 --- a/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb +++ b/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a IT Professional\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "cf019076-7fde-4ac1-8918-dc1f8070b198", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb b/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb index 276c35f54a..e3fdafdac1 100644 --- a/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Lifelong learner\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a97a5c46-ca03-461f-a053-3eeb45f214df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Marketer.ipynb b/OpenAI/OpenAI_Act_as_a_Marketer.ipynb index 940bedab47..b2c0026fc4 100644 --- a/OpenAI/OpenAI_Act_as_a_Marketer.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Marketer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Marketer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "dd9a0b29-7dda-4e6e-8e84-b3fc00431686", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb b/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb index 7cd7e9a377..d12559e55e 100644 --- a/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Parent or Child\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "dd4c130e-5c61-47cf-97b4-02bc4c9c8ab6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb b/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb index f3706f888d..0c51efaaeb 100644 --- a/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Product Manager\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bf18bd49-c502-4461-a9b7-22d067375432", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb b/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb index d709810ea1..18eba7cb18 100644 --- a/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Project Manager\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a40b4f3d-0d23-41e0-bcf0-6ba4e0645dfb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Retiree.ipynb b/OpenAI/OpenAI_Act_as_a_Retiree.ipynb index aac1a1451a..d9232d680f 100644 --- a/OpenAI/OpenAI_Act_as_a_Retiree.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Retiree.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Retiree\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "83bfe53b-eeb5-4d1e-870e-81ce56e81ea5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb b/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb index 17c016e009..843314ef84 100644 --- a/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Sales Professional\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "90dafaf8-7624-4804-9aa2-49eec32dc6e9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb b/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb index 6bfa1d04db..532a6a74f7 100644 --- a/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Software Developer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "588f1f55-23b7-4c5e-992b-b6e49a1e0ec8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb b/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb index dd23b5e4d4..b797261e84 100644 --- a/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb +++ b/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a Software Engineer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "89415ff5-6c23-42c8-91b3-330debb5fe91", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Act_as_a_chef.ipynb b/OpenAI/OpenAI_Act_as_a_chef.ipynb index 131e8550bc..360f72e9ea 100644 --- a/OpenAI/OpenAI_Act_as_a_chef.ipynb +++ b/OpenAI/OpenAI_Act_as_a_chef.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Act as a chef\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "001f7ff2-7ad3-4fa4-b091-0010bc804de3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-05-29)" + ] + }, { "cell_type": "markdown", "id": "42494b38-126c-4a3f-8a33-7b2c5f4bc590", diff --git a/OpenAI/OpenAI_Brainstorm_ideas.ipynb b/OpenAI/OpenAI_Brainstorm_ideas.ipynb index 5f17d77571..e57412fe25 100644 --- a/OpenAI/OpenAI_Brainstorm_ideas.ipynb +++ b/OpenAI/OpenAI_Brainstorm_ideas.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Brainstorm ideas\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e26f0633-f8d9-4454-97c8-6a596f8674b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "277a92fe-4b02-403c-8f95-0a098250f13b", diff --git a/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb b/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb index 3c763a0919..357ac8b3c0 100644 --- a/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb +++ b/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Count tokens with tiktoken\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5036ed15-9d72-423b-b6fb-5bb96c921341", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-16 (Created: 2023-06-16)" + ] + }, { "cell_type": "markdown", "id": "4091824a-c9f9-4396-a8f0-f13cd0704d77", diff --git a/OpenAI/OpenAI_Create_Completion.ipynb b/OpenAI/OpenAI_Create_Completion.ipynb index 2e160b6c0d..172b3d7990 100644 --- a/OpenAI/OpenAI_Create_Completion.ipynb +++ b/OpenAI/OpenAI_Create_Completion.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenAI - Create Completion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "be301572-da34-443b-a888-8c218ae9e316", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-31 (Created: 2023-02-06)" + ] + }, { "cell_type": "markdown", "id": "d5ec3cc1-b056-42d1-82b2-c7433c68f8c1", diff --git a/OpenAI/OpenAI_Create_chat_completion.ipynb b/OpenAI/OpenAI_Create_chat_completion.ipynb index bbbeb88cc2..2c04961e2e 100644 --- a/OpenAI/OpenAI_Create_chat_completion.ipynb +++ b/OpenAI/OpenAI_Create_chat_completion.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Create chat completion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "541fb727-0bb8-4840-9d06-bd46a3baf286", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-31 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "93cc5490-6c22-4f49-9deb-bb34e62e00d0", diff --git a/OpenAI/OpenAI_Create_chatbot.ipynb b/OpenAI/OpenAI_Create_chatbot.ipynb index e043abf0e8..f15a11d29a 100644 --- a/OpenAI/OpenAI_Create_chatbot.ipynb +++ b/OpenAI/OpenAI_Create_chatbot.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Create chatbot\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "77e77575-d5e0-435b-bf71-97c08d290c22", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-31 (Created: 2023-05-31)" + ] + }, { "cell_type": "markdown", "id": "7af2171d-57b0-4883-8d79-531a89774f03", diff --git a/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb b/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb index b9007327b8..10125db9b9 100644 --- a/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb +++ b/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Generate_Act_as_a_x_notebook\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "cb7f7eaa-c287-45c7-84a6-4cab47c8bfd9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "6f94abc4-02a4-4f90-85c6-59f8c718d8ac", diff --git a/OpenAI/OpenAI_Generate_Dialogue.ipynb b/OpenAI/OpenAI_Generate_Dialogue.ipynb index ad9aa9b4e5..bbbc96e129 100644 --- a/OpenAI/OpenAI_Generate_Dialogue.ipynb +++ b/OpenAI/OpenAI_Generate_Dialogue.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenAI - Generate Dialogue\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "969d0676-4e87-4ce9-a795-bccc63508bf1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-18)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/OpenAI/OpenAI_Generate_Q&A.ipynb b/OpenAI/OpenAI_Generate_Q&A.ipynb index 5189190374..55609bf383 100644 --- a/OpenAI/OpenAI_Generate_Q&A.ipynb +++ b/OpenAI/OpenAI_Generate_Q&A.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Generate Q&A\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "6b25778c-1fde-4c40-907c-d907e74b755b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-16)" + ] + }, { "cell_type": "markdown", "id": "13df69b8-ec15-40ed-b956-873358b5af09", diff --git a/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb b/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb index 9edb3728cb..9278ada4b5 100644 --- a/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb +++ b/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Generate README for GitHub repository\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "72f05e0f-fad0-412b-b9e9-0282ab9623a3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-11)" + ] + }, { "cell_type": "markdown", "id": "c2e3049a-4307-49f3-bf05-7f47666e6442", diff --git a/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb b/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb index e7b7b48d04..32bbca45a6 100644 --- a/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb +++ b/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenAI - Generate Text to Speech\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sriniketh Jayasendil](http://linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "d9d8c106-2a3f-4488-99c3-7a7f6c489d76", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-10)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/OpenAI/OpenAI_Generate_image_from_text.ipynb b/OpenAI/OpenAI_Generate_image_from_text.ipynb index 670acc55b7..9e23343a1c 100644 --- a/OpenAI/OpenAI_Generate_image_from_text.ipynb +++ b/OpenAI/OpenAI_Generate_image_from_text.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Generate image from text\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel)" ] }, + { + "cell_type": "markdown", + "id": "6547bd75-1155-4c1f-9601-53b6d4fda8b2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-09 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "974f8b06-0685-485f-811e-912d15a3f686", diff --git a/OpenAI/OpenAI_Generate_language_translations.ipynb b/OpenAI/OpenAI_Generate_language_translations.ipynb index 87de5f3a87..322a93b1ec 100644 --- a/OpenAI/OpenAI_Generate_language_translations.ipynb +++ b/OpenAI/OpenAI_Generate_language_translations.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenAI - Generate language translations\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "29643e61-4ddd-4bbf-9acf-fb5dbea04b96", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-05)" + ] + }, { "cell_type": "markdown", "id": "d5ec3cc1-b056-42d1-82b2-c7433c68f8c1", diff --git a/OpenAI/OpenAI_Generate_text_based_prediction.ipynb b/OpenAI/OpenAI_Generate_text_based_prediction.ipynb index 33d8917259..bfb44dc9f1 100644 --- a/OpenAI/OpenAI_Generate_text_based_prediction.ipynb +++ b/OpenAI/OpenAI_Generate_text_based_prediction.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Generate text based prediction\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "affa1a50-7387-42a1-9105-298b8e340e43", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-08)" + ] + }, { "cell_type": "markdown", "id": "974f8b06-0685-485f-811e-912d15a3f686", diff --git a/OpenAI/OpenAI_Generate_text_replacements.ipynb b/OpenAI/OpenAI_Generate_text_replacements.ipynb index 5fd9e6146b..e6d3aa3ff0 100644 --- a/OpenAI/OpenAI_Generate_text_replacements.ipynb +++ b/OpenAI/OpenAI_Generate_text_replacements.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenAI - Generate text replacements\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -66,6 +66,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "dff756d2-5509-4dd7-bd3d-240fe6eca7ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-23)" + ] + }, { "cell_type": "markdown", "id": "353d1f89-6a51-40f3-bd8a-9ca45fe5e4c7", diff --git a/OpenAI/OpenAI_Generate_text_summaries.ipynb b/OpenAI/OpenAI_Generate_text_summaries.ipynb index 7c8155e0ca..5df7b98016 100644 --- a/OpenAI/OpenAI_Generate_text_summaries.ipynb +++ b/OpenAI/OpenAI_Generate_text_summaries.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Generate text summaries\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -46,6 +46,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "d2c63e85-6ebf-413f-b572-c5afb78bfcf3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-24 (Created: 2023-05-24)" + ] + }, { "cell_type": "markdown", "id": "f71da201-2b02-4149-9060-0bf24690cdd9", diff --git a/OpenAI/OpenAI_Write_a_blog_post.ipynb b/OpenAI/OpenAI_Write_a_blog_post.ipynb index e3be5c497d..8fe5b1b1d5 100644 --- a/OpenAI/OpenAI_Write_a_blog_post.ipynb +++ b/OpenAI/OpenAI_Write_a_blog_post.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Write a blog post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e373bf83-82b8-4f0a-8d7f-7442ad96ea28", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "eb3184c1-374f-4028-983a-60d60f25048b", diff --git a/OpenAI/OpenAI_Write_a_job_description.ipynb b/OpenAI/OpenAI_Write_a_job_description.ipynb index f55580091d..69027001d8 100644 --- a/OpenAI/OpenAI_Write_a_job_description.ipynb +++ b/OpenAI/OpenAI_Write_a_job_description.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Write a job description\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f4a1975f-679e-4e11-85c0-e34817b019b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "83e5ae5d-b090-45d1-8e50-7d554de6db38", diff --git a/OpenAI/OpenAI_Write_a_press_release.ipynb b/OpenAI/OpenAI_Write_a_press_release.ipynb index b3d3f1c8ee..f3751f2170 100644 --- a/OpenAI/OpenAI_Write_a_press_release.ipynb +++ b/OpenAI/OpenAI_Write_a_press_release.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Write a press release\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "dc12480a-f535-4b6d-83c9-83fa20990e3d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "568bca3b-ff6a-4c57-9f86-1d6103b28b76", diff --git a/OpenAI/OpenAI_Write_a_social_media_post.ipynb b/OpenAI/OpenAI_Write_a_social_media_post.ipynb index 6e6b5d2162..fe26d0eef5 100644 --- a/OpenAI/OpenAI_Write_a_social_media_post.ipynb +++ b/OpenAI/OpenAI_Write_a_social_media_post.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Write a social media post\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "88e4d58c-b45c-415c-b533-90493b6913f5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "8e9e0abb-5a5b-4598-8c28-80ce88b85949", diff --git a/OpenAI/OpenAI_Write_an_outline.ipynb b/OpenAI/OpenAI_Write_an_outline.ipynb index 6cf0d795e5..4e7754779e 100644 --- a/OpenAI/OpenAI_Write_an_outline.ipynb +++ b/OpenAI/OpenAI_Write_an_outline.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenAI - Write an outline\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "37084011-09c4-4d74-b6c4-3c03cdc22291", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-24)" + ] + }, { "cell_type": "markdown", "id": "538efa1d-1bf9-486c-a0c9-ac62ff9aadb5", diff --git a/OpenAlex/OpenAlex_Get_lists_of_authors.ipynb b/OpenAlex/OpenAlex_Get_lists_of_authors.ipynb new file mode 100644 index 0000000000..29d8265850 --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_authors.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of authors\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #authors #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of authors from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of authors](https://docs.openalex.org/api-entities/authors/get-lists-of-authors)\n", + "- [OpenAlex API - Author object](https://docs.openalex.org/api-entities/authors/author-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"authors\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of authors\n", + "This function will get lists of authors from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "29a4f52536d76475d169c74de659e2d0d3f557860ecc062b0374adbf28db05c2", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_authors.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb b/OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb new file mode 100644 index 0000000000..7ced71553d --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of concepts\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #concepts #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of concepts from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of concepts](https://docs.openalex.org/api-entities/concepts/get-lists-of-concepts)\n", + "- [OpenAlex API - Concept object](https://docs.openalex.org/api-entities/concepts/concept-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"concepts\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of concepts\n", + "This function will get lists of concepts from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "37dd53baf05766a23edd9b0c3d2efd0e35997d2ea98448c2649d27533c46348a", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAlex/OpenAlex_Get_lists_of_funders.ipynb b/OpenAlex/OpenAlex_Get_lists_of_funders.ipynb new file mode 100644 index 0000000000..d785552adf --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_funders.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of funders\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #funders #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of funders from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of funders](https://docs.openalex.org/api-entities/funders/get-lists-of-funders)\n", + "- [OpenAlex API - Funder object](https://docs.openalex.org/api-entities/funders/funder-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"funders\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of funders\n", + "This function will get lists of funders from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "0f7ad43306b5ffe0ac30096d2e74b67a4e2e968aba801e33bfb33de97dffc902", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_funders.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb b/OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb new file mode 100644 index 0000000000..2259c19971 --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of institutions\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #institutions #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of institutions from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of institutions](https://docs.openalex.org/api-entities/institutions/get-lists-of-institutions)\n", + "- [OpenAlex API - Institution object](https://docs.openalex.org/api-entities/institutions/institution-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"institutions\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of institutions\n", + "This function will get lists of institutions from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "daa55946917d46e91f745d8bb80015bb01c9b089f8d593cb295f068eba737713", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb b/OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb new file mode 100644 index 0000000000..b1bb75598a --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of publishers\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #publishers #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of publishers from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of publishers](https://docs.openalex.org/api-entities/publishers/get-lists-of-publishers)\n", + "- [OpenAlex API - Publisher object](https://docs.openalex.org/api-entities/publishers/publisher-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"publishers\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of publishers\n", + "This function will get lists of publishers from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "deac59c6ef3ad57a0c139099d6e1967888bf53c250eae9228230aacbcff5aa3e", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAlex/OpenAlex_Get_lists_of_sources.ipynb b/OpenAlex/OpenAlex_Get_lists_of_sources.ipynb new file mode 100644 index 0000000000..cf95d21913 --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_sources.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of sources\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #sources #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of sources from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of sources](https://docs.openalex.org/api-entities/sources/get-lists-of-sources)\n", + "- [OpenAlex API - Source object](https://docs.openalex.org/api-entities/sources/source-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"sources\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of sources\n", + "This function will get lists of sources from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c7d44879bd6ddfd704a5edeea24d1aa2ad3f3a2f31e01e96559faa13274465b3", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_sources.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenAlex/OpenAlex_Get_lists_of_works.ipynb b/OpenAlex/OpenAlex_Get_lists_of_works.ipynb new file mode 100644 index 0000000000..66f5aa272e --- /dev/null +++ b/OpenAlex/OpenAlex_Get_lists_of_works.ipynb @@ -0,0 +1,305 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "877e13c1-a142-4f99-a50c-0c88fbb4543a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7327e523-f637-408b-b242-a9b8c52af5a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# OpenAlex - Get lists of works\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "e850b621-5551-4583-b331-cbdfcfb4622d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #openalex #api #entities #works #get #lists" + ] + }, + { + "cell_type": "markdown", + "id": "c177b9e6-a470-4328-9109-9a769ad9bea4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "08d71754-6f04-4d8f-ad2e-2fdaa1d965ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "001d94d6-3449-4a4e-98e5-dc70fcd5d691", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to get lists of works from OpenAlex API." + ] + }, + { + "cell_type": "markdown", + "id": "29455cfb-5b0f-4699-8099-3e5b9b4f1dab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [OpenAlex API - Get lists of works](https://docs.openalex.org/api-entities/works/get-lists-of-works)\n", + "- [OpenAlex API - Work object](https://docs.openalex.org/api-entities/works/work-object)" + ] + }, + { + "cell_type": "markdown", + "id": "a23762c8-543a-41b6-bcb2-ce04ac86ab63", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "0932fada-2003-4e7d-90e6-1bd17b6ffefe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0cf2eeef-3db6-4d62-ad15-52623d3da5d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "7df898f8-b328-43a6-a435-da9e75eb01c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `endpoint`: API endpoint\n", + "- `limit`: number of data to be returned. The daily limit for API calls is 100,000 requests per user per day" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1ae6d1b9-70a7-4f99-bec7-b0b2bca71657", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "endpoint = \"works\"\n", + "limit = 100" + ] + }, + { + "cell_type": "markdown", + "id": "681e9f98-ec06-4553-aeb8-8fb9b28fcd4e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "56584d7c-87fe-43df-9ef2-72762f8bc103", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get lists of works\n", + "This function will get lists of works from OpenAlex API." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ed739ba4-9a5a-4300-a7d7-55452a1f8516", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_data(endpoint, limit=-1):\n", + " # Init\n", + " page = 1\n", + " per_page = 100\n", + " data = []\n", + " \n", + " # Loop on page\n", + " while True:\n", + " if limit != -1:\n", + " y = limit - len(data)\n", + " if y < per_page:\n", + " per_page = y\n", + " if len(data) > limit:\n", + " break\n", + " \n", + " # Params\n", + " params = {\n", + " \"page\": page,\n", + " \"per_page\": per_page,\n", + " }\n", + " url = f\"https://api.openalex.org/{endpoint}\"\n", + " \n", + " # Requests\n", + " res = requests.get(url, params=params)\n", + " \n", + " # Results\n", + " if res.status_code == 200:\n", + " results = res.json().get(\"results\")\n", + " if len(results) > 0:\n", + " data.extend(results)\n", + " else:\n", + " break\n", + " else:\n", + " break\n", + " page += 1\n", + " return data" + ] + }, + { + "cell_type": "markdown", + "id": "7f724283-750c-4e41-9e74-e7d9adb50dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "660450c1-3e4e-4814-9fac-20daed5b413c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "62bc33d0-f1cb-45da-b4cc-083a575b7889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "data = get_data(endpoint, limit=limit)\n", + "print(\"Results fetched:\", len(data))\n", + "print(\"Example:\")\n", + "data[0]" + ] + }, + { + "cell_type": "markdown", + "id": "30513af7-3035-4ef6-80f3-7b8dad7ea90f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c7d23e7145aa523f18b4b2d09a9c05ed3a857b0fc3a2fd9ad417256bed440d3c", + "notebook_path": "OpenAlex/OpenAlex_Get_lists_of_works.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb b/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb index af6c489926..967437c830 100644 --- a/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb +++ b/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenBB - Create an kernel on Naas\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "35d95e8f-d63e-4274-a8b5-49eeb364cf99", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-11)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/OpenPIV/openpiv-python-template.ipynb b/OpenPIV/openpiv-python-template.ipynb index 7262d880f4..ecfb5c4164 100644 --- a/OpenPIV/openpiv-python-template.ipynb +++ b/OpenPIV/openpiv-python-template.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# OpenPIV - Openpiv-python-template\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alex Liberzon](https://www.linkedin.com/in/alexliberzon/)" ] }, + { + "cell_type": "markdown", + "id": "5e67443c-1f4d-4f41-acad-96cdb06e5ee8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-12-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb b/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb index 48447d3906..7ae6428d2c 100644 --- a/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb +++ b/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# OpenWeatherMap - Get City Weather\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Christophe Blefari](https://www.linkedin.com/in/christopheblefari/)" ] }, + { + "cell_type": "markdown", + "id": "6905c159-d392-429b-9be0-9cfe53005bc0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-07-21)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb b/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb index 31094ed6e4..0fe5643006 100644 --- a/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb +++ b/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb @@ -34,7 +34,7 @@ }, "source": [ "# OpenWeatherMap - Get City temperature weather-type wind-speed\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -73,6 +73,17 @@ "**Author:** [Kanishk Pareek](https://in.linkedin.com/in/kanishkpareek)" ] }, + { + "cell_type": "markdown", + "id": "9810d8ff-5102-43fa-81a1-8a9c2062488e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2022-10-06)" + ] + }, { "cell_type": "markdown", "id": "e39715db-7f60-459a-ab22-af38de43618f", diff --git a/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb b/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb index b633e43113..8a9728b70f 100644 --- a/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb +++ b/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OpenWeatherMap - Send daily email with predictions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Gautier Vivard](https://www.linkedin.com/in/gautier-vivard-1811b877/)" ] }, + { + "cell_type": "markdown", + "id": "4259b697-a0ab-47ad-85fc-b51be4046d98", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-11)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/OwnCloud/OwnCloud_Download_file.ipynb b/OwnCloud/OwnCloud_Download_file.ipynb index 48d64ce9a5..cfcbf75fd7 100644 --- a/OwnCloud/OwnCloud_Download_file.ipynb +++ b/OwnCloud/OwnCloud_Download_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OwnCloud - Download file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "bd94f0fb-99e6-4e3a-8893-d6b41aadb556", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/OwnCloud/OwnCloud_Upload_file.ipynb b/OwnCloud/OwnCloud_Upload_file.ipynb index 50b959d118..c70e76a5c3 100644 --- a/OwnCloud/OwnCloud_Upload_file.ipynb +++ b/OwnCloud/OwnCloud_Upload_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# OwnCloud - Upload file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "6673b192-3e47-4e30-89cf-48cc4d3f55f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PDF/Installation_Guide.pdf b/PDF/Installation_Guide.pdf deleted file mode 100644 index fce91a2496..0000000000 Binary files a/PDF/Installation_Guide.pdf and /dev/null differ diff --git a/PDF/PDF_Extract_Text_from_PDF.ipynb b/PDF/PDF_Extract_Text_from_file.ipynb similarity index 65% rename from PDF/PDF_Extract_Text_from_PDF.ipynb rename to PDF/PDF_Extract_Text_from_file.ipynb index 9527174d4e..2be5bb9186 100644 --- a/PDF/PDF_Extract_Text_from_PDF.ipynb +++ b/PDF/PDF_Extract_Text_from_file.ipynb @@ -26,8 +26,8 @@ "tags": [] }, "source": [ - "# PDF - Extract Text from\n", - "

Template request | Bug report | Generate Data Product" + "# PDF - Extract Text from file\n", + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "1915650c-ae69-4a87-a969-7ce55c52249c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-04 (Created: 2022-10-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -62,7 +73,21 @@ ] }, "source": [ - "**Description:** This notebook provides a way to extract text from PDF files." + "**Description:** This notebook extracts text from a PDF file in local or an URL." + ] + }, + { + "cell_type": "markdown", + "id": "9b2bc38c-1c97-4e01-aab7-9f2dfaa96b74", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:**\n", + "- [PyPI - PyPDF2](https://pypi.org/project/PyPDF2/)" ] }, { @@ -100,11 +125,12 @@ "import io\n", "import requests\n", "from urllib.parse import urlparse\n", + "import urllib\n", "try:\n", - " from PyPDF2 import PdfFileReader, PdfFileWriter\n", + " from PyPDF2 import PdfReader\n", "except:\n", " !pip install PyPDF2\n", - " from PyPDF2 import PdfFileReader, PdfFileWriter" + " from PyPDF2 import PdfReader" ] }, { @@ -115,7 +141,8 @@ "tags": [] }, "source": [ - "### Variables" + "### Setup variables\n", + "- `file_path`: This variable represents the file path of the PDF file you want to extract text from." ] }, { @@ -128,7 +155,7 @@ }, "outputs": [], "source": [ - "pdf_file = \"https://ethereum.org/669c9e2e2027310b6b3cdce6e1c52962/Ethereum_Whitepaper_-_Buterin_2014.pdf\"" + "file_path = \"https://slicedinvoices.com/pdf/wordpress-pdf-invoice-plugin-sample.pdf\"" ] }, { @@ -150,7 +177,8 @@ "tags": [] }, "source": [ - "### Define function to validate if string is a valid URL" + "### Download PDF\n", + "Download PDF if it's coming from an URL." ] }, { @@ -168,40 +196,25 @@ " result = urlparse(url)\n", " return all([result.scheme, result.netloc])\n", " except ValueError:\n", - " return False" - ] - }, - { - "cell_type": "markdown", - "id": "tested-astrology", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Define function to read PDF file" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "crude-louisville", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "def get_pdf(path):\n", - " if is_url(path):\n", - " remote_file = requests.get(path).content\n", - " memory_file = io.BytesIO(remote_file)\n", - " pdf_file = PdfFileReader(memory_file)\n", - " else:\n", - " pdf_file_obj = open(path, \"rb\")\n", - " pdf_file = PdfFileReader(pdf_file_obj)\n", + " return False\n", "\n", - " return pdf_file" + "def download_pdf(url):\n", + " # Init\n", + " if not is_url(url):\n", + " return url\n", + " file_path = url.split('/')[-1]\n", + " \n", + " # Get PDF\n", + " response = urllib.request.urlopen(url)\n", + " \n", + " # Save PDF\n", + " file = open(file_path, \"wb\")\n", + " file.write(response.read())\n", + " file.close()\n", + " print(\"PDF saved in local:\", file_path)\n", + " return file_path\n", + " \n", + "file_path = download_pdf(file_path)" ] }, { @@ -236,44 +249,24 @@ { "cell_type": "code", "execution_count": null, - "id": "9c4e3b7b-6440-4844-8054-265f1aec65eb", + "id": "3ddf081e-a420-4ea3-9b22-bc1f2fe3a901", "metadata": { "papermill": {}, "tags": [] }, "outputs": [], "source": [ - "texts = []\n", - "pdf_reader = get_pdf(pdf_file)\n", + "text = \"\"\n", + "with open(file_path, 'rb') as file:\n", + " reader = PdfReader(file)\n", + " num_pages = len(reader.pages)\n", "\n", - "for page_num in range(pdf_reader.numPages):\n", - " page_obj = pdf_reader.getPage(page_num)\n", - " texts.append(page_obj.extractText())" - ] - }, - { - "cell_type": "markdown", - "id": "b1309001", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "### Display text" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1241063a-8bce-4d59-9044-e79691f1a8c8", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "extract_texts = \"\".join(texts)\n", - "print(extract_texts)" + " text = ''\n", + " for page_num in range(num_pages):\n", + " page = reader.pages[page_num]\n", + " text += page.extract_text()\n", + " \n", + "print(\"Text extracted:\", text)" ] } ], @@ -296,8 +289,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "f81564fd7ebeb27586545d1b327b3a26e45945b221d00b270fcdcce50d75930c", - "notebook_path": "PDF/PDF_Extract_Text_from_PDF.ipynb" + "notebook_id": "24264f1dc83845e25fdf023a95210e84987b196ef0a99dfd78a662d984443f96", + "notebook_path": "PDF/PDF_Extract_Text_from_file.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/PDF/PDF_Merge_multiple_PDF_documents.ipynb b/PDF/PDF_Merge_multiple_PDF_documents.ipynb index 336f0ee0c9..9b79fe6aeb 100644 --- a/PDF/PDF_Merge_multiple_PDF_documents.ipynb +++ b/PDF/PDF_Merge_multiple_PDF_documents.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# PDF - Merge multiple documents\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "32053238-0a9b-4a82-af26-4fe52d644725", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PDF/PDF_Transform_to_MP3.ipynb b/PDF/PDF_Transform_to_MP3.ipynb index 3dca8db544..d765ade579 100644 --- a/PDF/PDF_Transform_to_MP3.ipynb +++ b/PDF/PDF_Transform_to_MP3.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PDF - Transform to MP3\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Sanjay Sabu](https://www.linkedin.com/in/sanjay-sabu-4205/)" ] }, + { + "cell_type": "markdown", + "id": "63bbd786-52f6-477d-b00b-fb0789fdc172", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Apply_custom_styles_on_column.ipynb b/Pandas/Pandas_Apply_custom_styles_on_column.ipynb new file mode 100644 index 0000000000..fe78b222c0 --- /dev/null +++ b/Pandas/Pandas_Apply_custom_styles_on_column.ipynb @@ -0,0 +1,367 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bda4f92a-5665-47de-af7c-a849f55131fa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "1ed72b90-de08-425a-8a76-f4175a522417", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pandas - Apply custom styles on column\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "3513100b-5299-47f9-be21-a336f3972de1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pandas #dataframe #style #column #apply #custom" + ] + }, + { + "cell_type": "markdown", + "id": "32fb4036-3916-4d3b-b0bf-859172a35938", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "ec10fa8a-dabc-4f5f-b4f5-72fd29771f97", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "7f751cdd-5e8a-447c-89e4-3a1bca2047ed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to apply custom styles on a column of a Pandas DataFrame. It is usefull for data analysis and data visualization." + ] + }, + { + "cell_type": "markdown", + "id": "1cb0cf94-ae27-4aae-bece-e93d1a874a14", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pandas Documentation - Styling](https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html)\n", + "- [Pandas Documentation - Styling with functions](https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html#Styling-with-functions)" + ] + }, + { + "cell_type": "markdown", + "id": "3076e4fe-2b09-44c5-adac-00a6d1f5a747", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "63b43b3a-7bc2-4529-b9f9-4698aadc35c6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "63fda2d7-d1d9-4fd3-a752-13d9214d9acc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "22d01f0c-e5f7-4b18-a72a-89d014c1850f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "8704a59c-d01d-4eba-94a7-2a16a37837df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "87d45a29-4fc3-4c06-af32-3536d91f6c55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Sample DataFrame\n", + "data = {\n", + " 'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],\n", + " 'Score': [95, -80, 70, -60, 85],\n", + " 'Age': [25, 32, 18, 40, 28],\n", + " 'Sales': [1200, 980, 1500, 850, 1750]\n", + "}\n", + "\n", + "df = pd.DataFrame(data)" + ] + }, + { + "cell_type": "markdown", + "id": "3f55ae9b-848a-41dd-9481-81393017fb2b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Highlight negative\n", + "In this example, we use a custom style function highlight_negative that applies the CSS attribute color: red to any cell in the `Score` column that contains a negative value. This will change the text color of negative values to red, making them stand out in the DataFrame." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "3e05ee25-4089-44f4-9c8d-4ad1f151e397", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_highlight_negative = df.copy() # Copying the dataframe df into another variable\n", + "\n", + "# Define a function that returns the CSS styles based on the values of the column\n", + "def highlight_negative(s):\n", + " return ['color: red' if value < 0 else '' for value in s]\n", + "\n", + "df_highlight_negative = df_highlight_negative.style.apply(highlight_negative, subset=['Score'])\n", + "df_highlight_negative" + ] + }, + { + "cell_type": "markdown", + "id": "0ed200d1-4ca5-437f-b5d6-4d226a229f26", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Color scale\n", + "The `color_scale` function applies a color scale to the `Age` column of the DataFrame. It assigns blue color to smaller values and red color to larger values, with varying intensity based on the values' magnitudes." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "27c05a6a-c1e5-4b4f-a575-9b4e3e6ace39", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_color_scale = df.copy()\n", + "\n", + "def color_scale(s):\n", + " min_val = min(s)\n", + " max_val = max(s)\n", + " color_range = ['background-color: blue; opacity: 0.6',\n", + " 'background-color: rgb(255, 0, 0); opacity: 0.6']\n", + " normalized_values = (s - min_val) / (max_val - min_val)\n", + " color_mapped = pd.cut(normalized_values, bins=[-0.001, 0.5, 1], labels=color_range)\n", + " return color_mapped\n", + "\n", + "# Apply the custom styles to the 'Age' column\n", + "df_color_scale = df_color_scale.style.apply(color_scale, subset=['Age'])\n", + "\n", + "# Display the styled DataFrame\n", + "df_color_scale" + ] + }, + { + "cell_type": "markdown", + "id": "d0799092-b280-4ec8-a261-ab08572a7984", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Highlight Max\n", + "This style function is applied to the 'Sales' column, highlighting the cell with the maximum value using a purple background." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f6cfa95f-8f85-40a3-83cd-18edeb21692b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df_highlight_max = df.copy()\n", + "\n", + "def highlight_max(s):\n", + " is_max = s == s.max()\n", + " return ['background-color: purple' if v else '' for v in is_max]\n", + "\n", + "df_highlight_max = df_highlight_max.style.apply(highlight_max, subset=['Sales'])\n", + "df_highlight_max" + ] + }, + { + "cell_type": "markdown", + "id": "a2e5fbbf-c19e-4b50-aa43-ae0562fc90c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "b40705f5-8bbf-4a89-b56b-a0c2daa8c6cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ffd0378b-42a0-4f59-8375-d6427ebc9094", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Apply the custom styles to different columns\n", + "styled_df = df.style.apply(highlight_negative, subset=['Score']) \\\n", + " .apply(color_scale, subset=['Age']) \\\n", + " .apply(highlight_max, subset=['Sales']) # Put \"\\\" when you want to apply more style\n", + "\n", + "# Display the styled DataFrame\n", + "styled_df" + ] + }, + { + "cell_type": "markdown", + "id": "01887b1e-f8da-4098-864e-08e56ab76643", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + }, + { + "cell_type": "markdown", + "id": "f723f540-66d9-4de2-9682-043f8160d73a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "5d27e3bd7fdfda696205d0e879b9a00e31ece1a64cae3c864ab22b006a0ab495", + "notebook_path": "Pandas/Pandas_Apply_custom_styles_on_column.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Pandas/Pandas_Check_Columns_type.ipynb b/Pandas/Pandas_Check_Columns_type.ipynb index b26b9484f5..c816ea76a1 100644 --- a/Pandas/Pandas_Check_Columns_type.ipynb +++ b/Pandas/Pandas_Check_Columns_type.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Check Columns type\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3d08b3de-44b9-4976-a1c2-47dc85eba080", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-29)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Check_if_column_is_in_date_format.ipynb b/Pandas/Pandas_Check_if_column_is_in_date_format.ipynb new file mode 100644 index 0000000000..df9068c0f0 --- /dev/null +++ b/Pandas/Pandas_Check_if_column_is_in_date_format.ipynb @@ -0,0 +1,299 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "34338c83-3283-4fcd-a23f-3414d41876f4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "e291550a-7c42-4583-b7d7-42e48d0427dd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pandas - Check if column is in date format\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "3ba43a03-dc41-4b70-8db8-2af572416262", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pandas #dataframe #date #datetime #column #format" + ] + }, + { + "cell_type": "markdown", + "id": "43fd4eb2-9e22-47c7-a0a3-a78d6b055fe1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "d4fceefe-3350-4f62-8321-fb8692ec47c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-27 (Created: 2023-06-13)" + ] + }, + { + "cell_type": "markdown", + "id": "2251def3-3d41-41de-9035-9f031dff462a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will check if a column of a Pandas DataFrame is in date format. It is usefull for organizations to quickly check if a column is in the right format." + ] + }, + { + "cell_type": "markdown", + "id": "be795f36-ef5d-4e82-9688-52c0298c5968", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pandas Documentation - to_datetime](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html)\n", + "- [Stackoverflow - Check if column is in date format](https://stackoverflow.com/questions/29370057/check-if-dataframe-column-is-in-date-format)" + ] + }, + { + "cell_type": "markdown", + "id": "423502a0-32b5-4d0d-b10e-968a63acf169", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "58d661d3-7f72-4a4f-9ae8-37c65bdeccca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5f05f0ad-d533-47bc-a890-a9dc172fe1e5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "16b2bce8-51ad-4287-a73d-f68c36457711", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `column`: column of the DataFrame to check" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "4654c475-195a-4737-ae74-ee11837a1d67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "column = \"date\"" + ] + }, + { + "cell_type": "markdown", + "id": "22ab33ed-9042-409e-9894-af19fe98e6a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "ae98603e-c069-48ae-94b6-8e915f9b763a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b1f96904-649e-4de6-924e-93953a89942b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(\n", + " {\n", + " \"date\": [\"2020-01-01\", \"2020-02-01\", \"2020-03-01\", \"2020-04-01\", \"2020-05-01\", \"Not a date\"],\n", + " \"value\": [1, 2, 3, 4, 5, 6],\n", + " }\n", + ")\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "620a3268-ec34-4e96-8d2c-53436471c81e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Check if column is in date format" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "36653a80-7039-4c1b-b89c-ca92fcdaf6c9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def check_date_format(df, column):\n", + " try:\n", + " pd.to_datetime(df[column], errors='raise')\n", + " print(f\"Column '{column}' is in date format\")\n", + " except (TypeError, ValueError):\n", + " df[column] = pd.to_datetime(df[column], errors='coerce')\n", + " print(f\"Column '{column}' is not in date format. Converted to datetime.\")" + ] + }, + { + "cell_type": "markdown", + "id": "e2b21963-e593-46e7-9983-fa2fddb63e95", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "fecb263e-86c9-49f0-8611-ce9e615ce6cf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0fe72425-6231-4f62-b88b-39132d93abe8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "check_date_format(df, column)" + ] + }, + { + "cell_type": "markdown", + "id": "dac193ec-0544-414d-9558-925bb1edf0c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1cdf0c27d04d84326ec48579541ee6ba9fb14172a2854e61231d11721984cea2", + "notebook_path": "Pandas/Pandas_Check_if_column_is_in_date_format.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Pandas/Pandas_Concatenate_dataframes.ipynb b/Pandas/Pandas_Concatenate_dataframes.ipynb index 6d71549f64..dc388d5380 100644 --- a/Pandas/Pandas_Concatenate_dataframes.ipynb +++ b/Pandas/Pandas_Concatenate_dataframes.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pandas - Concatenate dataframes\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "c4a1d192-5b59-48c2-a3f3-dcc504d998c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-30 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -181,7 +192,7 @@ "tags": [] }, "source": [ - "### Display DataFrame 1" + "### Display DataFrame 2" ] }, { diff --git a/Pandas/Pandas_Convert_datetime_series.ipynb b/Pandas/Pandas_Convert_datetime_series.ipynb index f74c865591..da27ff3df7 100644 --- a/Pandas/Pandas_Convert_datetime_series.ipynb +++ b/Pandas/Pandas_Convert_datetime_series.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Pandas - Convert datetime series\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e49124be-b9d2-4e03-9cd6-bc97acd051de", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2022-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Create_Pivot_Table.ipynb b/Pandas/Pandas_Create_Pivot_Table.ipynb index 681bd3647d..382e5f6746 100644 --- a/Pandas/Pandas_Create_Pivot_Table.ipynb +++ b/Pandas/Pandas_Create_Pivot_Table.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Create Pivot Table\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "f1a751d3-78fb-44f4-9efe-3e2a5ce4c137", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-10-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb b/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb index 77433cd171..94cd34b528 100644 --- a/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb +++ b/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Create conditional column enrichment using DataFrame.loc\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "08b322b0-47e4-42d6-80da-196642df73f5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-04 (Created: 2023-06-04)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Create_dataframe_from_dict.ipynb b/Pandas/Pandas_Create_dataframe_from_dict.ipynb index d8ecefe79e..836e912330 100644 --- a/Pandas/Pandas_Create_dataframe_from_dict.ipynb +++ b/Pandas/Pandas_Create_dataframe_from_dict.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pandas - Create dataframe from dict\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "2aec1b66-ba53-40fe-965e-bd4c24ccd527", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-07 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Drop_Columns_By_Index.ipynb b/Pandas/Pandas_Drop_Columns_By_Index.ipynb index 6d63b5de41..04bf33c42c 100644 --- a/Pandas/Pandas_Drop_Columns_By_Index.ipynb +++ b/Pandas/Pandas_Drop_Columns_By_Index.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Drop Columns By Index\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sunny Chugh](https://www.linkedin.com/in/sunny-chugh-ab1630177/)" ] }, + { + "cell_type": "markdown", + "id": "283ae532-74f1-420b-9ed4-4093beb63135", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-12)" + ] + }, { "cell_type": "markdown", "id": "09415eb1-4144-495f-90b1-7ca5a94c2515", diff --git a/Pandas/Pandas_Drop_First_column.ipynb b/Pandas/Pandas_Drop_First_column.ipynb index 263444097c..9d0893fbb7 100644 --- a/Pandas/Pandas_Drop_First_column.ipynb +++ b/Pandas/Pandas_Drop_First_column.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Drop First column\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "84dd57ff-4083-462a-889b-8791845efb65", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-28)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Drop_columns.ipynb b/Pandas/Pandas_Drop_columns.ipynb index 98f9d8c7ea..d987c3f309 100644 --- a/Pandas/Pandas_Drop_columns.ipynb +++ b/Pandas/Pandas_Drop_columns.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Drop columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b19046be-5b85-41c5-9fa2-fcb1ad7da889", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Drop_duplicates.ipynb b/Pandas/Pandas_Drop_duplicates.ipynb index 30ef8024ac..a73620dec8 100644 --- a/Pandas/Pandas_Drop_duplicates.ipynb +++ b/Pandas/Pandas_Drop_duplicates.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Drop duplicates\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sunny Chugh](https://www.linkedin.com/in/sunny-chugh-ab1630177/)" ] }, + { + "cell_type": "markdown", + "id": "185d5034-ef17-4aa7-ba5b-c47ee17b1324", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-04 (Created: 2023-06-04)" + ] + }, { "cell_type": "markdown", "id": "12216852-bbe9-457b-a7df-e47898f4f21f", diff --git a/Pandas/Pandas_Enforce_data_types_to_columns.ipynb b/Pandas/Pandas_Enforce_data_types_to_columns.ipynb index 4ef17352c2..ebb37ba332 100644 --- a/Pandas/Pandas_Enforce_data_types_to_columns.ipynb +++ b/Pandas/Pandas_Enforce_data_types_to_columns.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Enforce data types to columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6b5ee7f9-6ea9-44e7-873f-bc1dc6df6640", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-04 (Created: 2023-06-04)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Fill_emtpy_values.ipynb b/Pandas/Pandas_Fill_emtpy_values.ipynb index 91ca762d92..36485aec24 100644 --- a/Pandas/Pandas_Fill_emtpy_values.ipynb +++ b/Pandas/Pandas_Fill_emtpy_values.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Fill emtpy values\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "580fb0f4-76ed-4a88-ba55-078f7f8fdbfa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2022-11-29)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Filter_DataFrame.ipynb b/Pandas/Pandas_Filter_DataFrame.ipynb index 85e3ecce7b..39f79ad09c 100644 --- a/Pandas/Pandas_Filter_DataFrame.ipynb +++ b/Pandas/Pandas_Filter_DataFrame.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Filter DataFrame\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "71793452-bcf2-490b-82aa-e6a99890f60b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-04 (Created: 2023-03-02)" + ] + }, { "cell_type": "markdown", "id": "404fb738-3c38-4823-96bd-78efd28f61ee", diff --git a/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb b/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb index 3e0e1851a2..dbdf1742ea 100644 --- a/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb +++ b/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Flatten MultiIndex Columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "f2bb470d-6d65-4557-a82d-dcf387d6e2fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-29)" + ] + }, { "cell_type": "markdown", "id": "f870be67-e49c-4211-9c28-29c1ffdabfea", diff --git a/Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb b/Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb new file mode 100644 index 0000000000..6a3e59311f --- /dev/null +++ b/Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb @@ -0,0 +1,278 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5e6ea42a-b5e2-40f7-990b-72cbbc5b4cde", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "0bfa6886-f151-4278-a7ae-f199fe1f25c1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Pandas - Format URL as clickable link on column\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "bc1b72c6-7a1a-4ce6-8b8e-feb705cfec90", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pandas #dataframe #url #link #column #format" + ] + }, + { + "cell_type": "markdown", + "id": "3e7d2885-80f6-4630-882f-c93d2a1e21d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "a9c9ee66-8d72-4516-a3d7-e9dc48aba90d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-24 (Created: 2023-07-24)" + ] + }, + { + "cell_type": "markdown", + "id": "414a941a-f0e2-4f9a-8036-5333fca3ca3a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to format a URL as a clickable link on a column of a Pandas DataFrame. This is usefull for organizations to quickly access to a website from a DataFrame." + ] + }, + { + "cell_type": "markdown", + "id": "52bb5773-7b38-45e1-a8ea-0cd5781c18a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Pandas Documentation](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.style.html)" + ] + }, + { + "cell_type": "markdown", + "id": "2eee425c-0e02-4a16-97c9-378e579512e5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "820f381a-5c4e-4d41-b8e5-61ec4047b9ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "9a55aa01-1262-456a-9bd8-f6f524d8e410", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "04a271da-4c85-4868-8834-4afc7e7d5550", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `column_name`: Column name that stored URLs" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "49dd9cef-f9f1-4ca3-9688-a3d043211f1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "column_name = \"Link\"" + ] + }, + { + "cell_type": "markdown", + "id": "189d6107-2043-4283-b2a5-7732c46c41db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "cdabf2be-140d-4509-ba25-5db3dcf41196", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f3cd74d4-c30a-4e29-88d8-663eb66c0215", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Create a fake dataset\n", + "data = {\n", + " \"Name\": [\"Benjamin\", \"John\", \"Sara\"],\n", + " \"Link\": [\n", + " \"https://www.linkedin.com/in/benjamin-filly-05427727a/\",\n", + " \"https://www.linkedin.com/in/john-doe-1234567/\",\n", + " \"https://www.linkedin.com/in/sara-smith-098765/\",\n", + " ],\n", + "}\n", + "\n", + "# Create a DataFrame\n", + "df_init = pd.DataFrame(data)\n", + "df_init" + ] + }, + { + "cell_type": "markdown", + "id": "65294d16-c82b-41ee-b4c0-df295443fbe1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "ce9570c8-3380-4060-9eae-1c7b1177cfe0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Format URL as clickable link on column" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "200d75af-79e3-4ddd-997c-bcd917afd229", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = df_init.copy()\n", + "\n", + "# Format the Link column as a clickable link in a new tab\n", + "df = df.style.format({column_name: lambda x: f'{x}'})\n", + "df" + ] + }, + { + "cell_type": "markdown", + "id": "f2db4de5-ef54-432c-810f-75ab3d43b291", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "58c0be4a754b9695c5d1bb790222ff5c3d8426dc0fa876d1f948fce48d4730c5", + "notebook_path": "Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Pandas/Pandas_Format_number_to_string.ipynb b/Pandas/Pandas_Format_number_to_string.ipynb index ffd787c1d2..c2cc00a798 100644 --- a/Pandas/Pandas_Format_number_to_string.ipynb +++ b/Pandas/Pandas_Format_number_to_string.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Format number to string\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "916436b3-5bca-48a9-adcd-2abd80db75e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Get_n_largest.ipynb b/Pandas/Pandas_Get_n_largest.ipynb index 681ae0efe2..880843dff4 100644 --- a/Pandas/Pandas_Get_n_largest.ipynb +++ b/Pandas/Pandas_Get_n_largest.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Get n largest\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "ddcea19a-46ae-452a-8317-4f75cf6f38c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "2529cbfb-8e4c-4ad8-ab4a-8a8ca33d1613", diff --git a/Pandas/Pandas_Get_n_smallest.ipynb b/Pandas/Pandas_Get_n_smallest.ipynb index 0356ae146f..9384c791d9 100644 --- a/Pandas/Pandas_Get_n_smallest.ipynb +++ b/Pandas/Pandas_Get_n_smallest.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Get n smallest\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "a2130560-9f22-433c-a659-f81a6028dea5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-13 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "7fbf01ed-bcfa-4c5a-b083-315d3ab7c919", diff --git a/Pandas/Pandas_Groupby_and_Aggregate.ipynb b/Pandas/Pandas_Groupby_and_Aggregate.ipynb index d241d49241..d354dfbd71 100644 --- a/Pandas/Pandas_Groupby_and_Aggregate.ipynb +++ b/Pandas/Pandas_Groupby_and_Aggregate.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Groupby and Aggregate\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "96b3fc79-9903-4603-86a5-9ab441ae86b8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2022-11-30)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_ISO_Date_Conversion.ipynb b/Pandas/Pandas_ISO_Date_Conversion.ipynb index e48e2b5126..c9e2344675 100644 --- a/Pandas/Pandas_ISO_Date_Conversion.ipynb +++ b/Pandas/Pandas_ISO_Date_Conversion.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Pandas - ISO Date Conversion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "6e3d6b95-484d-49eb-aebf-be5ebaaa71a8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-10-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Insert_column.ipynb b/Pandas/Pandas_Insert_column.ipynb index b31169fa7c..99aad6f809 100644 --- a/Pandas/Pandas_Insert_column.ipynb +++ b/Pandas/Pandas_Insert_column.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Insert column\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "86202e03-74cf-42c8-8887-8a5f2c2d04b1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-04 (Created: 2023-06-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb b/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb index 1148b5c35c..ed770041d1 100644 --- a/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb +++ b/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pandas - Iterate over DataFrame rows\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e32c77e9-0a12-4fd4-9203-0a38a9755c21", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb b/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb index c1a8dc4779..4aaa0d13c1 100644 --- a/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb +++ b/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pandas - Iterate over DataFrame rows as namedtuples\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "767d5d1c-8cd9-4119-b82c-a32ec7b75c17", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-08 (Created: 2023-06-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Keep_columns.ipynb b/Pandas/Pandas_Keep_columns.ipynb index 7c9ca008ac..583b5baea7 100644 --- a/Pandas/Pandas_Keep_columns.ipynb +++ b/Pandas/Pandas_Keep_columns.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Keep columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b654fd2c-bfe9-4c38-95d5-e21d146154ec", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Looping_Over_Dataframe.ipynb b/Pandas/Pandas_Looping_Over_Dataframe.ipynb index 1affa8fa47..081f65d707 100644 --- a/Pandas/Pandas_Looping_Over_Dataframe.ipynb +++ b/Pandas/Pandas_Looping_Over_Dataframe.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pandas - Looping Over Dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "47f6d1e0-be68-4397-8bb5-b3866a8a8da6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2021-10-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Map_column_with_values_in_dict.ipynb b/Pandas/Pandas_Map_column_with_values_in_dict.ipynb index 7f564603a6..d8d35cb6e6 100644 --- a/Pandas/Pandas_Map_column_with_values_in_dict.ipynb +++ b/Pandas/Pandas_Map_column_with_values_in_dict.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Map column with values in dict\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e9da723f-3537-4ad9-a5c0-7a600f164192", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-08)" + ] + }, { "cell_type": "markdown", "id": "efe29146-4ed5-494b-9bdf-04c1701b2a2a", diff --git a/Pandas/Pandas_Merge_Dataframes.ipynb b/Pandas/Pandas_Merge_Dataframes.ipynb index 1c745357dc..353422a2ea 100644 --- a/Pandas/Pandas_Merge_Dataframes.ipynb +++ b/Pandas/Pandas_Merge_Dataframes.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pandas - Merge Dataframes\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "1eebb306-616a-40fb-9968-a490986e0956", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-04 (Created: 2021-10-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Pivot_rows_to_columns.ipynb b/Pandas/Pandas_Pivot_rows_to_columns.ipynb index 345361a6da..fc82f0fc9c 100644 --- a/Pandas/Pandas_Pivot_rows_to_columns.ipynb +++ b/Pandas/Pandas_Pivot_rows_to_columns.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Pivot rows to columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Ismail Chihab](https://www.linkedin.com/in/ismail-chihab-4b0a04202/)" ] }, + { + "cell_type": "markdown", + "id": "b55dec66-d0c4-4f58-a1a9-00aea0c7b358", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Read_CSV.ipynb b/Pandas/Pandas_Read_CSV.ipynb index f5cd2a610c..6e61e44031 100644 --- a/Pandas/Pandas_Read_CSV.ipynb +++ b/Pandas/Pandas_Read_CSV.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Read CSV\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "18cd9b05-bffb-4143-99da-b15f4343a862", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Read_Excel.ipynb b/Pandas/Pandas_Read_Excel.ipynb index f978e6c4a1..c4fe6b2aff 100644 --- a/Pandas/Pandas_Read_Excel.ipynb +++ b/Pandas/Pandas_Read_Excel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Read Excel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4fd4e217-531e-44f4-8a13-e794b1cfffa6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Rename_columns.ipynb b/Pandas/Pandas_Rename_columns.ipynb index 0b402cdad6..f16291d23a 100644 --- a/Pandas/Pandas_Rename_columns.ipynb +++ b/Pandas/Pandas_Rename_columns.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Rename columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3878a9b7-c6d8-4e68-9a89-b1273352765c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pandas/Pandas_Save_dataframe_to_CSV.ipynb b/Pandas/Pandas_Save_dataframe_to_CSV.ipynb index fe60070c6c..c77137eb11 100644 --- a/Pandas/Pandas_Save_dataframe_to_CSV.ipynb +++ b/Pandas/Pandas_Save_dataframe_to_CSV.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Save dataframe to CSV\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ba92439f-dcac-4f80-a943-e447085aa093", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2023-06-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Save_dataframe_to_Excel.ipynb b/Pandas/Pandas_Save_dataframe_to_Excel.ipynb index bd4ef9cbcd..04d921c6eb 100644 --- a/Pandas/Pandas_Save_dataframe_to_Excel.ipynb +++ b/Pandas/Pandas_Save_dataframe_to_Excel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandas - Save dataframe to Excel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "4e99acc1-648f-4d06-928c-f4a2a4f364c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-09 (Created: 2023-06-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb b/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb index fc9539936a..b2e03a3eac 100644 --- a/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb +++ b/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Sort values by multiples columns\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "a4b36757-755e-4532-a91d-2eb4770b0294", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-16 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "b8009e82-4d85-45bd-9272-eb7538d0443d", diff --git a/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb b/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb index 90fcabf6fc..80cbc1dd49 100644 --- a/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb +++ b/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Transform DataFrame to json file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ab4fcd28-a8ea-45bf-aaf6-ae9e29263332", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-09 (Created: 2023-05-09)" + ] + }, { "cell_type": "markdown", "id": "506d034f-6cb7-4348-95b5-6f5401774e7a", diff --git a/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb b/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb index 930defa622..e3c6621248 100644 --- a/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb +++ b/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Pandas - Transform Dataframe to dict\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3108d744-19ff-4c41-b7b7-541c8a579235", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-09 (Created: 2023-05-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb b/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb index bb049c4667..578a57ee17 100644 --- a/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb +++ b/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandasql - Query CSV Using SQL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "7e3dfcbc-2881-496f-ba11-42ee957b41b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-04)" + ] + }, { "cell_type": "markdown", "id": "5e611b8c-4ef4-44b9-921a-ce83f7f7b674", diff --git a/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb b/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb index 923b9ea9cb..794c1c540c 100644 --- a/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb +++ b/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandasql - Query Excel Using SQL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "25f45a69-4c21-4f5d-87d2-10029ee03507", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-07)" + ] + }, { "cell_type": "markdown", "id": "5e611b8c-4ef4-44b9-921a-ce83f7f7b674", diff --git a/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb b/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb index 619dd0a34b..975bcbbb88 100644 --- a/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb +++ b/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pandasql - Query Parquet Using SQL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "9875cff0-d186-472a-9eff-372862e285f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-07)" + ] + }, { "cell_type": "markdown", "id": "5e611b8c-4ef4-44b9-921a-ce83f7f7b674", diff --git a/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb b/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb index f304839f88..51ffd11316 100644 --- a/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb +++ b/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Panel - Create a kernel on Naas\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "0619379e-9f47-4c02-aaf8-f934ab7e333c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-11)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Pillow/Pillow_Add_data_to_image.ipynb b/Pillow/Pillow_Add_data_to_image.ipynb index 84014b8edf..532b6f7380 100644 --- a/Pillow/Pillow_Add_data_to_image.ipynb +++ b/Pillow/Pillow_Add_data_to_image.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pillow - Add data to image\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d90b2454-7e58-4233-be57-df70b17d66c7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-19)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pillow/Pillow_Create_indicator.ipynb b/Pillow/Pillow_Create_indicator.ipynb index b1c6399c11..71fbf004e6 100644 --- a/Pillow/Pillow_Create_indicator.ipynb +++ b/Pillow/Pillow_Create_indicator.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pillow - Create indicator\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3808b6f1-0240-43fd-a49a-2f44528f5486", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-12-06)" + ] + }, { "cell_type": "markdown", "id": "e139471d-32a1-40d4-91c6-4382a1bf7b62", diff --git a/Pillow/Pillow_Create_new_image.ipynb b/Pillow/Pillow_Create_new_image.ipynb index 6d14d78c51..26d771c158 100644 --- a/Pillow/Pillow_Create_new_image.ipynb +++ b/Pillow/Pillow_Create_new_image.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pillow - Create new image\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0680d7cf-dd23-4b53-88fc-eac72ec25a28", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-12-06)" + ] + }, { "cell_type": "markdown", "id": "e139471d-32a1-40d4-91c6-4382a1bf7b62", diff --git a/Pillow/Pillow_Generate_A_Certificate_Template.ipynb b/Pillow/Pillow_Generate_A_Certificate_Template.ipynb index 6e76d2a26a..4bd8af8335 100644 --- a/Pillow/Pillow_Generate_A_Certificate_Template.ipynb +++ b/Pillow/Pillow_Generate_A_Certificate_Template.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pillow - Generate A Certificate Template\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Suhas B](https://www.linkedin.com/in/suhasbrao/)" ] }, + { + "cell_type": "markdown", + "id": "db2a2e2f-f0d3-4c55-a8f1-4224dc19e5c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Pipedrive/Pipedrive_Get_contact.ipynb b/Pipedrive/Pipedrive_Get_contact.ipynb index f7dd847fad..e3dd32bb06 100644 --- a/Pipedrive/Pipedrive_Get_contact.ipynb +++ b/Pipedrive/Pipedrive_Get_contact.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Pipedrive - Get contact\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "2c9cb53f-2469-44d3-94f4-1685ec526764", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-10-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plaid/Plaid_Get_accounts.ipynb b/Plaid/Plaid_Get_accounts.ipynb index 4bfd0745da..2f4509105a 100644 --- a/Plaid/Plaid_Get_accounts.ipynb +++ b/Plaid/Plaid_Get_accounts.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plaid - Get accounts\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "2e94cac6-1e39-4149-88a0-22e64a028030", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plaid/Plaid_Get_transactions.ipynb b/Plaid/Plaid_Get_transactions.ipynb index 02d0855040..7ef8977463 100644 --- a/Plaid/Plaid_Get_transactions.ipynb +++ b/Plaid/Plaid_Get_transactions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plaid - Get transactions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "f28edc15-0188-4a14-8ad8-f1b3c4f485e0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb b/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb index 40a946c30d..fd4c59b6bf 100644 --- a/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb +++ b/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Plotly - Create Balance Sheet Treemaps\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7b1dc479-412f-4025-9bdb-daa0ae2c4ce9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-31)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Plotly/Plotly_Create_Barline_chart.ipynb b/Plotly/Plotly_Create_Barline_chart.ipynb index 9d52f83f9c..5641c0f3ba 100644 --- a/Plotly/Plotly_Create_Barline_chart.ipynb +++ b/Plotly/Plotly_Create_Barline_chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Plotly - Create Barline chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "4c95763c-2742-483d-8f57-09d52924877b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-26)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Bubblechart.ipynb b/Plotly/Plotly_Create_Bubblechart.ipynb index 0b412d9fd4..e21990436d 100644 --- a/Plotly/Plotly_Create_Bubblechart.ipynb +++ b/Plotly/Plotly_Create_Bubblechart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Bubblechart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "670ddeef-5f28-4a97-addc-bbb5d80f6695", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Bubblemap_by_City.ipynb b/Plotly/Plotly_Create_Bubblemap_by_City.ipynb index 5edbf4c452..1e07fcbbe1 100644 --- a/Plotly/Plotly_Create_Bubblemap_by_City.ipynb +++ b/Plotly/Plotly_Create_Bubblemap_by_City.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Bubblemap by City\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c729ecee-a4c5-4871-bc02-1cb621f95548", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "61b68199-278e-4070-8b79-94de0b5409de", diff --git a/Plotly/Plotly_Create_Candlestick.ipynb b/Plotly/Plotly_Create_Candlestick.ipynb index 66522b2f97..7c00b4cfa6 100644 --- a/Plotly/Plotly_Create_Candlestick.ipynb +++ b/Plotly/Plotly_Create_Candlestick.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Plotly - Create Candlestick\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "f2ec55ac-aebf-4129-be20-feb6c8391ba8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Gantt_chart.ipynb b/Plotly/Plotly_Create_Gantt_chart.ipynb index 2ead042f51..1b6028e5e4 100644 --- a/Plotly/Plotly_Create_Gantt_chart.ipynb +++ b/Plotly/Plotly_Create_Gantt_chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Gantt chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "91d128e4-3f83-44ce-8802-1016ee3894df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Heatmap.ipynb b/Plotly/Plotly_Create_Heatmap.ipynb index cf0a5b285e..53560d5165 100644 --- a/Plotly/Plotly_Create_Heatmap.ipynb +++ b/Plotly/Plotly_Create_Heatmap.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Heatmap\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "42e85489-0e76-40b9-80e9-e8371cc42460", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Horizontal_Barchart.ipynb b/Plotly/Plotly_Create_Horizontal_Barchart.ipynb index 48e45124f4..960ead8bbb 100644 --- a/Plotly/Plotly_Create_Horizontal_Barchart.ipynb +++ b/Plotly/Plotly_Create_Horizontal_Barchart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Horizontal Barchart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "8d0c12f7-bd34-4a33-8cd4-3cda9afe6104", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Leaderboard.ipynb b/Plotly/Plotly_Create_Leaderboard.ipynb index e4b011e96c..7d01cd8b24 100644 --- a/Plotly/Plotly_Create_Leaderboard.ipynb +++ b/Plotly/Plotly_Create_Leaderboard.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Leaderboard\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "109fa5d2-1ae5-46ae-8663-830dc66a879f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Leaderboard_stacked.ipynb b/Plotly/Plotly_Create_Leaderboard_stacked.ipynb index 1309cb8e52..6f7b18b762 100644 --- a/Plotly/Plotly_Create_Leaderboard_stacked.ipynb +++ b/Plotly/Plotly_Create_Leaderboard_stacked.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Leaderboard stacked\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "7bb2286c-f7ab-486a-8187-d70d77696916", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Linechart.ipynb b/Plotly/Plotly_Create_Linechart.ipynb index 0b95338129..142bf249ce 100644 --- a/Plotly/Plotly_Create_Linechart.ipynb +++ b/Plotly/Plotly_Create_Linechart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Linechart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "4d150cda-29d6-4b27-ab2b-ad5473fa60db", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-23)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Mapchart_world.ipynb b/Plotly/Plotly_Create_Mapchart_world.ipynb index 95fc373461..275f605769 100644 --- a/Plotly/Plotly_Create_Mapchart_world.ipynb +++ b/Plotly/Plotly_Create_Mapchart_world.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Mapchart world\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "1b0a4bc3-5d6f-4405-a1c9-4b38cfb88e6e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb b/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb index 6ded813f41..68e935f024 100644 --- a/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb +++ b/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Plotly - Create Treemaps with plotly.express\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ef89863a-a6bf-4a43-808e-bbdff1b46191", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-31)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb b/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb index bd40150971..3cf37a8458 100644 --- a/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb +++ b/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Plotly - Create Treemaps with plotly.graph objects\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f5f68cd3-f191-42b0-8981-7b63acc1463b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-31)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Plotly/Plotly_Create_Vertical_Barchart.ipynb b/Plotly/Plotly_Create_Vertical_Barchart.ipynb index 707114dcba..da7a5ffda0 100644 --- a/Plotly/Plotly_Create_Vertical_Barchart.ipynb +++ b/Plotly/Plotly_Create_Vertical_Barchart.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Plotly - Create Vertical Barchart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "1063f93c-cbdc-49dc-9c0f-d1c3462f2010", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb b/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb index 60e52f6602..b5a2170907 100644 --- a/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb +++ b/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Plotly - Create Vertical Barchart group\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "e533950b-1237-4a21-8427-6e0aff687787", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb b/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb index 88acf78532..1c9956b9dd 100644 --- a/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb +++ b/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Plotly - Create Vertical Barchart stacked\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "83769f7c-c8e0-4af5-8174-f3ecdf22303b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Plotly/Plotly_Create_Waterfall_chart.ipynb b/Plotly/Plotly_Create_Waterfall_chart.ipynb index 9f9fd6b81e..401c1bc738 100644 --- a/Plotly/Plotly_Create_Waterfall_chart.ipynb +++ b/Plotly/Plotly_Create_Waterfall_chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Plotly - Create Waterfall chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "634fce0a-66bd-45bb-bf5e-b8013de27b8a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Polars/Polars_Concatenate_DataFrames.ipynb b/Polars/Polars_Concatenate_DataFrames.ipynb new file mode 100644 index 0000000000..de62341c50 --- /dev/null +++ b/Polars/Polars_Concatenate_DataFrames.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3eab884e-aac9-4641-b5df-ad06a64f6777", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "5a856e15-816f-4878-b992-b440f2fd1e3b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Polars - Concatenate DataFrames\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "de426f23-3180-4de7-b3c2-2ad29dc9485e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #polars #dataframes #concatenate #python #pandas #data #snippet" + ] + }, + { + "cell_type": "markdown", + "id": "b89a330d-fc17-4dd3-98d3-d53acdcc719c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "ed4953e5-2844-47e9-b2d0-58426c5844f4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "db4e5b85-a112-4051-93b5-de640791528a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook explains how to concatenate DataFrames using Polars and Python. It is usefull for data analysis and data manipulation." + ] + }, + { + "cell_type": "markdown", + "id": "bbee5e9f-db67-41d6-9d5f-f30eba922ba1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Polars.concat](https://pola-rs.github.io/polars/py-polars/html/reference/api/polars.concat.html)\n", + "- [Pandas Documentation - Concatenation](https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html#concatenating-objects)" + ] + }, + { + "cell_type": "markdown", + "id": "f712388c-9b5b-4e98-be21-2cf2d6f6f221", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "23f098bf-a290-4a07-8e0f-b19aa0098b9d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "92c9e07a-af06-4b65-bdbf-8af5b1c2f284", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import polars as pl\n", + "except ModuleNotFoundError:\n", + " !pip install polars\n", + " import polars as pl" + ] + }, + { + "cell_type": "markdown", + "id": "cd3d710d-3985-46ad-8cda-a0df46726c27", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "2f606ddd-249a-4da7-899b-a0234cb21394", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrames" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a404c779-e32c-40a0-af9b-4680d451d119", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df1 = pl.DataFrame(\n", + " {\n", + " \"A\": [\"A0\", \"A1\", \"A2\", \"A3\"],\n", + " \"B\": [\"B0\", \"B1\", \"B2\", \"B3\"],\n", + " \"C\": [\"C0\", \"C1\", \"C2\", \"C3\"],\n", + " \"D\": [\"D0\", \"D1\", \"D2\", \"D3\"],\n", + " },\n", + ")\n", + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "14168677-fd16-419a-8bbc-c5ae2a899672", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df2 = pl.DataFrame(\n", + " {\n", + " \"A\": [\"A4\", \"A5\", \"A6\", \"A7\"],\n", + " \"B\": [\"B4\", \"B5\", \"B6\", \"B7\"],\n", + " \"C\": [\"C4\", \"C5\", \"C6\", \"C7\"],\n", + " \"D\": [\"D4\", \"D5\", \"D6\", \"D7\"],\n", + " },\n", + ")\n", + "df2" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e4828844-4c3a-4618-953e-6dde54b4bac2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df3 = pl.DataFrame(\n", + " {\n", + " \"A\": [\"A8\", \"A9\", \"A10\", \"A11\"],\n", + " \"B\": [\"B8\", \"B9\", \"B10\", \"B11\"],\n", + " \"C\": [\"C8\", \"C9\", \"C10\", \"C11\"],\n", + " \"D\": [\"D8\", \"D9\", \"D10\", \"D11\"],\n", + " },\n", + ")\n", + "df3" + ] + }, + { + "cell_type": "markdown", + "id": "cbf04efa-ca69-4316-8a86-f9b5a960618a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "5df77d6f-04d5-4f33-a767-643a09fdff32", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Concatenate DataFrames" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "cf3d281b-850d-4a4f-9795-9bd3917ca8a6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Concatenate DataFrames\n", + "frames = [df1, df2, df3]\n", + "result = pl.concat(frames)\n", + "\n", + "# Display result\n", + "result" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "49ed2a1b8e8e4d090e53319021c0d31dff5664db5991ffdf6ec49d5620eec924", + "notebook_path": "Polars/Polars_Concatenate_DataFrames.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Polars/Polars_Create_DataFrame.ipynb b/Polars/Polars_Create_DataFrame.ipynb new file mode 100644 index 0000000000..7623fe4c35 --- /dev/null +++ b/Polars/Polars_Create_DataFrame.ipynb @@ -0,0 +1,279 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "26d971be-a654-4715-97d3-18ecf0b7a9cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "1889751c-f97e-4792-8429-7dab25ec885f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Polars - Create DataFrame\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "35af0493-2cfb-485f-9d0f-8ce84410dccc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #polars #dataframe #read #python #library #data #csv" + ] + }, + { + "cell_type": "markdown", + "id": "06354b65-7306-4825-aef2-c63aeb79f50b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "3110ae1c-fc1e-489b-b206-368940d20359", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-06 (Created: 2023-07-06)" + ] + }, + { + "cell_type": "markdown", + "id": "c0500e98-9f0a-4f87-97aa-5f4c44c2ea0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to create a DataFrame using `polars` library.\n", + "\n", + "About Polars:\n", + "- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n", + "- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n", + "- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory." + ] + }, + { + "cell_type": "markdown", + "id": "6c510bc9-3949-4b57-916a-c40e78419981", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Polars](https://pypi.org/project/polars/)\n", + "- [Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)" + ] + }, + { + "cell_type": "markdown", + "id": "658d10d1-a3d7-4e16-aa0a-fdb9ede7b22c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "d5ad9c05-19dc-463c-868d-bdd747639473", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "be598579-8752-4f61-a352-9c3ae2d031e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import polars as pl\n", + "except ModuleNotFoundError:\n", + " !pip install polars\n", + " import polars as pl" + ] + }, + { + "cell_type": "markdown", + "id": "12b438fc-fe51-460c-898e-c48816da050a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `data`: data to be used to create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "66170a78-2f6e-471e-87ae-ee00206a43d5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "data = {\n", + " 'column 1': [\"A\", \"B\", \"C\", \"D\", \"E\", \"B\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\",],\n", + " 'column 2': [3, 7, 8, 4, 1, 3, 2, 5, 7, 6, 3, 11],\n", + " 'column 3': [\"V\", \"C\", \"M\", \"A\", \"S\", \"V\", \"R\", \"L\", \"Q\", \"N\", \"P\", \"O\",]\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "8b34fd7a-0021-4ac5-8e8d-ef699978f907", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "19ded647-e9d7-4e0f-8b89-cb84ca613351", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "c1d87c44-d6b8-4f5a-82fb-0fc6edfe61f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pl.DataFrame(data)" + ] + }, + { + "cell_type": "markdown", + "id": "fad28fc0-5fdd-48bd-8fdd-029ad0f92022", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a73fefb-1117-44a9-841d-2f8d94812ec8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display the DataFrame and number of rows and columns" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "2be32a3f-a5a9-457a-8b3c-606a7ead14bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"Number of rows: {df.height}\")\n", + "print(f\"Number of columns: {df.width}\")\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd3e2587-2e60-4987-92c3-d87d2f8e9ce0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "b0ec8cb4ccca4c7e92db03bd0282150b5301b49d4afd039cd3d6d134bc302247", + "notebook_path": "Polars/Polars_Create_DataFrame.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Polars/Polars_Read_CSV.ipynb b/Polars/Polars_Read_CSV.ipynb index 158d795829..f224d7ec35 100644 --- a/Polars/Polars_Read_CSV.ipynb +++ b/Polars/Polars_Read_CSV.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Polars - Read CSV\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "f19e2c04-fbac-491c-b596-5b5123ebbd28", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-07)" + ] + }, { "cell_type": "markdown", "id": "c0500e98-9f0a-4f87-97aa-5f4c44c2ea0a", diff --git a/Polars/Polars_Select_Columns.ipynb b/Polars/Polars_Select_Columns.ipynb new file mode 100644 index 0000000000..7a051074cb --- /dev/null +++ b/Polars/Polars_Select_Columns.ipynb @@ -0,0 +1,358 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "26d971be-a654-4715-97d3-18ecf0b7a9cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "1889751c-f97e-4792-8429-7dab25ec885f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Polars - Select columns\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "35af0493-2cfb-485f-9d0f-8ce84410dccc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #polars #dataframe #read #python #library #data #csv" + ] + }, + { + "cell_type": "markdown", + "id": "06354b65-7306-4825-aef2-c63aeb79f50b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "b0ee3ca8-ee1b-41d6-914e-fa40e2c79087", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-06 (Created: 2023-07-06)" + ] + }, + { + "cell_type": "markdown", + "id": "c0500e98-9f0a-4f87-97aa-5f4c44c2ea0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to select columns in a DataFrame using `polars` library.\n", + "\n", + "About Polars:\n", + "- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n", + "- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n", + "- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory." + ] + }, + { + "cell_type": "markdown", + "id": "6c510bc9-3949-4b57-916a-c40e78419981", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Polars](https://pypi.org/project/polars/)\n", + "- [Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)" + ] + }, + { + "cell_type": "markdown", + "id": "658d10d1-a3d7-4e16-aa0a-fdb9ede7b22c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "d5ad9c05-19dc-463c-868d-bdd747639473", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "be598579-8752-4f61-a352-9c3ae2d031e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import polars as pl\n", + "except ModuleNotFoundError:\n", + " !pip install polars\n", + " import polars as pl" + ] + }, + { + "cell_type": "markdown", + "id": "ab5a2514-bea4-4089-8c5d-8d57e0f3d4a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `data`: data to be used to create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3441ba75-eeb3-478f-a695-a624820287f0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "data = {\n", + " 'column 1': [\"A\", \"B\", \"C\", \"D\", \"E\", \"B\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\",],\n", + " 'column 2': [3, 7, 8, 4, 1, 3, 2, 5, 7, 6, 3, 11],\n", + " 'column 3': [\"V\", \"C\", \"M\", \"A\", \"S\", \"V\", \"R\", \"L\", \"Q\", \"N\", \"P\", \"O\",]\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "8b34fd7a-0021-4ac5-8e8d-ef699978f907", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "19ded647-e9d7-4e0f-8b89-cb84ca613351", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c1d87c44-d6b8-4f5a-82fb-0fc6edfe61f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pl.DataFrame(data)" + ] + }, + { + "cell_type": "markdown", + "id": "c0ffd201-f136-4cde-8153-a498b71c5486", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Select columns" + ] + }, + { + "cell_type": "markdown", + "id": "82aac1cd-f9c6-45dc-b484-3336c830b9d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To select columns from the DataFrame, use the select() method:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d41940a9-21d6-4b88-b83c-4ebfc74578b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_column = df.select(\"column 2\")" + ] + }, + { + "cell_type": "markdown", + "id": "63a6efd9-7c01-4b8b-adec-9c4283b31bb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To select multiple columns from the DataFrame, use again the select() method:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ffa77f32-c714-4363-93fb-662f21d329bc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_multiple_columns = df.select(\n", + " [\"column 1\",\"column 2\"]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "0bd83746-0637-47e4-98c2-086d49b0a221", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To select columns from the DataFrame by data type, use the expression below within the select() function:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "895026e1-8260-458d-8cbe-c71e2daf2be5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_column_by_data_type = df.select(\n", + " pl.col(pl.Int64)\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "fad28fc0-5fdd-48bd-8fdd-029ad0f92022", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a73fefb-1117-44a9-841d-2f8d94812ec8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display the DataFrame and number of rows and columns" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2be32a3f-a5a9-457a-8b3c-606a7ead14bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"\\nSelect column function:\")\n", + "print(select_column)\n", + "print(f\"\\nSelect multiple columns function:\")\n", + "print(select_multiple_columns)\n", + "print(f\"\\nSelect column by data type function:\")\n", + "print(select_column_by_data_type)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "3521a51627aded39438fb89161151234ff86772c86c9ffee7fd4cef55c3cac79", + "notebook_path": "Polars/Polars_Select_Columns.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Polars/Polars_Select_Rows.ipynb b/Polars/Polars_Select_Rows.ipynb new file mode 100644 index 0000000000..cfdd0dc818 --- /dev/null +++ b/Polars/Polars_Select_Rows.ipynb @@ -0,0 +1,419 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "26d971be-a654-4715-97d3-18ecf0b7a9cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "1889751c-f97e-4792-8429-7dab25ec885f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Polars - Select rows\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "35af0493-2cfb-485f-9d0f-8ce84410dccc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #polars #dataframe #read #python #library #data #csv" + ] + }, + { + "cell_type": "markdown", + "id": "06354b65-7306-4825-aef2-c63aeb79f50b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "ac06bbba-9a59-4b5a-b70d-1a8d56bc43c5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-06 (Created: 2023-07-06)" + ] + }, + { + "cell_type": "markdown", + "id": "c0500e98-9f0a-4f87-97aa-5f4c44c2ea0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to select rows in a DataFrame using `polars` library.\n", + "\n", + "About Polars:\n", + "- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n", + "- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n", + "- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory." + ] + }, + { + "cell_type": "markdown", + "id": "6c510bc9-3949-4b57-916a-c40e78419981", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Polars](https://pypi.org/project/polars/)\n", + "- [Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)" + ] + }, + { + "cell_type": "markdown", + "id": "658d10d1-a3d7-4e16-aa0a-fdb9ede7b22c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "d5ad9c05-19dc-463c-868d-bdd747639473", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "markdown", + "id": "d94dc9fc-0cb1-4435-8a0b-43a2dacca952", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "Imports libraries, if unsuccessful, installs the required libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "be598579-8752-4f61-a352-9c3ae2d031e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import polars as pl\n", + "except ModuleNotFoundError:\n", + " !pip install polars\n", + " import polars as pl" + ] + }, + { + "cell_type": "markdown", + "id": "67f09fac-7237-4db3-beaa-133b3e3efb8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `data`: data to be used to create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "18378560-7e6d-42b9-abad-a7f036892775", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "data = {\n", + " 'column 1': [\"A\", \"B\", \"C\", \"D\", \"E\", \"B\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\",],\n", + " 'column 2': [3, 7, 8, 4, 1, 3, 2, 5, 7, 6, 3, 11],\n", + " 'column 3': [\"V\", \"C\", \"M\", \"A\", \"S\", \"V\", \"R\", \"L\", \"Q\", \"N\", \"P\", \"O\",]\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "8b34fd7a-0021-4ac5-8e8d-ef699978f907", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "19ded647-e9d7-4e0f-8b89-cb84ca613351", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c1d87c44-d6b8-4f5a-82fb-0fc6edfe61f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pl.DataFrame(data)" + ] + }, + { + "cell_type": "markdown", + "id": "6c771c9d-a5ee-4ca6-a73a-bac4918199c0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Select rows" + ] + }, + { + "cell_type": "markdown", + "id": "342f6846-ee36-4904-8480-197f21aaa9cf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To select a single row in the data frame, pass the row number in the row() method" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4a796c9d-54a5-4bd5-b0bc-16e149099320", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_row = df.row(0) # first row" + ] + }, + { + "cell_type": "markdown", + "id": "a9d795ba-75f1-40cf-95f1-953c51cc5ed9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To get multiple rows based on the row number use square bracket in (not a recommended way to do it in Polars):" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0f90c4a2-0720-40ea-ad79-152afedb21ab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_multiple_rows = df[:3] # first 3 rows" + ] + }, + { + "cell_type": "markdown", + "id": "31b96730-c5b6-4bd2-9d4c-63c924dada8f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "Or" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "408621d5-cc24-48b0-b65c-53cd61f87c00", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_multiple_rows_2 = df[[3, 4]] # 4th and 5th row" + ] + }, + { + "cell_type": "markdown", + "id": "b47f5e5c-6565-432b-9ef4-57b382768f9b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To select multiple rows use the filter() function (recommended by Polars):" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "36803f49-6ee0-4d09-8a25-35cbea5e86c4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_multiple_rows_filter = df.filter(\n", + " pl.col('column 2') == 3\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "db19d02e-06fd-47fc-9392-aa0729448aaf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To get the content of the data frame as a list of tuples, use the rows() method demonstrated below." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "81a35198-1b70-46eb-bc0f-4619fc23090a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "rows_content = df.rows()" + ] + }, + { + "cell_type": "markdown", + "id": "fad28fc0-5fdd-48bd-8fdd-029ad0f92022", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a73fefb-1117-44a9-841d-2f8d94812ec8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display the DataFrame and number of rows and columns" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2be32a3f-a5a9-457a-8b3c-606a7ead14bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"\\nSelect row function:\")\n", + "print(select_row)\n", + "print(f\"\\nSelect multiple rows function:\")\n", + "print(select_multiple_rows)\n", + "print(f\"\\nSelect multiple rows second function:\")\n", + "print(select_multiple_rows_2)\n", + "print(f\"\\nSelect multiple rows using filter function:\")\n", + "print(select_multiple_rows_filter)\n", + "print(f\"\\nRows content:\")\n", + "print(rows_content)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "fa25e3ec1012dad1c63aeda4b86a6f93f308c4643b6260611d01662a65f294e7", + "notebook_path": "Polars/Polars_Select_Rows.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Polars/Polars_Select_Rows_and_Columns.ipynb b/Polars/Polars_Select_Rows_and_Columns.ipynb new file mode 100644 index 0000000000..a15b0a9440 --- /dev/null +++ b/Polars/Polars_Select_Rows_and_Columns.ipynb @@ -0,0 +1,332 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "26d971be-a654-4715-97d3-18ecf0b7a9cc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "1889751c-f97e-4792-8429-7dab25ec885f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Polars - Select both rows and columns\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "35af0493-2cfb-485f-9d0f-8ce84410dccc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #polars #dataframe #read #python #library #data #csv" + ] + }, + { + "cell_type": "markdown", + "id": "06354b65-7306-4825-aef2-c63aeb79f50b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "2d9ddd16-5e37-408f-a24e-2674cb113010", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-06 (Created: 2023-07-06)" + ] + }, + { + "cell_type": "markdown", + "id": "c0500e98-9f0a-4f87-97aa-5f4c44c2ea0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook demonstrates how to select columns, rows, and both columns and rows at once in a DataFrame using `polars` library.\n", + "\n", + "About Polars:\n", + "- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n", + "- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n", + "- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory." + ] + }, + { + "cell_type": "markdown", + "id": "6c510bc9-3949-4b57-916a-c40e78419981", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Polars](https://pypi.org/project/polars/)\n", + "- [Dataframe](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html)" + ] + }, + { + "cell_type": "markdown", + "id": "658d10d1-a3d7-4e16-aa0a-fdb9ede7b22c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "d5ad9c05-19dc-463c-868d-bdd747639473", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "be598579-8752-4f61-a352-9c3ae2d031e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " import polars as pl\n", + "except ModuleNotFoundError:\n", + " !pip install polars\n", + " import polars as pl" + ] + }, + { + "cell_type": "markdown", + "id": "5f2881fb-8474-4f36-b8d1-3ec9d695c1f8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `data`: data to be used to create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e1d0b866-bc48-4a83-ae21-7d28d5edf6ba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "data = {\n", + " 'column 1': [\"A\", \"B\", \"C\", \"D\", \"E\", \"B\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\",],\n", + " 'column 2': [3, 7, 8, 4, 1, 3, 2, 5, 7, 6, 3, 11],\n", + " 'column 3': [\"V\", \"C\", \"M\", \"A\", \"S\", \"V\", \"R\", \"L\", \"Q\", \"N\", \"P\", \"O\",]\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "8b34fd7a-0021-4ac5-8e8d-ef699978f907", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "19ded647-e9d7-4e0f-8b89-cb84ca613351", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c1d87c44-d6b8-4f5a-82fb-0fc6edfe61f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "df = pl.DataFrame(data)" + ] + }, + { + "cell_type": "markdown", + "id": "01e9489c-30c5-4c2e-96dd-ac2c2d59c0aa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Selecting rows and columns" + ] + }, + { + "cell_type": "markdown", + "id": "ff29cd91-c6b5-4b05-9e98-36752818d200", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "Selecting rows and columns is an often used feature and it can be achieved by chaining the select() and filter() methods" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6d9a8595-c910-46a3-a862-27a360bc05a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_rows_and_columns = df.filter(\n", + " pl.col('column 1') == 'B'\n", + ").select('column 3')" + ] + }, + { + "cell_type": "markdown", + "id": "29581dd0-1799-4fa6-b317-920e0caaf2e5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "To add another column corresponding to the requirements, list it as shown below:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b5f48737-cb1b-45d4-9446-5e4d6db45510", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "select_rows_and_columns_2 = df.filter(\n", + " pl.col('column 1') == 'B'\n", + ").select(['column 3', 'column 2'])" + ] + }, + { + "cell_type": "markdown", + "id": "fad28fc0-5fdd-48bd-8fdd-029ad0f92022", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a73fefb-1117-44a9-841d-2f8d94812ec8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display the DataFrame and number of rows and columns" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2be32a3f-a5a9-457a-8b3c-606a7ead14bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(f\"\\nSelect rows and columns, first function:\")\n", + "print(select_rows_and_columns)\n", + "print(f\"\\nSelect rows and columns, second function:\")\n", + "print(select_rows_and_columns_2)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "7a9f09587076ee0c3192e964f346d57f656558be530916d518954ff4dcf37679", + "notebook_path": "Polars/Polars_Select_Rows_and_Columns.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb b/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb index 42bcc0ea6b..fef4c5cb2f 100644 --- a/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb +++ b/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PostgresSQL - Get data from database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou/)" ] }, + { + "cell_type": "markdown", + "id": "d319a21e-d2de-4717-9d12-cfde1778d73a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb b/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb index 976fefdaf1..70fba99926 100644 --- a/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb +++ b/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PowerPoint - Add Slide With Image\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "5a4de64c-79f2-4ea0-a9ba-c3da8e10edb9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb b/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb index 97a9d90ce3..b3808042d5 100644 --- a/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb +++ b/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PowerPoint - Add Slide With Textbox\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "72824f30-f253-469b-9b62-d232d358963d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb b/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb index bab5baedd8..8283b1fa4a 100644 --- a/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb +++ b/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PowerPoint - Add Slide With Title Subtitle\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c3017656-d3d6-4081-a6bf-371d22df0625", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PowerPoint/PowerPoint_Add_title_+_line_in_presentation.ipynb b/PowerPoint/PowerPoint_Add_title_+_line_in_presentation.ipynb index f4a3e825c4..aab283567a 100644 --- a/PowerPoint/PowerPoint_Add_title_+_line_in_presentation.ipynb +++ b/PowerPoint/PowerPoint_Add_title_+_line_in_presentation.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# PowerPoint - Add title + line in presentation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Ayoub Berdeddouch](https://www.linkedin.com/in/ayoub-berdeddouch)" ] }, + { + "cell_type": "markdown", + "id": "ef8aeb77-23cd-4686-a97d-0c39384eac77", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-01)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/PowerPoint/PowerPoint_Create_Presentation.ipynb b/PowerPoint/PowerPoint_Create_Presentation.ipynb index fa5c5d6e39..d364363692 100644 --- a/PowerPoint/PowerPoint_Create_Presentation.ipynb +++ b/PowerPoint/PowerPoint_Create_Presentation.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# PowerPoint - Create Presentation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Ayoub Berdeddouch](https://www.linkedin.com/in/ayoub-berdeddouch)" ] }, + { + "cell_type": "markdown", + "id": "19c7a4b6-1249-4c25-aafd-895993a46d56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-23)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/PowerPoint/PowerPoint_Set_portrait_format.ipynb b/PowerPoint/PowerPoint_Set_portrait_format.ipynb index f0105ade82..bbf514ddb0 100644 --- a/PowerPoint/PowerPoint_Set_portrait_format.ipynb +++ b/PowerPoint/PowerPoint_Set_portrait_format.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PowerPoint - Set portrait format\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "25d553ad-adc7-4f7d-8765-01d77968d69d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-09-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PyCaret/PyCaret_automl_classification.ipynb b/PyCaret/PyCaret_automl_classification.ipynb index 8a893f6787..878689cb20 100644 --- a/PyCaret/PyCaret_automl_classification.ipynb +++ b/PyCaret/PyCaret_automl_classification.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# PyCaret - Automl classification\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "31d16f10-5986-49b0-b6e7-97874efd3374", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PyCaret/PyCaret_automl_regression.ipynb b/PyCaret/PyCaret_automl_regression.ipynb index c73d242c5c..f7e4f62538 100644 --- a/PyCaret/PyCaret_automl_regression.ipynb +++ b/PyCaret/PyCaret_automl_regression.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# PyCaret - Automl regression\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "b7538d2c-a3a4-44fd-8d27-16e6e5bae6fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb b/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb index 908bfad12b..7bc5c60381 100644 --- a/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb +++ b/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PyGWalker - Analyze Pandas dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Abraham Israel](https://www.linkedin.com/in/abraham-israel/)" ] }, + { + "cell_type": "markdown", + "id": "0d9d5e4d-6ae2-4571-a59d-060296ddc644", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-07)" + ] + }, { "cell_type": "markdown", "id": "c5e4e7c6-cd39-4802-93ff-4e6859480f85", diff --git a/PyPI/PyPI - Get_number_of_downloads_any_package.ipynb b/PyPI/PyPI_Get_number_of_downloads_any_package.ipynb similarity index 91% rename from PyPI/PyPI - Get_number_of_downloads_any_package.ipynb rename to PyPI/PyPI_Get_number_of_downloads_any_package.ipynb index 22037507ec..c56788454f 100644 --- a/PyPI/PyPI - Get_number_of_downloads_any_package.ipynb +++ b/PyPI/PyPI_Get_number_of_downloads_any_package.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# PyPI - - Get number of downloads any package\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "a366cf88-ed95-47ad-8394-1b767d1ee30b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -383,8 +394,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "fa50c9d253fcfbd8653f19e1fbf6a7f10da5081eac5214aa2f132875b030a8fd", - "notebook_path": "PyPI/PyPI - Get_number_of_downloads_any_package.ipynb" + "notebook_id": "8da37e2aaf56e0b26e7ee696dc16f492d45a2e204454444b107880aac4b15824", + "notebook_path": "PyPI/PyPI_Get_number_of_downloads_any_package.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/PyPI/PyPI_Get_release_dates_from_package.ipynb b/PyPI/PyPI_Get_release_dates_from_package.ipynb new file mode 100644 index 0000000000..60bce16b34 --- /dev/null +++ b/PyPI/PyPI_Get_release_dates_from_package.ipynb @@ -0,0 +1,317 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "72a216be-10dc-4c1d-a3fa-a9ce992d1c27", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "25f38b3f-5cb5-4700-ba73-fb24646dd3ca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# PyPI - Get release dates from package\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "4da75a0d-6fba-4115-8667-429956d5ffa0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #pypi #downloads #package #operations #analytics #plotly #html #csv #image #png" + ] + }, + { + "cell_type": "markdown", + "id": "ab9c2b57-cd13-4086-8a8c-676006cdaebf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Mardiat-Iman](https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262)" + ] + }, + { + "cell_type": "markdown", + "id": "963551f0-c489-4f73-b4d0-7699892623bf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-27 (Created: 2023-07-27)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook get the release dates a package from the Python Package Index (PyPI) and plot a Barchart and Scatter Plot to display the release by month. \n", + "\n", + "NB: We have noticed that sometimes not all versions are accessible via this endpoint in comparison with the website. Please let us know if you manage to find a solution to this issue, we would appreciate." + ] + }, + { + "cell_type": "markdown", + "id": "922c974a-a4f5-41b1-af0e-83db3798dee4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "ff478c09-fc56-440d-9aaf-4b6f018f3395", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "93b77ec7-1f35-4f2e-9770-2bfef3ee3752", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from dateutil.parser import parse" + ] + }, + { + "cell_type": "markdown", + "id": "50b727c1-81d4-4976-8a14-2ff4cfb418b6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2c16f635-fbb6-4921-9777-4a4013dcfa37", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Allow the user to input the package name\n", + "user_input = input(\"Enter the package name to fetch release dates from PyPI: \")\n", + "\n", + "# Extract the package name (remove version number if present)\n", + "package_name = user_input.split()[0]\n", + "print('Package:', package_name)" + ] + }, + { + "cell_type": "markdown", + "id": "36f9d891-dd69-49e0-9288-ba6cf1566198", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "2beb4527-eb8c-40c3-8e99-a49c80018e3f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get releases dates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22bcc4b1-bb81-4053-81fe-19675d4c0f19", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_release_dates(package_name):\n", + " # Init \n", + " release_dates = []\n", + " \n", + " # Request\n", + " url = f\"https://pypi.org/pypi/{package_name}/json\"\n", + " response = requests.get(url)\n", + " \n", + " # Response\n", + " if response.status_code == 200:\n", + " data = response.json()\n", + " releases = data.get(\"releases\", {})\n", + " release_dates = [parse(release_info[0][\"upload_time\"]) for release_info in releases.values() if release_info]\n", + " if not releases:\n", + " print(f\"No releases found for package '{package_name}'.\")\n", + " else:\n", + " for version, release_info in releases.items():\n", + " if release_info and isinstance(release_info, list):\n", + " latest_release = max(release_info, key=lambda x: x[\"upload_time\"])\n", + " release_date = latest_release[\"upload_time\"]\n", + " print(f\"Version: {version}, Release Date: {release_date}\")\n", + " else:\n", + " print(f\"Error: Package '{package_name}' not found or error in fetching data.\")\n", + " print(\"Raw JSON Response:\", response.text)\n", + " return release_dates\n", + "\n", + "# Call the function with the package name to get the release dates\n", + "release_dates = get_release_dates(package_name)\n", + "print(\"Release dates found:\", len(release_dates))" + ] + }, + { + "cell_type": "markdown", + "id": "b7077755-36d0-4e95-a581-86c5764cc383", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "d0b568d5-3904-4dbd-b1e8-476ad4ae9a61", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Plotting a Barchart and Scatter Plot for the release dates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70713839-101a-4d57-af31-3340bc13b857", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Check if release dates were obtained successfully\n", + "if release_dates:\n", + " # 1. Sort release dates in ascending order\n", + " release_dates.sort()\n", + "\n", + " # 2. Bar Chart - Releases per Month\n", + " release_months = [date.strftime('%Y-%m') for date in release_dates]\n", + " unique_months, month_counts = np.unique(release_months, return_counts=True)\n", + " unique_months = [parse(month + '-01') for month in unique_months] # Convert back to datetime objects\n", + " fig, ax = plt.subplots(figsize=(30, 15), constrained_layout=True)\n", + " ax.set(title=f\"Bar Chart - Releases per Month for {package_name.capitalize()}\")\n", + " ax.bar(unique_months, month_counts, color=\"tab:red\", width=20)\n", + " ax.xaxis.set_major_locator(mdates.MonthLocator())\n", + " ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%b %Y\"))\n", + " ax.set_xlabel(\"Month\")\n", + " ax.set_ylabel(\"Number of Releases\")\n", + " plt.xticks(rotation=45, ha=\"right\")\n", + " ax.spines[[\"top\", \"right\"]].set_visible(False)\n", + " plt.savefig(\"bar_chart.png\") # Save the figure\n", + " plt.show()\n", + "else:\n", + " print(\"No release dates found for the specified package.\")" + ] + }, + { + "cell_type": "markdown", + "id": "d0396b1b-00d3-45c0-af1d-af07daa6f07c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Save the figure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52b4015d-f6ab-4bb8-a0a5-f7ac5d824bbc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "fig.savefig(\"bar_chart.png\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "5b61a4c4382b4f68bdf9dd662ae75f7e84c36a567a9eabf26257aa87cf5c4046", + "notebook_path": "PyPI/PyPI_Get_release_dates_from_package.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Check_if_string_is_number.ipynb b/Python/Python_Check_if_string_is_number.ipynb new file mode 100644 index 0000000000..67e22dc0dc --- /dev/null +++ b/Python/Python_Check_if_string_is_number.ipynb @@ -0,0 +1,283 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8f8d0330-39b9-4131-b38e-c62b84133632", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "fc2ec1bd-580b-43a1-a8f5-a709666c7a58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Check if string is number\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "11a75e81-a553-405e-995e-9e8ad2d94092", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #string #number #check #isnumber #function" + ] + }, + { + "cell_type": "markdown", + "id": "81770f6f-f199-4507-8153-868917967788", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "42adb265-e0d2-4fe8-82f0-d07662b5abb5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "8e0011a5-217b-4ca2-964a-e26d422e6c78", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will check if a string is a number and how it is useful for organizations. It will help to identify if a string is a number or not." + ] + }, + { + "cell_type": "markdown", + "id": "5d6893b5-e6d1-42cb-932b-759e2b467ae4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python isdigit()](https://www.programiz.com/python-programming/methods/string/isdigit)\n", + "- [Python isdecimal()](https://www.programiz.com/python-programming/methods/string/isdecimal)" + ] + }, + { + "cell_type": "markdown", + "id": "0f6699ce-ad39-406a-a63e-c8fa83448aa5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "721334ca-275e-48fd-93b2-22fff4040ff9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06b81e18-75fb-4c06-acaf-babba28d95f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import string" + ] + }, + { + "cell_type": "markdown", + "id": "cf71b8f4-6b15-440d-a1ec-27de4141598b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `string_to_check`: string to check if it is a number" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d14331d-4297-4a11-92f7-ccec51280baa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "string_to_check = \"1a23\"" + ] + }, + { + "cell_type": "markdown", + "id": "be3bb678-8499-4ed1-aaac-bd0359785d0f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "656bfdf4-b85e-4d11-a840-03e32343fcfa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Check if string is number" + ] + }, + { + "cell_type": "markdown", + "id": "26798783-83c4-4596-be46-112207cb2549", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will check if a string is a number or not." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee859855-0c01-44ba-b473-a906925e15a2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def is_number(string):\n", + " # Check if string is a digit\n", + " if string.isdigit():\n", + " return True\n", + " # Check if string is a decimal\n", + " elif string.isdecimal():\n", + " return True\n", + " # If not, return False\n", + " else:\n", + " return False" + ] + }, + { + "cell_type": "markdown", + "id": "9679082e-02b4-45e2-a26a-f8ad075b7184", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "a31b759b-c2ed-4217-bf93-3798c9f45985", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "160e6020-414d-453c-a6dd-4122e40b847a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(is_number(string_to_check))" + ] + }, + { + "cell_type": "markdown", + "id": "7561a8d8-0428-44f9-a228-84ee61f20083", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "1285d5b317f4b36ebfc42542b8f98c906a4c3ea71f825078f09766ea31bc076e", + "notebook_path": "Python/Python_Check_if_string_is_number.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Clean_your_download_folder.ipynb b/Python/Python_Clean_your_download_folder.ipynb index 88591781f8..0e82baa3f6 100644 --- a/Python/Python_Clean_your_download_folder.ipynb +++ b/Python/Python_Clean_your_download_folder.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Clean your download folder\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "7a8e2529-2c45-4b76-8fe4-2187c5b26fb4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-01)" + ] + }, { "cell_type": "markdown", "id": "527545c4-12d7-4a43-b171-c9f76db60f76", diff --git a/Python/Python_Compress_images.ipynb b/Python/Python_Compress_images.ipynb index e24b704b27..d520637ef4 100644 --- a/Python/Python_Compress_images.ipynb +++ b/Python/Python_Compress_images.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Compress images\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "744300df-bf05-4884-a357-61e68c328a4f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-23 (Created: 2023-05-23)" + ] + }, { "cell_type": "markdown", "id": "0557601e-abde-4cb1-85c0-eb9eb0e49004", diff --git a/Python/Python_Consolidate_Excel_files.ipynb b/Python/Python_Consolidate_Excel_files.ipynb index 87260aa49d..89de8b0d8f 100644 --- a/Python/Python_Consolidate_Excel_files.ipynb +++ b/Python/Python_Consolidate_Excel_files.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Consolidate Excel files\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "7d5c5dfb-7088-4eff-8287-02344ef6d958", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-10-07)" + ] + }, { "cell_type": "markdown", "id": "9cadf93e-36f8-44e5-855b-7808a7070ece", diff --git a/Python/Python_Convert_CSV_to_Excel.ipynb b/Python/Python_Convert_CSV_to_Excel.ipynb index 426d11691c..1d304f8170 100644 --- a/Python/Python_Convert_CSV_to_Excel.ipynb +++ b/Python/Python_Convert_CSV_to_Excel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Convert CSV to Excel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sophia Iroegbu](www.linkedin.com/in/sophia-iroegbu)" ] }, + { + "cell_type": "markdown", + "id": "ed78bc67-fa7f-4bb3-8c68-3cc5c7db942b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-10)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Convert_DMS_to_decimal_degrees.ipynb b/Python/Python_Convert_DMS_to_decimal_degrees.ipynb new file mode 100644 index 0000000000..b8960b0822 --- /dev/null +++ b/Python/Python_Convert_DMS_to_decimal_degrees.ipynb @@ -0,0 +1,244 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert degrees-minutes-seconds to decimal degrees\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #geopy #snippet #navigation" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "02046497-f618-49f4-a1fe-aec507e98fbc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows how to convert degrees-minutes-seconds to decimal degrees. Converting coordinates from Degrees, Minutes, and Seconds (DMS) to decimal degrees can be useful for compatibility with modern systems that use decimal format. It also simplifies calculations and data processing, as working with decimal numbers is often easier and more straightforward than working with degrees, minutes, and seconds." + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "3311103a-13a2-40c5-bb42-2755391f3d47", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Variables for degrees-minutes-seconds to decimal degrees\n", + "degrees = 42\n", + "minutes = 16\n", + "seconds = 43.50\n", + "direction = 'N'" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "391d6ff9-e09f-4ee6-a557-a9ab712d93a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert degrees-minutes-seconds to decimal degrees" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ee65725-7d79-4ac3-a4da-660e3d8db525", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def dms_to_decimal(degrees, minutes, seconds, direction):\n", + " decimal_degrees = degrees + minutes / 60 + seconds / 3600\n", + " if direction in ['S', 'W']:\n", + " decimal_degrees *= -1\n", + "\n", + " return decimal_degrees\n", + "\n", + "decimal_degrees = dms_to_decimal(degrees, minutes, seconds, direction)" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4af1598f-b4fe-4da2-94f3-1cfb20996fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Decimal degrees\")\n", + "print(decimal_degrees)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f13caea7-4afb-4521-9818-0ef02c76e0a3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "5b5dee3ead8fd96908827f51ac99cb0b72b7dbfc37239147e2dfb6feba7426ef", + "notebook_path": "Python/Python_Convert_DMS_to_decimal_degrees.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_PNG_Images_To_JPG.ipynb b/Python/Python_Convert_PNG_Images_To_JPG.ipynb index e6935e21a1..0fcc593e1c 100644 --- a/Python/Python_Convert_PNG_Images_To_JPG.ipynb +++ b/Python/Python_Convert_PNG_Images_To_JPG.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Convert PNG Images To JPG\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Ahmed Mousa](https://www.linkedin.com/in/akmousa/)" ] }, + { + "cell_type": "markdown", + "id": "f25b98fd-acc4-4a07-9d06-60fcecc02789", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-10)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Python/Python_Convert_URL_to_string.ipynb b/Python/Python_Convert_URL_to_string.ipynb index f6bb174ebe..889976ab01 100644 --- a/Python/Python_Convert_URL_to_string.ipynb +++ b/Python/Python_Convert_URL_to_string.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Convert URL to string\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "272cf495-64d4-423b-951c-236d78512e87", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-29)" + ] + }, { "cell_type": "markdown", "id": "1a718131-46f1-4166-a074-3c331656581b", diff --git a/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb b/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb index 8770141188..d727af2ee6 100644 --- a/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb +++ b/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Convert audiofile from wav to mp3\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** Mohit Singh" ] }, + { + "cell_type": "markdown", + "id": "8fbf425a-b26c-41be-b5e0-a6872230ec26", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-08)" + ] + }, { "cell_type": "markdown", "id": "e0103cb0-759f-481d-8c91-a378e32f2d24", diff --git a/Python/Python_Convert_coordinates_to_DMS.ipynb b/Python/Python_Convert_coordinates_to_DMS.ipynb new file mode 100644 index 0000000000..d008d7a3ab --- /dev/null +++ b/Python/Python_Convert_coordinates_to_DMS.ipynb @@ -0,0 +1,235 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "latin-packing", + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-23T14:22:16.610471Z", + "iopub.status.busy": "2021-02-23T14:22:16.610129Z", + "iopub.status.idle": "2021-02-23T14:22:16.627784Z", + "shell.execute_reply": "2021-02-23T14:22:16.626866Z", + "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "compressed-wilson", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert coordinates to degrees-minutes-seconds\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "cbf7f260-f739-4e8f-9074-f070af12b69f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #geopy #snippet #navigation" + ] + }, + { + "cell_type": "markdown", + "id": "8af9aa79", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Antonio Georgiev](www.linkedin.com/in/antonio-georgiev-b672a325b)" + ] + }, + { + "cell_type": "markdown", + "id": "02046497-f618-49f4-a1fe-aec507e98fbc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-28 (Created: 2023-07-28)" + ] + }, + { + "cell_type": "markdown", + "id": "5436984d-1d8d-4c7f-9b4e-82eb0555bca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows how to convert coordinates to to Degrees, Minutes, and Seconds (DMS). Converting coordinates to Degrees, Minutes, and Seconds (DMS) can be beneficial for compatibility with systems that use DMS as their standard format. It can also improve precision in fields like surveying or navigation, where accurate measurements are crucial." + ] + }, + { + "cell_type": "markdown", + "id": "distinguished-truth", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "141496e0-4ca4-4f54-a095-5742021d066e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables\n", + "- `latitude`: This variable represents the position of a point on Earth's surface in terms of degrees north or south of the equator.\n", + "- `longitude`: This variable represents the position of a point on Earth's surface in terms of degrees east or west of the Prime Meridian. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bffaf74b-3e26-408f-9a55-bb495577cdf6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Variables for decimal degrees to degrees-minutes-seconds\n", + "latitude = 42.278750\n", + "longitude = 22.689920" + ] + }, + { + "cell_type": "markdown", + "id": "registered-showcase", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "205825c4-d874-4c4c-9ff9-85af6f3e5336", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert decimal degrees to degrees-minutes-seconds\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "75f41700-8714-41bb-be6a-ce0b4d23e2e4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def decimal_to_dms_with_direction(decimal, is_latitude):\n", + " degrees = int(decimal)\n", + " minutes = int((decimal - degrees) * 60)\n", + " seconds = (decimal - degrees - minutes / 60) * 3600\n", + " direction = \"North\" if is_latitude and degrees >= 0 else \"South\" if is_latitude else \"East\" if degrees >= 0 else \"West\"\n", + " return f\"{degrees}° {minutes}' {seconds:.2f}\\\" {direction}\"\n", + "\n", + "latitude_dms = decimal_to_dms_with_direction(latitude, is_latitude=True)\n", + "longitude_dms = decimal_to_dms_with_direction(longitude, is_latitude=False)\n", + "coordinates_dms = f\"{latitude_dms}, {longitude_dms}\"" + ] + }, + { + "cell_type": "markdown", + "id": "c1e4c55b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "2ee5bfd6-de4f-40c9-a590-7c7afc44b9a0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4af1598f-b4fe-4da2-94f3-1cfb20996fa9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "print(\"Coordinates in DMS format with direction:\")\n", + "print(coordinates_dms)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "efc49f04ec827f01ebc298a6468803093908ebcaa46a2f7fcd8353cf67289731", + "notebook_path": "Python/Python_Convert_coordinates_to_DMS.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_currency.ipynb b/Python/Python_Convert_currency.ipynb index e07d345b7f..7c802b65c4 100644 --- a/Python/Python_Convert_currency.ipynb +++ b/Python/Python_Convert_currency.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Convert currency\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "01ac759b-95cd-443c-b49d-741ba1d2ace4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-06-19)" + ] + }, { "cell_type": "markdown", "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", diff --git a/Python/Python_Convert_length.ipynb b/Python/Python_Convert_length.ipynb new file mode 100644 index 0000000000..1f86a297d9 --- /dev/null +++ b/Python/Python_Convert_length.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a375df46-3e8d-496c-b9f2-956a649ee2b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7da76030-0b3c-4c2f-9e7b-36043d3cd1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert length\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a783de75-d983-43ac-8323-a92bca66a8c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #convert #units #snippet #operations #length " + ] + }, + { + "cell_type": "markdown", + "id": "e502ab4b-f881-47fa-a199-1d9604807537", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "1f8a73cb-bffd-4388-bb3f-72e193e23c23", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-21)" + ] + }, + { + "cell_type": "markdown", + "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows you how to convert length using Python." + ] + }, + { + "cell_type": "markdown", + "id": "8848fad9-b586-4662-bb43-19c52e25967a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python Unit converter example](https://stackoverflow.com/questions/32091117/simple-unit-converter-in-python)" + ] + }, + { + "cell_type": "markdown", + "id": "be71fe01-3f32-4bef-b52f-14559736a10e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "71db5801-b569-4661-8a73-7ab6674a643a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "[Unit Available symbols](https://github.com/Benjifilly/My_notebooks/wiki/Unit-symbols#length--distance-category-length)\n", + "- `value`: starting unit value\n", + "- `from_unit` : is the unit of the starting value, the one you want to convert\n", + "- `to_unit`: this is the unit we want to achieve with this script" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "56811afa-732c-46fd-b3a8-f04e4baada05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "value = 10\n", + "from_unit = 'km'\n", + "to_unit = 'm'" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad5c91-6389-4bd2-8537-7e0088b93533", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4b1df285-3221-458d-899d-bd2a0bf3fe0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Unit available" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "72a0a05f-2935-4505-8a09-3602e791774c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def convert_length(value, from_unit, to_unit):\n", + " units = {\n", + " 'mm': 0.001,\n", + " 'cm': 0.01,\n", + " 'm': 1.0,\n", + " 'km': 1000.0,\n", + " 'in': 0.0254,\n", + " 'ft': 0.3048,\n", + " 'yd': 0.9144,\n", + " 'mi': 1609.34,\n", + " 'nm': 1e-9,\n", + " 'μm': 1e-6,\n", + " 'mil': 0.0254 / 1000,\n", + " 'fm': 1e-15\n", + " # Add other length units here\n", + " }\n", + "\n", + " if from_unit not in units or to_unit not in units:\n", + " raise ValueError(\"Invalid unit.\")\n", + "\n", + " return value * units[from_unit] / units[to_unit]" + ] + }, + { + "cell_type": "markdown", + "id": "d3d1a3d3-b21e-493c-8db1-2a76dbff62fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a45ecdc-5c4f-458b-b292-a4c05564a6d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8439ed05-4a87-4ca5-af92-5f979730bd2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = convert_length(value, from_unit, to_unit)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "8acc17ec-b543-49ef-befb-f57a96c08878", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "30b65ea2617db409e1fba9cc5ff0c4b258e5a8e58ebde18fe4ff5314a177810e", + "notebook_path": "Python/Python_Convert_length.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_speed.ipynb b/Python/Python_Convert_speed.ipynb new file mode 100644 index 0000000000..1b974e60c0 --- /dev/null +++ b/Python/Python_Convert_speed.ipynb @@ -0,0 +1,256 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a375df46-3e8d-496c-b9f2-956a649ee2b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7da76030-0b3c-4c2f-9e7b-36043d3cd1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert speed\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a783de75-d983-43ac-8323-a92bca66a8c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #convert #units #snippet #operations #speed" + ] + }, + { + "cell_type": "markdown", + "id": "e502ab4b-f881-47fa-a199-1d9604807537", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "572f81b8-b079-44da-9233-c2f424fcef0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-21)" + ] + }, + { + "cell_type": "markdown", + "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows you how to convert speed using Python." + ] + }, + { + "cell_type": "markdown", + "id": "8848fad9-b586-4662-bb43-19c52e25967a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python Unit converter example](https://stackoverflow.com/questions/32091117/simple-unit-converter-in-python)" + ] + }, + { + "cell_type": "markdown", + "id": "be71fe01-3f32-4bef-b52f-14559736a10e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "71db5801-b569-4661-8a73-7ab6674a643a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "[Unit Available symbols](https://github.com/Benjifilly/My_notebooks/wiki/Unit-symbols#speed--category-speed)\n", + "- `value`: starting unit value\n", + "- `from_unit` : is the unit of the starting value, the one you want to convert\n", + "- `to_unit`: this is the unit we want to achieve with this script" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "56811afa-732c-46fd-b3a8-f04e4baada05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "value = 50\n", + "from_unit = 'km/h'\n", + "to_unit = 'm/s'" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad5c91-6389-4bd2-8537-7e0088b93533", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4b1df285-3221-458d-899d-bd2a0bf3fe0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Unit available" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "72a0a05f-2935-4505-8a09-3602e791774c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def convert_speed(value, from_unit, to_unit):\n", + " units = {\n", + " 'm/s': 1.0,\n", + " 'km/h': 1 / 3.6,\n", + " 'mph': 0.44704,\n", + " 'knot': 0.514444\n", + " # Add other speed units here\n", + " }\n", + "\n", + " if from_unit not in units or to_unit not in units:\n", + " raise ValueError(\"Invalid unit.\")\n", + "\n", + " return value * units[from_unit] / units[to_unit]" + ] + }, + { + "cell_type": "markdown", + "id": "d3d1a3d3-b21e-493c-8db1-2a76dbff62fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a45ecdc-5c4f-458b-b292-a4c05564a6d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8439ed05-4a87-4ca5-af92-5f979730bd2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = convert_speed(value, from_unit, to_unit)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "8acc17ec-b543-49ef-befb-f57a96c08878", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "a16c1298d415f1c4c24ae79bf540d33cbde9150d81bae2d196bbbba37a742116", + "notebook_path": "Python/Python_Convert_speed.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_string_boolean_to_boolean.ipynb b/Python/Python_Convert_string_boolean_to_boolean.ipynb new file mode 100644 index 0000000000..b398b1a0fc --- /dev/null +++ b/Python/Python_Convert_string_boolean_to_boolean.ipynb @@ -0,0 +1,267 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f07197a2-e3e0-4a1d-9fcb-384b97b0c705", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "03d78797-4963-40a9-999b-e3febc4b0f24", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert string boolean to boolean\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "d02b4711-6575-4491-a0aa-b7928b3aab37", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #string #boolean #convert #type #data" + ] + }, + { + "cell_type": "markdown", + "id": "e28ab09c-00af-4a58-8ce7-49e773d3bbed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" + ] + }, + { + "cell_type": "markdown", + "id": "611d1150-cebd-44a3-aa77-0c522d5e2692", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-25 (Created: 2023-07-25)" + ] + }, + { + "cell_type": "markdown", + "id": "7b8b3d9c-90f9-40de-a946-1af9c5229dc2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook will show how to convert a string boolean to a boolean type in Python. It is usefull for data cleaning and data manipulation." + ] + }, + { + "cell_type": "markdown", + "id": "55533498-504c-4776-b67f-f7bf80d7a687", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python - Convert string boolean to boolean](https://www.w3schools.com/python/python_booleans.asp)\n", + "- [Python - Type conversion](https://www.programiz.com/python-programming/type-conversion-and-type-casting)" + ] + }, + { + "cell_type": "markdown", + "id": "172bf187-a3b8-4b00-b1b7-4a8c62f62a55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "7b4afe76-77f4-4bb0-b0cb-88607150ea66", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "829817d4-7f3c-4e24-a49f-2707b8542270", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Import libraries\n", + "import ast" + ] + }, + { + "cell_type": "markdown", + "id": "cea15f4f-7f7f-4c3d-a1b2-9104b08a9a81", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `string_boolean`: string boolean to convert" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99d36797-19b4-4fb9-be17-6b7b71503d0b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Setup variables\n", + "string_boolean = \"True\"" + ] + }, + { + "cell_type": "markdown", + "id": "5788a56a-70d5-4543-876b-0b2e05f88076", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "1aa1f5af-9762-4d27-bae6-28e6dd980a6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Convert string boolean to boolean" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfdf07ac-f9ad-43a6-a09d-7c8bce47bb39", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Convert string boolean to boolean\n", + "boolean = ast.literal_eval(string_boolean)" + ] + }, + { + "cell_type": "markdown", + "id": "e44936c4-6424-404c-9a42-ff83a10b1f27", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "f9702a0b-eedf-4e15-9829-fa50a519ec89", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4d1fe38-6bb6-4610-b082-b496a0258de6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Display result\n", + "print(boolean)" + ] + }, + { + "cell_type": "markdown", + "id": "c81ca880-d0b4-499d-84ad-1fd5c26d9bb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "c3b9f65c829ea7dd7c8fe689d18199671b582c28e65ca5ab0544da17e9566633", + "notebook_path": "Python/Python_Convert_string_boolean_to_boolean.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_string_to_URL.ipynb b/Python/Python_Convert_string_to_URL.ipynb index bc0ac6e209..8c76fce5f3 100644 --- a/Python/Python_Convert_string_to_URL.ipynb +++ b/Python/Python_Convert_string_to_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Convert string to URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "8b1d1d7a-de74-4b93-b3cd-96fa4b627a1f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-29)" + ] + }, { "cell_type": "markdown", "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", diff --git a/Python/Python_Convert_temperature.ipynb b/Python/Python_Convert_temperature.ipynb new file mode 100644 index 0000000000..5b3c39a55b --- /dev/null +++ b/Python/Python_Convert_temperature.ipynb @@ -0,0 +1,266 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a375df46-3e8d-496c-b9f2-956a649ee2b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7da76030-0b3c-4c2f-9e7b-36043d3cd1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert temperature\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a783de75-d983-43ac-8323-a92bca66a8c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #convert #units #snippet #operations #temperature " + ] + }, + { + "cell_type": "markdown", + "id": "e502ab4b-f881-47fa-a199-1d9604807537", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "e60a6606-f111-40cb-b321-dbb824c0feab", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-21)" + ] + }, + { + "cell_type": "markdown", + "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows you how to convert units temperature using Python." + ] + }, + { + "cell_type": "markdown", + "id": "8848fad9-b586-4662-bb43-19c52e25967a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python Unit converter example](https://stackoverflow.com/questions/32091117/simple-unit-converter-in-python)" + ] + }, + { + "cell_type": "markdown", + "id": "be71fe01-3f32-4bef-b52f-14559736a10e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "71db5801-b569-4661-8a73-7ab6674a643a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "[Unit Available symbols](https://github.com/Benjifilly/My_notebooks/wiki/Unit-symbols#temperature--category-temperature)\n", + "- `value`: starting unit value\n", + "- `from_unit` : is the unit of the starting value, the one you want to convert\n", + "- `to_unit`: this is the unit we want to achieve with this script" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "56811afa-732c-46fd-b3a8-f04e4baada05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "value = 100\n", + "from_unit = 'C'\n", + "to_unit = 'F'" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad5c91-6389-4bd2-8537-7e0088b93533", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4b1df285-3221-458d-899d-bd2a0bf3fe0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Unit available" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "72a0a05f-2935-4505-8a09-3602e791774c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def convert_temperature(value, from_unit, to_unit):\n", + " units = {\n", + " 'C': {\n", + " 'C': lambda x: x,\n", + " 'F': lambda x: x * 9 / 5 + 32,\n", + " 'K': lambda x: x + 273.15\n", + " },\n", + " 'F': {\n", + " 'C': lambda x: (x - 32) * 5 / 9,\n", + " 'F': lambda x: x,\n", + " 'K': lambda x: (x + 459.67) * 5 / 9\n", + " },\n", + " 'K': {\n", + " 'C': lambda x: x - 273.15,\n", + " 'F': lambda x: x * 9 / 5 - 459.67,\n", + " 'K': lambda x: x\n", + " }\n", + " }\n", + "\n", + " if from_unit not in units or to_unit not in units[from_unit]:\n", + " raise ValueError(\"Invalid unit.\")\n", + "\n", + " return units[from_unit][to_unit](value)" + ] + }, + { + "cell_type": "markdown", + "id": "d3d1a3d3-b21e-493c-8db1-2a76dbff62fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a45ecdc-5c4f-458b-b292-a4c05564a6d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8439ed05-4a87-4ca5-af92-5f979730bd2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = convert_temperature(value, from_unit, to_unit)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "8acc17ec-b543-49ef-befb-f57a96c08878", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "067b3975c0bfb9d91f586f52bc48f9b131588dccf939568abb539de93f96b308", + "notebook_path": "Python/Python_Convert_temperature.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_time.ipynb b/Python/Python_Convert_time.ipynb new file mode 100644 index 0000000000..0b1b5cb988 --- /dev/null +++ b/Python/Python_Convert_time.ipynb @@ -0,0 +1,259 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a375df46-3e8d-496c-b9f2-956a649ee2b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7da76030-0b3c-4c2f-9e7b-36043d3cd1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert time\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a783de75-d983-43ac-8323-a92bca66a8c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #convert #units #snippet #operations #time " + ] + }, + { + "cell_type": "markdown", + "id": "e502ab4b-f881-47fa-a199-1d9604807537", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "76a052bb-7068-4f4e-99e7-fcafb288881a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-21)" + ] + }, + { + "cell_type": "markdown", + "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows you how to convert time using Python." + ] + }, + { + "cell_type": "markdown", + "id": "8848fad9-b586-4662-bb43-19c52e25967a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python Unit converter example](https://stackoverflow.com/questions/32091117/simple-unit-converter-in-python)" + ] + }, + { + "cell_type": "markdown", + "id": "be71fe01-3f32-4bef-b52f-14559736a10e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "71db5801-b569-4661-8a73-7ab6674a643a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "[Unit Available symbols](https://github.com/Benjifilly/My_notebooks/wiki/Unit-symbols#time--category-time)\n", + "- `value`: starting unit value\n", + "- `from_unit` : is the unit of the starting value, the one you want to convert\n", + "- `to_unit`: this is the unit we want to achieve with this script" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "56811afa-732c-46fd-b3a8-f04e4baada05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "value = 3600\n", + "from_unit = 's'\n", + "to_unit = 'h'" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad5c91-6389-4bd2-8537-7e0088b93533", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4b1df285-3221-458d-899d-bd2a0bf3fe0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Unit available" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "72a0a05f-2935-4505-8a09-3602e791774c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def convert_time(value, from_unit, to_unit):\n", + " units = {\n", + " 's': 1.0,\n", + " 'min': 60.0,\n", + " 'h': 3600.0,\n", + " 'day': 86400.0,\n", + " 'week': 604800.0,\n", + " 'month': 2628000.0,\n", + " 'year': 31536000.0\n", + " # Add other time units here\n", + " }\n", + "\n", + " if from_unit not in units or to_unit not in units:\n", + " raise ValueError(\"Invalid unit.\")\n", + "\n", + " return value * units[from_unit] / units[to_unit]" + ] + }, + { + "cell_type": "markdown", + "id": "d3d1a3d3-b21e-493c-8db1-2a76dbff62fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a45ecdc-5c4f-458b-b292-a4c05564a6d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8439ed05-4a87-4ca5-af92-5f979730bd2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = convert_time(value, from_unit, to_unit)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "8acc17ec-b543-49ef-befb-f57a96c08878", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "56b5020fb5de6bd618fd2b48c7fdf5e338135bbc4cb8b7a39b8a847fdabf45a3", + "notebook_path": "Python/Python_Convert_time.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_time_delta_to_months.ipynb b/Python/Python_Convert_time_delta_to_months.ipynb index 08a2bb4766..ab6f34f3f8 100644 --- a/Python/Python_Convert_time_delta_to_months.ipynb +++ b/Python/Python_Convert_time_delta_to_months.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Convert time delta to months\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "112c4c0e-26fe-4ccc-ab15-309456cd8631", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-22 (Created: 2023-05-22)" + ] + }, { "cell_type": "markdown", "id": "2e8b31cf-ccc0-4390-86cc-7a43e8afdbc5", diff --git a/Python/Python_Convert_units.ipynb b/Python/Python_Convert_units.ipynb index 2180f36280..96c225ba3a 100644 --- a/Python/Python_Convert_units.ipynb +++ b/Python/Python_Convert_units.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Convert units\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "65f52e28-4542-45d1-8b51-54e8d81fe85c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-06-19)" + ] + }, { "cell_type": "markdown", "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", diff --git a/Python/Python_Convert_volume.ipynb b/Python/Python_Convert_volume.ipynb new file mode 100644 index 0000000000..fe6a787824 --- /dev/null +++ b/Python/Python_Convert_volume.ipynb @@ -0,0 +1,259 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a375df46-3e8d-496c-b9f2-956a649ee2b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7da76030-0b3c-4c2f-9e7b-36043d3cd1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert volume\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a783de75-d983-43ac-8323-a92bca66a8c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #convert #units #snippet #operations #volume" + ] + }, + { + "cell_type": "markdown", + "id": "e502ab4b-f881-47fa-a199-1d9604807537", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "b1f7fb53-1f2f-4106-a23e-e088e7a9e91b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-21)" + ] + }, + { + "cell_type": "markdown", + "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows you how to convert volume using Python." + ] + }, + { + "cell_type": "markdown", + "id": "8848fad9-b586-4662-bb43-19c52e25967a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python Unit converter example](https://stackoverflow.com/questions/32091117/simple-unit-converter-in-python)" + ] + }, + { + "cell_type": "markdown", + "id": "be71fe01-3f32-4bef-b52f-14559736a10e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "71db5801-b569-4661-8a73-7ab6674a643a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "[Unit Available symbols](https://github.com/Benjifilly/My_notebooks/wiki/Unit-symbols#volume--category-volume)\n", + "- `value`: starting unit value\n", + "- `from_unit` : is the unit of the starting value, the one you want to convert\n", + "- `to_unit`: this is the unit we want to achieve with this script" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "56811afa-732c-46fd-b3a8-f04e4baada05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "value = 2.5\n", + "from_unit = 'L'\n", + "to_unit = 'gal'" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad5c91-6389-4bd2-8537-7e0088b93533", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4b1df285-3221-458d-899d-bd2a0bf3fe0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Unit available" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "72a0a05f-2935-4505-8a09-3602e791774c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def convert_volume(value, from_unit, to_unit):\n", + " units = {\n", + " 'mL': 0.001,\n", + " 'L': 1.0,\n", + " 'gal': 3.78541,\n", + " 'qt': 0.946353,\n", + " 'pt': 0.473176,\n", + " 'fl oz': 0.0295735,\n", + " 'm3': 1000.0\n", + " # Add other volume units here\n", + " }\n", + "\n", + " if from_unit not in units or to_unit not in units:\n", + " raise ValueError(\"Invalid unit.\")\n", + "\n", + " return value * units[from_unit] / units[to_unit]" + ] + }, + { + "cell_type": "markdown", + "id": "d3d1a3d3-b21e-493c-8db1-2a76dbff62fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a45ecdc-5c4f-458b-b292-a4c05564a6d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8439ed05-4a87-4ca5-af92-5f979730bd2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = convert_volume(value, from_unit, to_unit)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "8acc17ec-b543-49ef-befb-f57a96c08878", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "7b235c7c8db12861213c775e7d7ae25d6d24f1ab8ef535cb438e651f2e7a2d47", + "notebook_path": "Python/Python_Convert_volume.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Convert_weight.ipynb b/Python/Python_Convert_weight.ipynb new file mode 100644 index 0000000000..c7d309ee36 --- /dev/null +++ b/Python/Python_Convert_weight.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a375df46-3e8d-496c-b9f2-956a649ee2b0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "7da76030-0b3c-4c2f-9e7b-36043d3cd1a1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Convert weight\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a783de75-d983-43ac-8323-a92bca66a8c3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #convert #units #snippet #operations #weight" + ] + }, + { + "cell_type": "markdown", + "id": "e502ab4b-f881-47fa-a199-1d9604807537", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "26e78770-7b19-4833-9973-0ebaa9872966", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-21 (Created: 2023-06-21)" + ] + }, + { + "cell_type": "markdown", + "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook shows you how to convert weight using Python." + ] + }, + { + "cell_type": "markdown", + "id": "8848fad9-b586-4662-bb43-19c52e25967a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Python Unit converter example](https://stackoverflow.com/questions/32091117/simple-unit-converter-in-python)" + ] + }, + { + "cell_type": "markdown", + "id": "be71fe01-3f32-4bef-b52f-14559736a10e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "71db5801-b569-4661-8a73-7ab6674a643a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "[Unit Available symbols](https://github.com/Benjifilly/My_notebooks/wiki/Unit-symbols#weight--mass--category-weight)\n", + "- `value`: starting unit value\n", + "- `from_unit` : is the unit of the starting value, the one you want to convert\n", + "- `to_unit`: this is the unit we want to achieve with this script" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "56811afa-732c-46fd-b3a8-f04e4baada05", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "value = 500\n", + "from_unit = 'kg'\n", + "to_unit = 'lb'" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad5c91-6389-4bd2-8537-7e0088b93533", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "4b1df285-3221-458d-899d-bd2a0bf3fe0a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Unit available" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "72a0a05f-2935-4505-8a09-3602e791774c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def convert_weight(value, from_unit, to_unit):\n", + " units = {\n", + " 'mg': 0.001,\n", + " 'g': 1.0,\n", + " 'kg': 1000.0,\n", + " 'lb': 453.592,\n", + " 'oz': 28.3495,\n", + " 't': 1000000.0,\n", + " 'st': 6350.29318,\n", + " 'carat': 0.2,\n", + " 'grain': 0.06479891\n", + " # Add other weight units here\n", + " }\n", + "\n", + " if from_unit not in units or to_unit not in units:\n", + " raise ValueError(\"Invalid unit.\")\n", + "\n", + " return value * units[from_unit] / units[to_unit]" + ] + }, + { + "cell_type": "markdown", + "id": "d3d1a3d3-b21e-493c-8db1-2a76dbff62fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a45ecdc-5c4f-458b-b292-a4c05564a6d7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8439ed05-4a87-4ca5-af92-5f979730bd2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "result = convert_weight(value, from_unit, to_unit)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "8acc17ec-b543-49ef-befb-f57a96c08878", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "f5e386585bbd320a3d0dde509039baec9d255f0945b148fba09d94b400642d56", + "notebook_path": "Python/Python_Convert_weight.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb b/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb index 53e251423e..f8b20a200a 100644 --- a/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb +++ b/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Copy files and subdir from directory to another directory\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Parth Panchal](https://www.linkedin.com/in/parthpanchal8401/)" ] }, + { + "cell_type": "markdown", + "id": "a771cf5d-b41d-4d2f-80a9-082cf420ee1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb b/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb index 1689aedad9..a8e0eb43fc 100644 --- a/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb +++ b/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Create Email Combination with Firstname Lastname Domain address\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ae6a12b4-2651-4965-9d09-a60d10216a90", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-27)" + ] + }, { "cell_type": "markdown", "id": "5daa2d54-e61b-4c17-9ac7-f6fba95b1e17", diff --git a/Python/Python_Create_Strong_Random_Password.ipynb b/Python/Python_Create_Strong_Random_Password.ipynb index a9a0cb64c4..55a38966f3 100644 --- a/Python/Python_Create_Strong_Random_Password.ipynb +++ b/Python/Python_Create_Strong_Random_Password.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Create Strong Random Password\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Sunny](https://www.linkedin.com/in/sunny-chugh-ab1630177/)" ] }, + { + "cell_type": "markdown", + "id": "ea419c8f-dcaf-4404-805d-69f9aa0a4549", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-30)" + ] + }, { "cell_type": "markdown", "id": "12dfdc84-3387-44e3-bf1a-0dd0b61c5578", diff --git a/Python/Python_Create_dataframe_from_lists.ipynb b/Python/Python_Create_dataframe_from_lists.ipynb index bec642cdf1..89437ed784 100644 --- a/Python/Python_Create_dataframe_from_lists.ipynb +++ b/Python/Python_Create_dataframe_from_lists.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Python - Create dataframe from lists\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "9f005340-faa4-4c55-89e6-6267a7d9532a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Create_dict_from_lists.ipynb b/Python/Python_Create_dict_from_lists.ipynb index a7c1353d16..406a179f53 100644 --- a/Python/Python_Create_dict_from_lists.ipynb +++ b/Python/Python_Create_dict_from_lists.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Python - Create dict from lists\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "727e0ce5-4a4e-411a-bcdc-1e93a977e90e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Delete_entire_directory_tree.ipynb b/Python/Python_Delete_entire_directory_tree.ipynb index e6d2c877e6..d0a66976e2 100644 --- a/Python/Python_Delete_entire_directory_tree.ipynb +++ b/Python/Python_Delete_entire_directory_tree.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Delete entire directory tree\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "d3037c14-ced2-4e6a-8ce5-239d5b5a89e7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-26 (Created: 2023-04-26)" + ] + }, { "cell_type": "markdown", "id": "fa8d5282-3fab-451e-896d-b0cfadbc7847", diff --git a/Python/Python_Download_Image_from_URL.ipynb b/Python/Python_Download_Image_from_URL.ipynb index cd07d286b8..db5dc09e2d 100644 --- a/Python/Python_Download_Image_from_URL.ipynb +++ b/Python/Python_Download_Image_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Download Image from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Abraham Israel](https://www.linkedin.com/in/abraham-israel/)" ] }, + { + "cell_type": "markdown", + "id": "c2cec38d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-03 (Created: 2022-10-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -55,7 +66,19 @@ ] }, "source": [ - "**Description:** This notebook provides a step-by-step guide to downloading an image from a URL using Python." + "**Description:** This notebook demonstrates how to download an image from a URL using Python and `wget` library." + ] + }, + { + "cell_type": "markdown", + "id": "09d68457-6c0f-488d-bf37-bffac55ae70e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [PyPI wget](https://pypi.org/project/wget/)" ] }, { @@ -82,7 +105,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "closing-mercury", "metadata": { "papermill": {}, @@ -94,7 +117,8 @@ " import wget\n", "except:\n", " !pip install wget\n", - " import wget" + " import wget\n", + "from IPython.display import Image" ] }, { @@ -105,12 +129,13 @@ "tags": [] }, "source": [ - "### Setup Variables" + "### Setup Variables\n", + "- `image_url`: URL of the image" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "c1a428b8-c4f4-4bcf-870e-e910a755d7ce", "metadata": { "papermill": {}, @@ -118,7 +143,7 @@ }, "outputs": [], "source": [ - "image_url = \"https://i0.wp.com/thenerddaily.com/wp-content/uploads/2018/08/Reasons-To-Watch-Anime.jpg\"" + "image_url = \"https://landen.imgix.net/jtci2pxwjczr/assets/5ice39g4.png\"" ] }, { @@ -145,7 +170,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "4dde982b", "metadata": { "papermill": {}, @@ -175,12 +200,12 @@ "tags": [] }, "source": [ - "### Display result" + "### Display image" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "working-world", "metadata": { "papermill": {}, @@ -189,22 +214,8 @@ "outputs": [], "source": [ "print(\"Image downloaded: /\", image_name)\n", - "\n", - "from IPython.display import Image\n", - "\n", "Image(filename=image_name)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1f73fca3-5761-48f2-9f86-f7dda49c66b4", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/Python/Python_Download_PDF_from_URL.ipynb b/Python/Python_Download_PDF_from_URL.ipynb index 18b72bf6f6..48ad9362d1 100644 --- a/Python/Python_Download_PDF_from_URL.ipynb +++ b/Python/Python_Download_PDF_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Download PDF from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d96e113d-c0ec-4d28-a328-13e387544852", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-29)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Download_ZIP_from_URL.ipynb b/Python/Python_Download_ZIP_from_URL.ipynb index 90d04b5a76..19fa238e0c 100644 --- a/Python/Python_Download_ZIP_from_URL.ipynb +++ b/Python/Python_Download_ZIP_from_URL.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Download ZIP from URL\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Hamid Mukhtar](https://www.linkedin.com/in/mukhtar-hamid/)" ] }, + { + "cell_type": "markdown", + "id": "247657aa-b5c8-43d7-9a18-3ceeb0e69e74", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-04 (Created: 2023-04-11)" + ] + }, { "cell_type": "markdown", "id": "764ff1c3-7abb-4021-aa31-bf39f728e8a6", diff --git a/Python/Python_Download_audio_file_from_URL.ipynb b/Python/Python_Download_audio_file_from_URL.ipynb new file mode 100644 index 0000000000..646828214c --- /dev/null +++ b/Python/Python_Download_audio_file_from_URL.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "selected-stock", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "proved-olympus", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Python - Download audio file from URL\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "1f0d988a-15e5-4f88-b400-781706f0a683", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #python #download #snippet #url #naas #operations" + ] + }, + { + "cell_type": "markdown", + "id": "d6a76fe1-d6aa-4f18-b852-e788476cd7d0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" + ] + }, + { + "cell_type": "markdown", + "id": "6399169e-15ce-4b62-b3b6-6d2ffb3ab936", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-23 (Created: 2023-07-23)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook demonstrates how to download audio file from an URL using Python." + ] + }, + { + "cell_type": "markdown", + "id": "43b70b2a-e159-4f77-8d32-871dd789dd6c", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**References:**\n", + "- [response.content – Python requests](https://www.geeksforgeeks.org/response-content-python-requests/)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "closing-mercury", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "ef24f35b-b42a-4c95-b7e4-a79f9ab62c6b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `audio_url`: Audio URL" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c1a428b8-c4f4-4bcf-870e-e910a755d7ce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Inputs\n", + "audio_url = \"https://filesamples.com/samples/audio/m4a/sample4.m4a\"" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create output path" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "60a1bfca-cb1c-401e-8a01-73bc3552576c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Path to save the downloaded file\n", + "output_path = audio_url.split('/')[-1]\n", + "print(\"➡️ Output path:\", output_path)" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "51f45bc0-42ec-4297-91e6-5330084b69fb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Download audio file" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "working-world", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def download_audio(url, output_path):\n", + " # Send a GET request to download the file\n", + " response = requests.get(url)\n", + "\n", + " # Check if the request was successful\n", + " if response.status_code == 200:\n", + " # Save the content of the response (M4A file) to a local file\n", + " with open(output_path, \"wb\") as file:\n", + " file.write(response.content)\n", + " print(\"✅ M4A file downloaded successfully.\")\n", + " else:\n", + " print(\"❌ Failed to download the audio file.\")\n", + " \n", + "download_audio(audio_url, output_path)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "4c668b1964bb6e1a96dfe7a4ae9cfd6e4a9054a13f2852badfef2a5f5cc31077", + "notebook_path": "Python/Python_Download_audio_file_from_URL.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb b/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb index 1425bd1b8d..0510a6df9d 100644 --- a/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb +++ b/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Explore Dataset with Pivot Table\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "447f2d09-7fa3-4276-86b4-c88fd6a43eda", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-30)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Python/Python_Extract_characters_from_string.ipynb b/Python/Python_Extract_characters_from_string.ipynb index d287ceed5d..1ce6360ef5 100644 --- a/Python/Python_Extract_characters_from_string.ipynb +++ b/Python/Python_Extract_characters_from_string.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Extract characters from string\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "6a243ff9-401f-4922-b6f2-2873dd421a1e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-13 (Created: 2023-06-08)" + ] + }, { "cell_type": "markdown", "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", diff --git a/Python/Python_Find_Phone_Number_in_string.ipynb b/Python/Python_Find_Phone_Number_in_string.ipynb index 0de7d0cec3..9ca51394da 100644 --- a/Python/Python_Find_Phone_Number_in_string.ipynb +++ b/Python/Python_Find_Phone_Number_in_string.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Find Phone Number in string\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Anas Tazir](https://github.com/anastazir)" ] }, + { + "cell_type": "markdown", + "id": "eb5c23f8-3c79-492e-a240-3a9d05ef5729", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Find_differences_between_strings.ipynb b/Python/Python_Find_differences_between_strings.ipynb index 8feb60ef31..0430323f01 100644 --- a/Python/Python_Find_differences_between_strings.ipynb +++ b/Python/Python_Find_differences_between_strings.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Find differences between strings\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "1765e51e-21e0-47dd-9889-45a46a8544cf", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "6da325a4-a6d8-47e9-9f9e-f2f7b94ca913", diff --git a/Python/Python_Flatten_nested_dict.ipynb b/Python/Python_Flatten_nested_dict.ipynb index c6adb494aa..cf97dd851f 100644 --- a/Python/Python_Flatten_nested_dict.ipynb +++ b/Python/Python_Flatten_nested_dict.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Flatten nested dict\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "ca046072-534a-40e6-aa7f-bf3e979e9ad0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "8e1143a7-62c5-4b3a-b4f8-b45be9fe5de3", diff --git a/Python/Python_Get_Word_Definition_and_Translation.ipynb b/Python/Python_Get_Word_Definition_and_Translation.ipynb index ed474ebcb2..9031a8e51d 100644 --- a/Python/Python_Get_Word_Definition_and_Translation.ipynb +++ b/Python/Python_Get_Word_Definition_and_Translation.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Get Word Definition and Translation\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://twitter.com/srini047/)" ] }, + { + "cell_type": "markdown", + "id": "cffbef84-127d-4d48-b016-545be6b30679", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-18)" + ] + }, { "cell_type": "markdown", "id": "87abccf3-290d-4e3e-96a2-eb5373f27002", diff --git a/Python/Python_Get_all_files_from_directory.ipynb b/Python/Python_Get_all_files_from_directory.ipynb index 737ae79cf1..83b55019d3 100644 --- a/Python/Python_Get_all_files_from_directory.ipynb +++ b/Python/Python_Get_all_files_from_directory.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Get all files from directory\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Ayoub Berdeddouch](https://www.linkedin.com/ayoub-berdeddouch)" ] }, + { + "cell_type": "markdown", + "id": "42001e1f-6c02-47e2-a567-37edc3c66d56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-18)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Python/Python_Get_coordinates_from_address.ipynb b/Python/Python_Get_coordinates_from_address.ipynb index 3b3269c658..96bf6c7146 100644 --- a/Python/Python_Get_coordinates_from_address.ipynb +++ b/Python/Python_Get_coordinates_from_address.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Get coordinates from address\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Suhas B](https://www.linkedin.com/in/suhasbrao/)" ] }, + { + "cell_type": "markdown", + "id": "5e233910-eb9d-4b4d-9379-c505278d3e31", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Get_last_file_modified_from_directy.ipynb b/Python/Python_Get_last_file_modified_from_directy.ipynb index a1c1a43390..3294f9fcdf 100644 --- a/Python/Python_Get_last_file_modified_from_directy.ipynb +++ b/Python/Python_Get_last_file_modified_from_directy.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Get last file modified from directy\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d53f72e2-ec2a-49be-a2a4-10f2c9eb54fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-23)" + ] + }, { "cell_type": "markdown", "id": "1fc1c03a-1e33-47fa-946d-b49000579d3e", diff --git a/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb b/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb index d8c1b3ea77..41b4a55fde 100644 --- a/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb +++ b/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Get next occurrences of a cron job\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7ce7d9b6-1831-47a1-ab6b-70edbde5b1fc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-09 (Created: 2023-05-09)" + ] + }, { "cell_type": "markdown", "id": "a1735757-fd9a-4b5c-8dae-78ded1ba6a1c", diff --git a/Python/Python_Get_random_number.ipynb b/Python/Python_Get_random_number.ipynb index 1f7d6e916a..40b1a15d15 100644 --- a/Python/Python_Get_random_number.ipynb +++ b/Python/Python_Get_random_number.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Get random number\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "1661b06e-947e-4144-ba56-9ae5a2c21a76", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-08 (Created: 2023-06-07)" + ] + }, { "cell_type": "markdown", "id": "2e8b31cf-ccc0-4390-86cc-7a43e8afdbc5", diff --git a/Python/Python_Get_random_word.ipynb b/Python/Python_Get_random_word.ipynb index b3f3e10e1c..54e95c4bbf 100644 --- a/Python/Python_Get_random_word.ipynb +++ b/Python/Python_Get_random_word.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Python - Get a random word\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "e4d69a9f-9772-4c91-814f-a6b93a40732a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-06-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb b/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb index 777520fdec..b2c62c6a25 100644 --- a/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb +++ b/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - List specific files from directory and subdirectories\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "34f03275-f71a-49ca-a3a1-27be3c367d1b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-31 (Created: 2023-05-31)" + ] + }, { "cell_type": "markdown", "id": "5d93e117-10de-4032-b559-7c7cc7e8a870", diff --git a/Python/Python_Locate_address_on_map.ipynb b/Python/Python_Locate_address_on_map.ipynb index 59aa968600..f71be27076 100644 --- a/Python/Python_Locate_address_on_map.ipynb +++ b/Python/Python_Locate_address_on_map.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Locate address on map\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "d2a2e6ee-4134-496d-b6da-b3a04bb8300f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "41bc61b6-165c-4123-bda7-856785ca30c0", diff --git a/Python/Python_Locate_city_on_map.ipynb b/Python/Python_Locate_city_on_map.ipynb index 44e98aa944..af9b844a07 100644 --- a/Python/Python_Locate_city_on_map.ipynb +++ b/Python/Python_Locate_city_on_map.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Locate city on map\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "698bb0fe-1766-41b5-a824-3a450195eba7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "41bc61b6-165c-4123-bda7-856785ca30c0", diff --git a/Python/Python_Locate_coordinates.ipynb b/Python/Python_Locate_coordinates.ipynb index c74c64d3f0..23237f0143 100644 --- a/Python/Python_Locate_coordinates.ipynb +++ b/Python/Python_Locate_coordinates.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Locate coordinates\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Suhas B](https://www.linkedin.com/in/suhasbrao/)" ] }, + { + "cell_type": "markdown", + "id": "4f04f3c7-5de3-4224-8e7e-87297bf539d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-24)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Looping_Over_Dataframe.ipynb b/Python/Python_Looping_Over_Dataframe.ipynb index 6d30eaac67..8ca129c0db 100644 --- a/Python/Python_Looping_Over_Dataframe.ipynb +++ b/Python/Python_Looping_Over_Dataframe.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Python - Looping Over Dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Oketunji Oludolapo](https://www.linkedin.com/in/oludolapo-oketunji/)" ] }, + { + "cell_type": "markdown", + "id": "1cfaa812-83d6-4dd4-9d19-ea3c6d27cea9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2021-10-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Python/Python_Manage_exception_with_try_except.ipynb b/Python/Python_Manage_exception_with_try_except.ipynb index 90dd5eda55..00d0e8018f 100644 --- a/Python/Python_Manage_exception_with_try_except.ipynb +++ b/Python/Python_Manage_exception_with_try_except.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Manage code error with try except\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "db928a21-5e5e-44e5-85c5-49f1496f0c67", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-16 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "d3c4f486-789b-4ed6-bc4e-10f42242b425", diff --git a/Python/Python_Organize_Directories_based_on_file_types.ipynb b/Python/Python_Organize_Directories_based_on_file_types.ipynb index 16605bc378..b49be1737a 100644 --- a/Python/Python_Organize_Directories_based_on_file_types.ipynb +++ b/Python/Python_Organize_Directories_based_on_file_types.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Python - Organize Directories based on file types\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Ahmed Mousa](https://www.linkedin.com/in/akmousa/)" ] }, + { + "cell_type": "markdown", + "id": "3216b2ca-230a-4f1b-a01a-4259dc4bb0c2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-11)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Python/Python_Pseudonym_generator.ipynb b/Python/Python_Pseudonym_generator.ipynb index a07374c006..633d181bce 100644 --- a/Python/Python_Pseudonym_generator.ipynb +++ b/Python/Python_Pseudonym_generator.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Pseudonym generator\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "20b68ee6-75f6-4d77-bd66-dda88b92e74c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-06-15)" + ] + }, { "cell_type": "markdown", "id": "2e8b31cf-ccc0-4390-86cc-7a43e8afdbc5", diff --git a/Python/Python_Read_pickle_file.ipynb b/Python/Python_Read_pickle_file.ipynb index a7b35a5429..b982515da3 100644 --- a/Python/Python_Read_pickle_file.ipynb +++ b/Python/Python_Read_pickle_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Read pickle file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Kaushal Krishna](https://www.linkedin.com/in/kaushal-krishna-a48959153/)" ] }, + { + "cell_type": "markdown", + "id": "2175dd77-7f3d-460a-baa5-a39c4dcc3440", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-13)" + ] + }, { "cell_type": "markdown", "id": "d3c4f486-789b-4ed6-bc4e-10f42242b425", diff --git a/Python/Python_Remove_all_spaces_on_string.ipynb b/Python/Python_Remove_all_spaces_on_string.ipynb index 9ccaaafd2b..0a783aab7a 100644 --- a/Python/Python_Remove_all_spaces_on_string.ipynb +++ b/Python/Python_Remove_all_spaces_on_string.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Remove all spaces on string\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "5fe82720-b183-4e19-9d9c-a943e4e99079", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-13 (Created: 2023-06-13)" + ] + }, { "cell_type": "markdown", "id": "1a718131-46f1-4166-a074-3c331656581b", diff --git a/Python/Python_Save_dict_to_pickle.ipynb b/Python/Python_Save_dict_to_pickle.ipynb index a9484d2c3b..5e270bb69b 100644 --- a/Python/Python_Save_dict_to_pickle.ipynb +++ b/Python/Python_Save_dict_to_pickle.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Save dict to pickle\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Kaushal Krishna](https://www.linkedin.com/in/kaushal-krishna-a48959153/)" ] }, + { + "cell_type": "markdown", + "id": "47f9b134-8104-4017-b82f-b7f694946d12", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-13)" + ] + }, { "cell_type": "markdown", "id": "d3c4f486-789b-4ed6-bc4e-10f42242b425", diff --git a/Python/Python_Split_string.ipynb b/Python/Python_Split_string.ipynb index d68a4eca2c..ac7df11c36 100644 --- a/Python/Python_Split_string.ipynb +++ b/Python/Python_Split_string.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Split string\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "849c36c9-ca8a-4571-b962-c499d91789a7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-09 (Created: 2023-06-08)" + ] + }, { "cell_type": "markdown", "id": "b447e3a8-ced8-4831-bbfc-ca5a7466df6f", diff --git a/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb b/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb index 5dbb74110e..bd680f5f42 100644 --- a/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb +++ b/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Transform String to Secure Hash Algorithm\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Firstname LastName](https://www.linkedin.com/in/xxxxxx/)" ] }, + { + "cell_type": "markdown", + "id": "5100047f-1476-4e14-946f-2f2098216efe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-06-19)" + ] + }, { "cell_type": "markdown", "id": "0f977f2d-e8e5-4c25-876e-3c834a8e48cd", diff --git a/Python/Python_Validate_email_and_phone_numbers.ipynb b/Python/Python_Validate_email_and_phone_numbers.ipynb index 2f5f63d4b4..45456bee27 100644 --- a/Python/Python_Validate_email_and_phone_numbers.ipynb +++ b/Python/Python_Validate_email_and_phone_numbers.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Python - Validate email and phone numbers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://twitter.com/srini047/)" ] }, + { + "cell_type": "markdown", + "id": "211f5e70-b2c3-4377-9220-ec849c786305", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-05 (Created: 2023-06-05)" + ] + }, { "cell_type": "markdown", "id": "c7d1a114-f5ce-495a-b442-7cd2712b3f02", diff --git a/Pyvis/Pyvis_Create_a_network_visualization.ipynb b/Pyvis/Pyvis_Create_a_network_visualization.ipynb index 68810d3268..ff47709ea2 100644 --- a/Pyvis/Pyvis_Create_a_network_visualization.ipynb +++ b/Pyvis/Pyvis_Create_a_network_visualization.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Pyvis - Create a network visualization\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "9f4457c5-1377-4167-8528-fdb7449f2d2d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-27)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Qonto/Qonto_Get_cash_position_trend.ipynb b/Qonto/Qonto_Get_cash_position_trend.ipynb index 4c82283cea..436fe5e9be 100644 --- a/Qonto/Qonto_Get_cash_position_trend.ipynb +++ b/Qonto/Qonto_Get_cash_position_trend.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get cash position trend\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1442d19f-65d3-4cb7-a28d-b42b6d2e6250", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_organizations.ipynb b/Qonto/Qonto_Get_organizations.ipynb index 333871beb2..552f37b3d7 100644 --- a/Qonto/Qonto_Get_organizations.ipynb +++ b/Qonto/Qonto_Get_organizations.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get organizations\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6121a095-920b-4e20-a109-4226d67f4065", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_positions.ipynb b/Qonto/Qonto_Get_positions.ipynb index 0f0d610d07..f606516b23 100644 --- a/Qonto/Qonto_Get_positions.ipynb +++ b/Qonto/Qonto_Get_positions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get positions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bd5a2300-2e73-4cde-a059-5e7217b88e87", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-01-26)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_statement.ipynb b/Qonto/Qonto_Get_statement.ipynb index adc00bc69c..347567b802 100644 --- a/Qonto/Qonto_Get_statement.ipynb +++ b/Qonto/Qonto_Get_statement.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get statement\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "18cb9c70-5af2-475d-8efd-d34ed08e5185", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_statement_barline.ipynb b/Qonto/Qonto_Get_statement_barline.ipynb index cc389ae5cb..6b6b7ae76f 100644 --- a/Qonto/Qonto_Get_statement_barline.ipynb +++ b/Qonto/Qonto_Get_statement_barline.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get statement barline\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e2bcbe1f-9c2a-4b71-8e88-f8143c509958", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_statement_ranking_by_category.ipynb b/Qonto/Qonto_Get_statement_ranking_by_category.ipynb index 657564f03e..0a282fbc51 100644 --- a/Qonto/Qonto_Get_statement_ranking_by_category.ipynb +++ b/Qonto/Qonto_Get_statement_ranking_by_category.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get statement ranking by category\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6d8a678b-68de-4f75-9a4f-657da632b19a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb b/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb index 565a8b2fe7..50bc441357 100644 --- a/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb +++ b/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get statement summary by operation type\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b1167707-1c43-485f-bf68-cabc4482b06e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Get_transactions.ipynb b/Qonto/Qonto_Get_transactions.ipynb index 2d7ade385c..9695c08f1a 100644 --- a/Qonto/Qonto_Get_transactions.ipynb +++ b/Qonto/Qonto_Get_transactions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Get transactions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "913c5a7e-03ea-41a8-b363-ea6414a2dd43", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Qonto/Qonto_Releve_de_compte_augmente.ipynb b/Qonto/Qonto_Releve_de_compte_augmente.ipynb index 01fb910669..1eb767536a 100644 --- a/Qonto/Qonto_Releve_de_compte_augmente.ipynb +++ b/Qonto/Qonto_Releve_de_compte_augmente.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Qonto - Releve de compte augmente\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "90119b23-d4f3-41ab-a3ae-dc8484fafc21", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-07-21)" + ] + }, { "cell_type": "markdown", "id": "adjusted-material", diff --git a/Quandl/Quandl_Get_data_from_API.ipynb b/Quandl/Quandl_Get_data_from_API.ipynb index 50acca90ab..750f390f95 100644 --- a/Quandl/Quandl_Get_data_from_API.ipynb +++ b/Quandl/Quandl_Get_data_from_API.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Quandl - Get data from API\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "b9e6c566-73ea-4e67-b17e-82f0978fde0e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Quandl/Quandl_Get_data_from_CSV.ipynb b/Quandl/Quandl_Get_data_from_CSV.ipynb index 1fdab38ff8..38dee1af60 100644 --- a/Quandl/Quandl_Get_data_from_CSV.ipynb +++ b/Quandl/Quandl_Get_data_from_CSV.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Quandl - Get data from CSV\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "11d9aab2-f5ed-4363-a17d-8f82e2558558", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-02-28)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/README.md b/README.md index c3325e93fa..25a24404ce 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,12 @@ The repository is organized by source/tools for easy discovery. You can also use To ensure the quality of the templates, we have defined a framework. Each notebook shall be organized with the following sections: - **Naas logo** -- **# Title**: "Tool - Action of the notebook", as h1 (an "Open in Naas" button will be automatically added by the CI/CD when a notebook is merged to the master branch) -- **Tags**: hastags of the topics the notebook is about, as text -- **Author**: name and social profile link of the author(s), as text -- **Description**: a one-liner explaining the benefits of the notebooks for the user, as text +- **# Title**: "Tool - Action of the notebook", as h1. An "Open in Naas" button will be added automatically by the CI/CD when a notebook is merged to the master branch. +- **Tags:**: hashtags relevant to the topics covered in the notebook, as text +- **Author:**: name and social profile link of the author(s), as text +- **Last update:** YYYY-MM-DD (Created: YYYY-MM-DD): The last update date refers to when the notebook was last edited, while the created date corresponds to when the notebook was initially merged. +- **Description:**: a one-liner explaining the benefits of the notebooks for the user, as text +- **References:**: list of references and websites utilized in the creation of this notebook - **## Input**: list of all the variables, credentials, that needs to be setup, as h2 - **## Model**: list the functions applied to the data, as h2 - **## Output**: list the assets to be used by the user and its distribution channels if any, as h2 @@ -89,6 +91,12 @@ We are committed to sharing templates and giving shout outs to the contributors ## Advertools * [Analyze website content using XML sitemap](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb) * [Audit robots txt and xml sitemap issues](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb) +* [Check status code and Send report by email](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb) +* [Check status code in bulk](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Check_status_code_in_bulk.ipynb) +* [Check website pages status code](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Check_website_pages_status_code.ipynb) +* [Crawling a website](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Crawl_a_website.ipynb) +* [Visualize status codes OK and KO](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb) +* [Visualize status codes count](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Visualize_status_codes_count.ipynb) ## Affinity * [Sync with Notion database](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Affinity/Affinity_Sync_with_Notion_database.ipynb) @@ -96,6 +104,9 @@ We are committed to sharing templates and giving shout outs to the contributors ## Agicap * [Export treasury plan](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Export_treasury_plan.ipynb) * [Export treasury plan by account](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Export_treasury_plan_by_account.ipynb) +* [Get banks accounts from company](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Get_banks_accounts_from_company.ipynb) +* [Get inflow categories from company](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Get_inflow_categories_from_company.ipynb) +* [Get outflow categories from company](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Get_outflow_categories_from_company.ipynb) * [List companies](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_List_companies.ipynb) ## Airtable @@ -119,8 +130,12 @@ We are committed to sharing templates and giving shout outs to the contributors * [Get income statement](https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_income_statement.ipynb) ## Azure Blob Storage +* [List blobs](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Blob%20Storage/Azure_Blob_Storage_List_blobs.ipynb) * [Upload files](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Blob%20Storage/Azure_Blob_Storage_Upload_files.ipynb) +## Azure Machine Learning +* [Univariate Timeseries Inference](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Machine%20Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb) + ## Bazimo * [Get export Actifs](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Actifs.ipynb) * [Get export Baux](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Baux.ipynb) @@ -159,10 +174,6 @@ We are committed to sharing templates and giving shout outs to the contributors * [Calculate Support and Resistance](https://github.com/jupyter-naas/awesome-notebooks/blob/master/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb) * [Predict Bitcoin from Binance](https://github.com/jupyter-naas/awesome-notebooks/blob/master/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb) -## CSV -* [Read file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/CSV/CSV_Read_file.ipynb) -* [Save file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/CSV/CSV_Save_file.ipynb) - ## Canny * [Create](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Create.ipynb) * [Github issue update](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Github_issue_update.ipynb) @@ -177,6 +188,7 @@ We are committed to sharing templates and giving shout outs to the contributors ## Clockify * [Add a new client](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Add_a_new_client.ipynb) * [Add a new project](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Add_a_new_project.ipynb) +* [Create time entries database on a workspace](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb) * [Delete client](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Delete_client.ipynb) * [Delete project](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Delete_project.ipynb) * [Find all users on workspace](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_all_users_on_workspace.ipynb) @@ -188,6 +200,7 @@ We are committed to sharing templates and giving shout outs to the contributors * [Get project by ID](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_project_by_ID.ipynb) * [Get time entries for a user on workspace](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb) * [Remove user from workspace](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Remove_user_from_workspace.ipynb) +* [Send time entries database to a Google Sheets spreadsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb) * [Update client](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Update_client.ipynb) * [Update project](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Update_project.ipynb) @@ -227,6 +240,15 @@ We are committed to sharing templates and giving shout outs to the contributors * [COVID19 - FR - Entrées et sorties par région pour 1 million d'hab.](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Data.gouv.fr/COVID19%20-%20%20FR%20-%20Entr%C3%A9es%20et%20sorties%20par%20r%C3%A9gion%20pour%201%20million%20d%27hab..ipynb) * [Récupération données légales entreprise](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Data.gouv.fr/Data.gouv.fr_R%C3%A9cup%C3%A9ration_donn%C3%A9es_l%C3%A9gales_entreprise.ipynb) +## Datetime +* [Calculate relative time delta between two dates](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb) +* [Calculate time delta between two dates](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb) +* [Convert datetime object to a formatted date string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb) +* [Convert with Timezone to ISO 8601 date string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb) +* [Convert relative time delta to months](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb) +* [Convert a string date to a datetime object](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_string_to_datetime_object.ipynb) +* [Convert timestamp to a datetime object](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb) + ## Deepl * [Translated string to txt](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Deepl/Deepl_Translated_string_to_txt.ipynb) @@ -272,13 +294,33 @@ We are committed to sharing templates and giving shout outs to the contributors * [Anonymize Address from dataframe](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Faker/Faker_Anonymize_Address_from_dataframe.ipynb) * [Anonymize Personal Names from dataframe](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb) +## Folium +* [Add markers on map](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Folium/Folium_Add_markers_on_map.ipynb) +* [Build route maps](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Folium/Folium_Build_route_maps.ipynb) +* [Create map](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Folium/Folium_Create_map.ipynb) + +## Forecast +* [List all assignments](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_assignments.ipynb) +* [List all clients](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_clients.ipynb) +* [List all people](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_people.ipynb) +* [List all projects](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_projects.ipynb) + ## Formant * [Query Device Network](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Formant/Formant_Query_Device_Network.ipynb) +## Geopy +* [Calculate distance between two locations in kilometers](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb) +* [Calculate distance between two locations in miles](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb) +* [Display markers on map from addresses](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Display_markers_on_map.ipynb) +* [Display route itinerary between two locations](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb) +* [Get address from coordinates](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Get_address_from_coordinates.ipynb) +* [Get coordinates from address](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Get_coordinates_from_address.ipynb) + ## GitHub * [Add new issues as page in Notion database](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb) * [Add new member to team](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_new_member_to_team.ipynb) * [Add or update team membership for a user](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb) +* [Clone open branches from repository on my local](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb) * [Clone repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_repository.ipynb) * [Clone repository and switch branch](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb) * [Close issue](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Close_issue.ipynb) @@ -294,11 +336,13 @@ We are committed to sharing templates and giving shout outs to the contributors * [Download file from url](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_file_from_url.ipynb) * [Download repository from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_repository_from_URL.ipynb) * [Follow stargazers trend](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Follow_stargazers_trend.ipynb) +* [Get DataFrame with issue estimate from project view](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb) * [Get Traffic Clones on repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb) * [Get Traffic Views on repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb) * [Get a repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_a_repository.ipynb) * [Get active projects](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_active_projects.ipynb) * [Get commits from repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_from_repository.ipynb) +* [List commits history from file path](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_history_from_file_path.ipynb) * [Get commits ranking from repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb) * [Get files added on pull request](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_files_added_on_pull_request.ipynb) * [Get files changed on pull request](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb) @@ -310,6 +354,8 @@ We are committed to sharing templates and giving shout outs to the contributors * [Get team membership for a user](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_team_membership_for_a_user.ipynb) * [Get weekly commits from repository](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb) * [List all pull requests](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_all_pull_requests.ipynb) +* [List branches](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_branches.ipynb) +* [List branches with open PR](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_branches_with_open_PR.ipynb) * [List closed pull requests](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_closed_pull_requests.ipynb) * [List issue comments](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_issue_comments.ipynb) * [List open pull requests](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_open_pull_requests.ipynb) @@ -319,10 +365,14 @@ We are committed to sharing templates and giving shout outs to the contributors * [List team members](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_team_members.ipynb) * [Peform basic actions](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Peform_basic_actions.ipynb) * [Read issue](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Read_issue.ipynb) +* [Remove directories with branches closed on my local](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb) * [Remove member from team](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_member_from_team.ipynb) * [Remove team membership for a user](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb) * [Reopen issue](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Reopen_issue.ipynb) +* [Send contributor activity on slack](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_contributor_activity_on_slack.ipynb) * [Send stargazers to Google Sheets](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb) +* [Send template maintainer monthly report](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb) +* [Send templates created on a notebooks to Slack channel](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb) * [Track issues on projects](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Track_issues_on_projects.ipynb) * [Track notebooks created over time](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Track_notebooks_created_over_time.ipynb) * [Update issue](https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Update_issue.ipynb) @@ -333,9 +383,13 @@ We are committed to sharing templates and giving shout outs to the contributors * [Create GitHub issue on specific email](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb) * [Create draft email](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Create_draft_email.ipynb) * [Delete email from mailbox](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Delete_email_from_mailbox.ipynb) +* [Get emails by date](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_emails_by_date.ipynb) * [Get emails stats by sender](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_emails_stats_by_sender.ipynb) +* [Get most common senders](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_most_common_senders.ipynb) +* [Get most important unseen emails](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_most_important_unseen_emails.ipynb) * [Get seen emails](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_seen_emails.ipynb) * [Get unseen emails](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_unseen_emails.ipynb) +* [Mark emails as seen by dates](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb) * [Read mailbox](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Read_mailbox.ipynb) * [Send email](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Send_email.ipynb) * [Update email flag](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Update_email_flag.ipynb) @@ -370,6 +424,13 @@ We are committed to sharing templates and giving shout outs to the contributors ## Google Drive * [Download file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Drive/Google_Drive_Download_file.ipynb) +## Google Maps +* [Calculate travel costs between two addresses](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb) +* [Connect to Routes API](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Connect_to_Routes_API.ipynb) +* [Create and display distance matrix](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Create_and_display_distance_matrix.ipynb) +* [Create itinerary optimisation on differents waypoints](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb) +* [Get coordinates from address](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Get_coordinates_from_address.ipynb) + ## Google Search * [Get LinkedIn company url from name](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb) * [Get LinkedIn profile url from name](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb) @@ -378,6 +439,7 @@ We are committed to sharing templates and giving shout outs to the contributors ## Google Sheets * [Add items to Notion databases from new rows in](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb) * [Add new github member to team from spreadsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb) +* [Calculate distance and price](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb) * [Get data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Get_data.ipynb) * [Send LinkedIn invitations from spreadsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb) * [Send data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_data.ipynb) @@ -395,13 +457,18 @@ We are committed to sharing templates and giving shout outs to the contributors * [Create a website](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HTML/HTML_Create_a_website.ipynb) ## Harvest +* [Get Filtered List of Time Entries](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_Filtered_time_entries.ipynb) * [List all clients](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_clients.ipynb) * [List all time entries](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_time_entries.ipynb) +* [List all users](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_users.ipynb) ## Healthchecks * [Perfom basic actions](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb) ## HubSpot +* [Add LinkedIn message to contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb) +* [Add SMS message to contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb) +* [Add WhatsApp message to contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb) * [Associate contact to deal](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Associate_contact_to_deal.ipynb) * [Create Task](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_Task.ipynb) * [Create contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contact.ipynb) @@ -410,19 +477,31 @@ We are committed to sharing templates and giving shout outs to the contributors * [Create deal](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_deal.ipynb) * [Create note](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_note.ipynb) * [Delete Task](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_Task.ipynb) +* [Delete communication](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_communication.ipynb) * [Delete contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_contact.ipynb) * [Delete deal](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_deal.ipynb) * [Delete note](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_note.ipynb) * [Get Task](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_Task.ipynb) +* [Get activities from contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_activities_from_contact.ipynb) * [Get all contacts](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_contacts.ipynb) * [Get all deals](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_deals.ipynb) * [Get all pipelines and dealstages](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb) -* [Get contact from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_from_URL.ipynb) -* [Get contact from email](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_from_email.ipynb) -* [Get contact from id](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_from_id.ipynb) +* [Get communications associated to contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb) +* [Get contact details from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_details_from_URL.ipynb) +* [Get contact details from email](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_details_from_email.ipynb) +* [Get contact details from contact id](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_details_from_id.ipynb) * [Get contacts associated to deal](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb) * [Get deal](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_deal.ipynb) +* [Get meetings associated to contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb) * [Get notes from contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_notes_from_contact.ipynb) +* [Get sales emails associated to contact](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb) +* [List communication properties](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_communication_properties.ipynb) +* [List contact properties](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_contact_properties.ipynb) +* [List meeting properties](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_meeting_properties.ipynb) +* [List notes properties](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_notes_properties.ipynb) +* [List sales emails properties](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_sales_emails_properties.ipynb) +* [Retrieve communication details](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Retrieve_communication_details.ipynb) +* [Retrieve meetings](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Retrieve_meetings.ipynb) * [Send LinkedIn invitations from contacts](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb) * [Send closed deals weekly](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb) * [Send contacts to gsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb) @@ -470,6 +549,14 @@ We are committed to sharing templates and giving shout outs to the contributors ## Integromat * [Trigger workflow](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Integromat/Integromat_Trigger_workflow.ipynb) +## JSON +* [Convert Python Objects to](https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Convert_Python_Objects_to_JSON.ipynb) +* [Pretty print data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Pretty_print_JSON_data.ipynb) +* [Read local file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Read_local_file.ipynb) +* [Save dataframe to file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Save_dataframe_to_JSON_file.ipynb) +* [Save dict to file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Save_dict_to_JSON_file.ipynb) +* [Send to Google Sheets spreadsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb) + ## Johns Hopkins * [Covid19 Active Cases](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Johns%20Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb) * [Get Covid19 data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Johns%20Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb) @@ -500,6 +587,8 @@ We are committed to sharing templates and giving shout outs to the contributors ## LangChain * [CSV Agent](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_CSV_Agent.ipynb) +* [Gmail Toolkit](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_Gmail_Toolkit.ipynb) +* [JSON Agent](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_JSON_Agent.ipynb) * [Pandas Dataframe Agent](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb) ## LeFigaro @@ -512,6 +601,7 @@ We are committed to sharing templates and giving shout outs to the contributors ## LinkedIn * [Accept all invitations and send first message](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb) * [Accept invitation received](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Accept_invitation_received.ipynb) +* [Chat about my latest profile posts](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb) * [Create Post](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Create_Post.ipynb) * [Create posts metrics dashboard](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb) * [Extract content world cloud](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb) @@ -553,6 +643,7 @@ We are committed to sharing templates and giving shout outs to the contributors * [Get profile information](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_profile_information.ipynb) * [Get profile posts stats](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb) * [Get resume from profile](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb) +* [Get sentiment analysis from post comments](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb) * [Get sentiment emotion irony offensiveness from comments](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb) * [Get stats from post](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_stats_from_post.ipynb) * [Ignore invitation received](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb) @@ -565,6 +656,8 @@ We are committed to sharing templates and giving shout outs to the contributors * [Send invitation to profile](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb) * [Send invitation to profile from post likes](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb) * [Send invitations to post commenters](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb) +* [Send like to latest profile post](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb) +* [Send like to post](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_like_to_post.ipynb) * [Send likes from post to gsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb) * [Send message to new connections](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb) * [Send message to profile](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_profile.ipynb) @@ -577,7 +670,17 @@ We are committed to sharing templates and giving shout outs to the contributors * [Withdraw pending profile invitations](https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb) ## Matplotlib +* [Create Barchart](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Barchart.ipynb) +* [Create Horizontal Barchart](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb) +* [Create Stacked Barchart](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb) +* [Create Stackplots](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Stackplot.ipynb) +* [Create Step Demo](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Step_Demo.ipynb) +* [Create Streamgraphs](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Streamgraphs.ipynb) * [Create Waterfall chart](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb) +* [Creating a timeline with lines, dates, and text](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_timeline%20_with_lines_dates_and_text.ipynb) +* [Errorbar Limit Selection](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb) +* [Mapping marker properties to multivariate data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb) +* [Plotting the Coherence of two signals](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb) ## Metrics Store * [Content creation Track connections](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Metrics%20Store/Content_creation_Track_connections.ipynb) @@ -588,16 +691,23 @@ We are committed to sharing templates and giving shout outs to the contributors ## Microsoft Word * [Convert to HMTL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Microsoft%20Word/Microsoft_Word_Convert_to_HMTL.ipynb) +## Mixpanel +* [Get Profile Event Activity](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb) + ## MongoDB * [Get data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Get_data.ipynb) * [Send data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Send_data.ipynb) * [Send data to Google Sheets](https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb) +## MoviePy +* [Convert audio file M4A to MP3](https://github.com/jupyter-naas/awesome-notebooks/blob/master/MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb) + ## MySQL * [Query database](https://github.com/jupyter-naas/awesome-notebooks/blob/master/MySQL/MySQL_Query_database.ipynb) ## NASA * [Artic sea ice](https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Artic_sea_ice.ipynb) +* [Display Exoplanet by Light Curves](https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb) * [Global temperature](https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Global_temperature.ipynb) * [Sea level](https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Sea_level.ipynb) @@ -629,6 +739,8 @@ We are committed to sharing templates and giving shout outs to the contributors * [Delete Scheduler](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Scheduler.ipynb) * [Delete Secret](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Secret.ipynb) * [Delete Webhook](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Webhook.ipynb) +* [Delete all assets](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_all_assets.ipynb) +* [Delete all schedulers](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_all_schedulers.ipynb) * [Dependency demo](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Dependency_demo.ipynb) * [Doc demo](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Doc_demo.ipynb) * [Download Content Engine](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Download_Content_Engine.ipynb) @@ -713,10 +825,23 @@ We are committed to sharing templates and giving shout outs to the contributors * [Create directory](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Create_directory.ipynb) * [Get access of environment variables](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_access_of_environment_variables.ipynb) * [Get current working directory](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_current_working_directory.ipynb) +* [Get folder stats](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_folder_stats.ipynb) * [List entries in directory](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_List_entries_in_directory.ipynb) * [Remove file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Remove_file.ipynb) * [Rename file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Rename_file.ipynb) +## OWID +* [Visualize GDP per capita through the years](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb) +* [Visualize Human Development Index](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_Human_Development_Index.ipynb) +* [Visualize oil consumption throughout the years](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb) +* [Visualize Population of Different Age Groups](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb) +* [Visualize economic freedom through the years](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb) +* [Visualize greenhouse gas per capita](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb) +* [Visualize Life expectancy at birth for both sexes throughout the years](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb) +* [Tourist depature per 1000](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_tourist_departures_per_1000.ipynb) +* [Visualize wealth distribuition of certain major economic powers](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_wealth_distribution.ipynb) +* [Visualize world population growth](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_world_population_growth.ipynb) + ## OpenAI * [Act as a AI enthusiast](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb) * [Act as a Business Analyst](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb) @@ -761,6 +886,15 @@ We are committed to sharing templates and giving shout outs to the contributors * [Write a social media post](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_social_media_post.ipynb) * [Write an outline](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_an_outline.ipynb) +## OpenAlex +* [Get lists of authors](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_authors.ipynb) +* [Get lists of concepts](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb) +* [Get lists of funders](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_funders.ipynb) +* [Get lists of institutions](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb) +* [Get lists of publishers](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb) +* [Get lists of sources](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_sources.ipynb) +* [Get lists of works](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_works.ipynb) + ## OpenBB * [Create an kernel on Naas](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb) @@ -777,12 +911,14 @@ We are committed to sharing templates and giving shout outs to the contributors * [Upload file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/OwnCloud/OwnCloud_Upload_file.ipynb) ## PDF -* [Extract Text from](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Extract_Text_from_PDF.ipynb) +* [Extract Text from file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Extract_Text_from_file.ipynb) * [Merge multiple documents](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Merge_multiple_PDF_documents.ipynb) * [Transform to MP3](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Transform_to_MP3.ipynb) ## Pandas +* [Apply custom styles on column](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Apply_custom_styles_on_column.ipynb) * [Check Columns type](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Check_Columns_type.ipynb) +* [Check if column is in date format](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Check_if_column_is_in_date_format.ipynb) * [Concatenate dataframes](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Concatenate_dataframes.ipynb) * [Convert datetime series](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Convert_datetime_series.ipynb) * [Create Pivot Table](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_Pivot_Table.ipynb) @@ -796,6 +932,7 @@ We are committed to sharing templates and giving shout outs to the contributors * [Fill emtpy values](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Fill_emtpy_values.ipynb) * [Filter DataFrame](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Filter_DataFrame.ipynb) * [Flatten MultiIndex Columns](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb) +* [Format URL as clickable link on column](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb) * [Format number to string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Format_number_to_string.ipynb) * [Get n largest](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Get_n_largest.ipynb) * [Get n smallest](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Get_n_smallest.ipynb) @@ -860,7 +997,12 @@ We are committed to sharing templates and giving shout outs to the contributors * [Create Waterfall chart](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Waterfall_chart.ipynb) ## Polars +* [Concatenate DataFrames](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Concatenate_DataFrames.ipynb) +* [Create DataFrame](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Create_DataFrame.ipynb) * [Read CSV](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Read_CSV.ipynb) +* [Select columns](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Select_Columns.ipynb) +* [Select rows](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Select_Rows.ipynb) +* [Select both rows and columns](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Select_Rows_and_Columns.ipynb) ## PostgresSQL * [Get data from database](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb) @@ -881,24 +1023,31 @@ We are committed to sharing templates and giving shout outs to the contributors * [Analyze Pandas dataframe](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb) ## PyPI -* [- Get number of downloads any package](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyPI/PyPI%20-%20Get_number_of_downloads_any_package.ipynb) +* [- Get number of downloads any package](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyPI/PyPI_Get_number_of_downloads_any_package.ipynb) +* [Get release dates from package](https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyPI/PyPI_Get_release_dates_from_package.ipynb) ## Python -* [Calculate relative time delta between two dates](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb) -* [Calculate time delta between two dates](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Calculate_time_delta_between_two_dates.ipynb) +* [Check if string is number](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Check_if_string_is_number.ipynb) * [Clean your download folder](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Clean_your_download_folder.ipynb) * [Compress images](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Compress_images.ipynb) * [Consolidate Excel files](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Consolidate_Excel_files.ipynb) * [Convert CSV to Excel](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_CSV_to_Excel.ipynb) -* [Convert Datetime with Timezone to ISO 8601 date string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb) +* [Convert degrees-minutes-seconds to decimal degrees](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_DMS_to_decimal_degrees.ipynb) * [Convert PNG Images To JPG](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_PNG_Images_To_JPG.ipynb) * [Convert URL to string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_URL_to_string.ipynb) * [Convert audiofile from wav to mp3](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb) +* [Convert coordinates to degrees-minutes-seconds](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_coordinates_to_DMS.ipynb) * [Convert currency](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_currency.ipynb) -* [Convert relative time delta to months](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_relative_time_delta_to_months.ipynb) +* [Convert length](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_length.ipynb) +* [Convert speed](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_speed.ipynb) +* [Convert string boolean to boolean](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_string_boolean_to_boolean.ipynb) * [Convert string to URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_string_to_URL.ipynb) +* [Convert temperature](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_temperature.ipynb) +* [Convert time](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_time.ipynb) * [Convert time delta to months](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_time_delta_to_months.ipynb) * [Convert units](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_units.ipynb) +* [Convert volume](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_volume.ipynb) +* [Convert weight](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_weight.ipynb) * [Copy files and subdir from directory to another directory](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb) * [Create Email Combination with Firstname Lastname Domain address](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb) * [Create Strong Random Password](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_Strong_Random_Password.ipynb) @@ -908,6 +1057,7 @@ We are committed to sharing templates and giving shout outs to the contributors * [Download Image from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_Image_from_URL.ipynb) * [Download PDF from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_PDF_from_URL.ipynb) * [Download ZIP from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_ZIP_from_URL.ipynb) +* [Download audio file from URL](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_audio_file_from_URL.ipynb) * [Explore Dataset with Pivot Table](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb) * [Extract characters from string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Extract_characters_from_string.ipynb) * [Find Phone Number in string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Find_Phone_Number_in_string.ipynb) @@ -928,14 +1078,11 @@ We are committed to sharing templates and giving shout outs to the contributors * [Manage code error with try except](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Manage_exception_with_try_except.ipynb) * [Organize Directories based on file types](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Organize_Directories_based_on_file_types.ipynb) * [Pseudonym generator](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Pseudonym_generator.ipynb) -* [Read json file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Read_json_file.ipynb) * [Read pickle file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Read_pickle_file.ipynb) * [Remove all spaces on string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Remove_all_spaces_on_string.ipynb) * [Save dict to pickle](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Save_dict_to_pickle.ipynb) -* [Save json file](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Save_json_file.ipynb) * [Split string](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Split_string.ipynb) * [Transform String to Secure Hash Algorithm](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb) -* [Using datetime library](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Using_datetime_library.ipynb) * [Validate email and phone numbers](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Validate_email_and_phone_numbers.ipynb) ## Pyvis @@ -979,6 +1126,7 @@ We are committed to sharing templates and giving shout outs to the contributors ## Request * [Basic HTTP GET](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Basic_HTTP_GET_Request.ipynb) +* [Handling Errors and Exceptions](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Handling_Errors_and_Exceptions.ipynb) * [Sending POST s with Data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Sending_POST_Requests_with_Data.ipynb) ## SAP-HANA @@ -1018,7 +1166,8 @@ We are committed to sharing templates and giving shout outs to the contributors ## Slack * [Add new user to Google Sheets](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb) * [Follow number of users in workspace](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Follow_number_of_users_in_workspace.ipynb) -* [Send message](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Send_message.ipynb) +* [Send blocks to channel](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Send_blocks_to_channel.ipynb) +* [Send message](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Send_message_to_channel.ipynb) ## Snowflake * [Basics and data querying](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Basics_and_data_querying.ipynb) @@ -1069,7 +1218,11 @@ We are committed to sharing templates and giving shout outs to the contributors * [Get videos stats](https://github.com/jupyter-naas/awesome-notebooks/blob/master/TikTok/TikTok_Get_videos_stats.ipynb) ## Trello +* [Create Card](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Create_Card.ipynb) +* [Get Cards on a Board](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_Cards_on_a_Board.ipynb) +* [Get Lists on a Board](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_Lists_on_a_Board.ipynb) * [Get board data](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_board_data.ipynb) +* [List Boards](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_List_Boards.ipynb) ## Twilio * [Add SMS to Google Sheets spreadsheet](https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb) diff --git a/README_template.md b/README_template.md index 955b6d526b..8af4438cc2 100644 --- a/README_template.md +++ b/README_template.md @@ -24,10 +24,12 @@ The repository is organized by source/tools for easy discovery. You can also use To ensure the quality of the templates, we have defined a framework. Each notebook shall be organized with the following sections: - **Naas logo** -- **# Title**: "Tool - Action of the notebook", as h1 (an "Open in Naas" button will be automatically added by the CI/CD when a notebook is merged to the master branch) -- **Tags**: hastags of the topics the notebook is about, as text -- **Author**: name and social profile link of the author(s), as text -- **Description**: a one-liner explaining the benefits of the notebooks for the user, as text +- **# Title**: "Tool - Action of the notebook", as h1. An "Open in Naas" button will be added automatically by the CI/CD when a notebook is merged to the master branch. +- **Tags:**: hashtags relevant to the topics covered in the notebook, as text +- **Author:**: name and social profile link of the author(s), as text +- **Last update:** YYYY-MM-DD (Created: YYYY-MM-DD): The last update date refers to when the notebook was last edited, while the created date corresponds to when the notebook was initially merged. +- **Description:**: a one-liner explaining the benefits of the notebooks for the user, as text +- **References:**: list of references and websites utilized in the creation of this notebook - **## Input**: list of all the variables, credentials, that needs to be setup, as h2 - **## Model**: list the functions applied to the data, as h2 - **## Output**: list the assets to be used by the user and its distribution channels if any, as h2 diff --git a/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb b/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb index b06d5cb662..0be16ce800 100644 --- a/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb +++ b/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb @@ -29,7 +29,7 @@ }, "source": [ "# Reddit - Get Hot Posts From Subreddit\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Yaswanthkumar GOTHIREDDY](https://www.linkedin.com/in/yaswanthkumargothireddy/)" ] }, + { + "cell_type": "markdown", + "id": "496ef00f-3397-4a6a-b5d0-c62c609f8dff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-08-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb b/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb index c7bf16be03..08361332c2 100644 --- a/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb +++ b/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Redshift - Connect with SQL Magic and IAM Credentials\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Caleb Keller](https://www.linkedin.com/in/calebmkeller/)" ] }, + { + "cell_type": "markdown", + "id": "d158612c-cd1c-43e0-b907-aee47b5c15fe", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-07-16)" + ] + }, { "cell_type": "markdown", "id": "atmospheric-capital", diff --git a/RegEx/RegEx_Check_email_validity.ipynb b/RegEx/RegEx_Check_email_validity.ipynb index 278d389912..3b4c6ac5c2 100644 --- a/RegEx/RegEx_Check_email_validity.ipynb +++ b/RegEx/RegEx_Check_email_validity.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# RegEx - Check email validity\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1574ca90-0a10-4a32-a0ac-7adbec94f63f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "678dfdd1-b4a7-40e0-b67e-3dd826c67d61", diff --git a/RegEx/RegEx_Match_pattern.ipynb b/RegEx/RegEx_Match_pattern.ipynb index 2d188f5df1..da4b1f9cf1 100644 --- a/RegEx/RegEx_Match_pattern.ipynb +++ b/RegEx/RegEx_Match_pattern.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# RegEx - Match pattern\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b2879bee-fbc5-4418-8f01-8dedbf4f4a2c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "678dfdd1-b4a7-40e0-b67e-3dd826c67d61", diff --git a/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb b/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb index 55e45622fc..69eb72bba7 100644 --- a/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb +++ b/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# RegEx - Replace value in text in a specific paragraph\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "503adb66-ed5f-4890-a43d-5dc360a5c534", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-06 (Created: 2023-06-06)" + ] + }, { "cell_type": "markdown", "id": "1fb15eff-4f84-4e31-89ab-4a27f87a5674", diff --git a/Remoteok/Remoteok_Get_jobs_from_categories.ipynb b/Remoteok/Remoteok_Get_jobs_from_categories.ipynb index 8118ad0106..18b2e1dfd7 100644 --- a/Remoteok/Remoteok_Get_jobs_from_categories.ipynb +++ b/Remoteok/Remoteok_Get_jobs_from_categories.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Remoteok - Get jobs from categories\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "0d8abdaf-097e-4ba9-b51e-d6c6a4a1b5ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb b/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb index e13cf05808..3cee6392bf 100644 --- a/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb +++ b/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Remoteok - Post daily jobs on slack\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "4454bbdc-a9d4-457a-a0e5-c9bbc6073766", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Remotive/Remotive_Get_categories_from_job.ipynb b/Remotive/Remotive_Get_categories_from_job.ipynb index 9f98e835c1..7eed74989e 100644 --- a/Remotive/Remotive_Get_categories_from_job.ipynb +++ b/Remotive/Remotive_Get_categories_from_job.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Remotive - Get categories from job\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "1cd102a9-f9cd-4fda-8c62-df0db5431308", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Remotive/Remotive_Get_jobs_from_categories.ipynb b/Remotive/Remotive_Get_jobs_from_categories.ipynb index 7357284ada..6699e36b7b 100644 --- a/Remotive/Remotive_Get_jobs_from_categories.ipynb +++ b/Remotive/Remotive_Get_jobs_from_categories.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Remotive - Get jobs from categories\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "85f5a423-52e2-4b79-9f1f-e8957e1c1483", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb b/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb index 9800456cc6..bd453c5b7b 100644 --- a/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb +++ b/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Remotive - Post daily jobs on slack\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://www.linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "84b9c828-9be9-4509-b6a7-f3bcd1ddf317", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Remotive/Remotive_Send_jobs_to_gsheet.ipynb b/Remotive/Remotive_Send_jobs_to_gsheet.ipynb index af482ba80e..404c1bf93c 100644 --- a/Remotive/Remotive_Send_jobs_to_gsheet.ipynb +++ b/Remotive/Remotive_Send_jobs_to_gsheet.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Remotive - Send jobs to gsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "17d08036-f85f-4866-9c1e-abddf27a75ef", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Request/Request_Basic_HTTP_GET_Request.ipynb b/Request/Request_Basic_HTTP_GET_Request.ipynb index 49cccb2752..4d6896bc75 100644 --- a/Request/Request_Basic_HTTP_GET_Request.ipynb +++ b/Request/Request_Basic_HTTP_GET_Request.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Request - Basic HTTP GET\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "0a417a6d-62e6-449f-ac7c-1c009c069c58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2023-06-09)" + ] + }, { "cell_type": "markdown", "id": "1e3a2b7f-4a69-4135-b327-47d6eee6f40f", diff --git a/Request/Request_Handling_Errors_and_Exceptions.ipynb b/Request/Request_Handling_Errors_and_Exceptions.ipynb new file mode 100644 index 0000000000..5b8851c5bb --- /dev/null +++ b/Request/Request_Handling_Errors_and_Exceptions.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c15bc69c-3d5c-4b0e-85c9-0d8815f44adb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "05581a5e-0a6d-451d-9e31-d08baecb7058", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Request - Handling Errors and Exceptions\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "c4678fb6-3b6d-4f67-9201-3191ec6edf98", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #request #error #exception #handling #python #library" + ] + }, + { + "cell_type": "markdown", + "id": "3d1546f4-df27-4838-8e26-bbc6fe517e52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "84a14b9e-28f7-4b3b-9bb8-fbf883d7e733", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-26 (Created: 2023-06-09)" + ] + }, + { + "cell_type": "markdown", + "id": "151907ef-f96a-4f07-88b0-91846fcd4ded", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook template explores how to handle errors and exceptions when using the requests library. It provides examples of error handling techniques, including proper status code checking, handling timeouts, and dealing with connection errors." + ] + }, + { + "cell_type": "markdown", + "id": "2faaf344-2524-4af8-beae-3edee74a692c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Requests Documentation](https://requests.readthedocs.io/en/master/)\n", + "- [Python Exceptions](https://docs.python.org/3/tutorial/errors.html)\n", + "- [Status Code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)" + ] + }, + { + "cell_type": "markdown", + "id": "a1f3b536-1535-47d4-8114-d4efacac6d9d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "051f4ade-5588-4143-865a-a24c9906e75e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44280836-f1d8-42e5-baab-274d7ffda570", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests" + ] + }, + { + "cell_type": "markdown", + "id": "342039ea-2f3c-4e83-b41f-6d6f2319a572", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `url`: URL of the API endpoint\n", + "- `timeout`: Timeout in seconds for the request\n", + "- `response`: Response to the requests. Usually in data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30280688-6d85-4275-b2df-e849cd500787", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "url = \"https://api.example.com/endpoint\"\n", + "timeout = 100\n", + "response = None" + ] + }, + { + "cell_type": "markdown", + "id": "42e42cbe-8367-4910-85b6-5a2ea29d2e58", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "f400875a-7bb2-4cae-b88f-2fd835f933ee", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Making a Request" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "986b2a31-a790-464c-becf-0b95a2f31fba", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "try:\n", + " response = requests.get(url, timeout=timeout)\n", + " response.raise_for_status() # Raises an exception if the response status code is not 2xx\n", + " data = response.json()\n", + " # Process the data\n", + " print(\"Data retrieved successfully:\", data)\n", + "except requests.exceptions.RequestException as e:\n", + " # Handle connection errors, timeouts, and other request exceptions\n", + " print(\"Error occurred:\", e)\n", + "except requests.exceptions.HTTPError as e:\n", + " # Handle HTTP errors (status codes 4xx and 5xx)\n", + " print(\"HTTP Error occurred:\", e)\n", + "except ValueError as e:\n", + " # Handle JSON decoding errors\n", + " print(\"JSON decoding error occurred:\", e)\n", + "except Exception as e:\n", + " # Handle any other unexpected exceptions\n", + " print(\"An unexpected error occurred:\", e)" + ] + }, + { + "cell_type": "markdown", + "id": "d861ebdf-bbe5-4b90-9d39-5e46b6110087", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "9a6ba0be-1cd9-4a70-b852-bb9dac7d3150", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c2c5dbc-1ceb-4df4-be00-a0a15fe5f91d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Display the response\n", + "print(response)" + ] + }, + { + "cell_type": "markdown", + "id": "d4a6c4f0-0571-42de-a15d-0c5862945eed", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e4657f273b8f1a16243f2cf42b54bf6280fd4415f91496be69bae05c845828cc", + "notebook_path": "Request/Request_Handling_Errors_and_Exceptions.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Request/Request_Sending_POST_Requests_with_Data.ipynb b/Request/Request_Sending_POST_Requests_with_Data.ipynb index 11ab2fa692..442bc8c328 100644 --- a/Request/Request_Sending_POST_Requests_with_Data.ipynb +++ b/Request/Request_Sending_POST_Requests_with_Data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Request - Sending POST s with Data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" ] }, + { + "cell_type": "markdown", + "id": "5858eb0d-5f98-4097-99b9-2525063aa2e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-16 (Created: 2023-06-09)" + ] + }, { "cell_type": "markdown", "id": "8fad582b-a041-41d8-bc68-668cb7bff285", diff --git a/SAP-HANA/SAP-HANA_Query_data.ipynb b/SAP-HANA/SAP-HANA_Query_data.ipynb index f14f10fc1a..adb860d323 100644 --- a/SAP-HANA/SAP-HANA_Query_data.ipynb +++ b/SAP-HANA/SAP-HANA_Query_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# SAP-HANA - Query data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "f76040fe-2c28-46c2-aaaf-4b99997ebfe8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/SEON/SEON_Get_email_info.ipynb b/SEON/SEON_Get_email_info.ipynb index b330724d33..8bad416810 100644 --- a/SEON/SEON_Get_email_info.ipynb +++ b/SEON/SEON_Get_email_info.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# SEON - Get email info\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "a82bded2-8dfd-4e39-812c-a3cc6e54765f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-23)" + ] + }, { "cell_type": "markdown", "id": "7c979bd4-2b31-4c14-a987-bbab07b82d40", diff --git a/SQLite/SQLite_Create_Database_file.ipynb b/SQLite/SQLite_Create_Database_file.ipynb index a47bd2cabb..221f4caa28 100644 --- a/SQLite/SQLite_Create_Database_file.ipynb +++ b/SQLite/SQLite_Create_Database_file.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SQLite - Create Database file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7795f090-54ad-46b2-8b2a-8a81a88edc5b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-12)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/SQLite/SQLite_Create_Table_in_Database.ipynb b/SQLite/SQLite_Create_Table_in_Database.ipynb index b21bab58e6..e1c6a73f5f 100644 --- a/SQLite/SQLite_Create_Table_in_Database.ipynb +++ b/SQLite/SQLite_Create_Table_in_Database.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SQLite - Create Table in Database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "741ea29e-4954-4dc8-b81b-807dcfc15468", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-12)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/SQLite/SQLite_Insert_data_in_Table.ipynb b/SQLite/SQLite_Insert_data_in_Table.ipynb index 28c093bed3..c007623d66 100644 --- a/SQLite/SQLite_Insert_data_in_Table.ipynb +++ b/SQLite/SQLite_Insert_data_in_Table.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SQLite - Insert data in Table\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1c36ac96-c3a3-4904-bf3f-f78c2afc5073", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-12)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/SQLite/SQLite_List_Tables_in_Database.ipynb b/SQLite/SQLite_List_Tables_in_Database.ipynb index eef9f3fcbf..d8cdb42673 100644 --- a/SQLite/SQLite_List_Tables_in_Database.ipynb +++ b/SQLite/SQLite_List_Tables_in_Database.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SQLite - List Tables in Database\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "63a21ab7-7748-43bc-bec0-eaab0ce4d842", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-12)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/SQLite/SQLite_Read_data_in_Table.ipynb b/SQLite/SQLite_Read_data_in_Table.ipynb index 85866bda00..71141c4491 100644 --- a/SQLite/SQLite_Read_data_in_Table.ipynb +++ b/SQLite/SQLite_Read_data_in_Table.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SQLite - Read data in Table\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b9ff58dc-9519-45b4-97b4-69e5b4d35024", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-12)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/SWIFT/SWIFT_Create_MT940_XML_file.ipynb b/SWIFT/SWIFT_Create_MT940_XML_file.ipynb index c99569842e..96eda979fa 100644 --- a/SWIFT/SWIFT_Create_MT940_XML_file.ipynb +++ b/SWIFT/SWIFT_Create_MT940_XML_file.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# SWIFT - Create MT940 XML file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0b5824c7-1735-4104-a837-785dba711bea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-17)" + ] + }, { "cell_type": "markdown", "id": "6d848dfe-638d-4480-bb18-da014b4f4740", diff --git a/SendGrid/SendGrid_Get_all_messages.ipynb b/SendGrid/SendGrid_Get_all_messages.ipynb index 29619a6abb..e4009e2818 100644 --- a/SendGrid/SendGrid_Get_all_messages.ipynb +++ b/SendGrid/SendGrid_Get_all_messages.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# SendGrid - Get all messages\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "70c1e871-3abb-4b63-9540-fb7a7138486e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-04)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/SendGrid/SendGrid_Send_message.ipynb b/SendGrid/SendGrid_Send_message.ipynb index d6b688da54..5f106b7151 100644 --- a/SendGrid/SendGrid_Send_message.ipynb +++ b/SendGrid/SendGrid_Send_message.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# SendGrid - Send message\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sanjeet Attili](https://linkedin.com/in/sanjeet-attili-760bab190/)" ] }, + { + "cell_type": "markdown", + "id": "c38dd8db-6452-4c7f-bed5-6c1f2244ab19", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb b/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb index a41568a18c..d351a741dc 100644 --- a/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb +++ b/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Sendinblue - Get no of emails opened\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "d47b454b-276e-4329-9f0c-2282006e8985", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb b/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb index 653cb1d879..0abb086d42 100644 --- a/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb +++ b/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Sendinblue - Get no of emails sent\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "af4bf8df-2f18-432e-b02b-37f21bd060f5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb b/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb index 3984df3cf0..9a9b6d5245 100644 --- a/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb +++ b/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Sendinblue - Get no of spam reports\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "ea8148aa-1a24-4958-b495-defa9c8d2ef4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb b/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb index 2e8a5c473b..a450827c96 100644 --- a/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb +++ b/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Sendinblue - Get no of undelivered emails\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "4c1a2bcc-e330-48dc-b1fd-a19b6734c4ac", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-30)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/SharePoint/SharePoint_Get_file.ipynb b/SharePoint/SharePoint_Get_file.ipynb index a0b3978ca9..f712ffa1f2 100644 --- a/SharePoint/SharePoint_Get_file.ipynb +++ b/SharePoint/SharePoint_Get_file.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SharePoint - Get file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "bbe8cedd-9a66-4f27-9d36-d3fa08b8d8af", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-13)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/SharePoint/SharePoint_List_folder.ipynb b/SharePoint/SharePoint_List_folder.ipynb index 044fb6855b..61b34d45ad 100644 --- a/SharePoint/SharePoint_List_folder.ipynb +++ b/SharePoint/SharePoint_List_folder.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SharePoint - List folder\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "75478627-884f-4de2-9219-52505db9d848", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-13)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/SharePoint/SharePoint_Upload_file.ipynb b/SharePoint/SharePoint_Upload_file.ipynb index 99322f473f..0f6527e336 100644 --- a/SharePoint/SharePoint_Upload_file.ipynb +++ b/SharePoint/SharePoint_Upload_file.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# SharePoint - Upload file\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "89f9b013-d5ed-44bb-9365-6fd2ffb578e2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-13)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Shutterstock/Shutterstock_Search_for_images.ipynb b/Shutterstock/Shutterstock_Search_for_images.ipynb index 923ab79d9c..95dc6d0899 100644 --- a/Shutterstock/Shutterstock_Search_for_images.ipynb +++ b/Shutterstock/Shutterstock_Search_for_images.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Shutterstock - Search for images\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "3a0d4970-5e45-4d1e-a24e-d53f01fadd22", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-20 (Created: 2023-02-27)" + ] + }, { "cell_type": "markdown", "id": "2029f154-3fdb-4065-8e6c-0072c6e4864c", diff --git a/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb b/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb index 8a7f3d4a42..6caa68e15b 100644 --- a/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb +++ b/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Slack - Add new user to Google Sheets\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -51,6 +51,17 @@ "- Google Sheet naas driver : [https://docs.naas.ai/templates/google-sheets](https://docs.naas.ai/templates/google-sheets)\n" ] }, + { + "cell_type": "markdown", + "id": "2bcbcd61-3737-431d-9a02-fa094c6f0f29", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-25)" + ] + }, { "cell_type": "markdown", "id": "8b63de08", diff --git a/Slack/Slack_Follow_number_of_users_in_workspace.ipynb b/Slack/Slack_Follow_number_of_users_in_workspace.ipynb index 6268be00eb..0584b1a410 100644 --- a/Slack/Slack_Follow_number_of_users_in_workspace.ipynb +++ b/Slack/Slack_Follow_number_of_users_in_workspace.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Slack - Follow number of users in workspace\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -55,6 +55,17 @@ "- Slack SDK to use : [https://github.com/slackapi/python-slack-sdk](https://github.com/slackapi/python-slack-sdk)\n" ] }, + { + "cell_type": "markdown", + "id": "d2a5f3f4-babb-4529-899f-9deb6d592674", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-25)" + ] + }, { "cell_type": "markdown", "id": "8f46c31a", diff --git a/Slack/Slack_Send_blocks_to_channel.ipynb b/Slack/Slack_Send_blocks_to_channel.ipynb new file mode 100644 index 0000000000..fba8de688a --- /dev/null +++ b/Slack/Slack_Send_blocks_to_channel.ipynb @@ -0,0 +1,367 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "thick-environment", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "sealed-trainer", + "metadata": { + "execution": { + "iopub.execute_input": "2021-01-26T14:10:27.020371Z", + "iopub.status.busy": "2021-01-26T14:10:27.020098Z", + "iopub.status.idle": "2021-01-26T14:10:27.023428Z", + "shell.execute_reply": "2021-01-26T14:10:27.022739Z", + "shell.execute_reply.started": "2021-01-26T14:10:27.020304Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "# Slack - Send blocks to channel\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "a16debaa-1696-4e20-b179-64078074ebb6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #slack #message #send #operations #snippet #block" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "458ba8d1-d219-47c7-8f52-dd4fcca80514", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-22 (Created: 2023-06-19)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook allows you to quickly and easily send blocks through Slack. Blocks are visual components that can be stacked and arranged to create app layouts. Block Kit can make your app's communication clearer while also giving you consistent opportunity to interact with and assist users." + ] + }, + { + "cell_type": "markdown", + "id": "24830127-7e17-44e1-9bec-1854df66e14e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Reference: Layout blocks](https://api.slack.com/reference/block-kit/blocks)\n", + "- [Building with Block Kit](https://api.slack.com/block-kit/building)\n", + "- [Block Kit Builder](https://app.slack.com/block-kit-builder)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "aquatic-administration", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import needed library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "pretty-earthquake", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "from naas_drivers import slack\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "hawaiian-villa", + "metadata": { + "execution": { + "iopub.execute_input": "2021-01-26T14:13:57.115792Z", + "iopub.status.busy": "2021-01-26T14:13:57.115575Z", + "iopub.status.idle": "2021-01-26T14:13:57.123461Z", + "shell.execute_reply": "2021-01-26T14:13:57.122684Z", + "shell.execute_reply.started": "2021-01-26T14:13:57.115768Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- Create [Slack App](https://api.slack.com/apps)\n", + "- Add OAuth & Permissions(chat:write, chat:write.public to send message in a public channel)\n", + "- Install your App\n", + "- Get your Bot Token\n", + "\n", + "Once it's done, update the variables below and run the notebook.\n", + "\n", + "- `slack_token`: This is where you place the Bot token\n", + "- `slack_channel`: the channel where you wish to send the message\n", + "- `blocks`: Custom blocks you wish to send" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "given-pilot", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "slack_token = naas.secret.get(\"SLACK_TOKEN\") or \"SLACK_TOKEN\"\n", + "slack_channel = \"channel-name\" \n", + "blocks = [\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": \"Hello, Assistant to the Regional Manager Dwight! *Michael Scott* wants to know where you'd like to take the Paper Company investors to dinner tonight.\\n\\n *Please select a restaurant:*\"\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": \"*Farmhouse Thai Cuisine*\\n:star::star::star::star: 1528 reviews\\n They do have some vegan options, like the roti and curry, plus they have a ton of salad stuff and noodles can be ordered without meat!! They have something for everyone here\"\n", + " },\n", + " \"accessory\": {\n", + " \"type\": \"image\",\n", + " \"image_url\": \"https://s3-media3.fl.yelpcdn.com/bphoto/c7ed05m9lC2EmA3Aruue7A/o.jpg\",\n", + " \"alt_text\": \"alt text for image\"\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": \"*Kin Khao*\\n:star::star::star::star: 1638 reviews\\n The sticky rice also goes wonderfully with the caramelized pork belly, which is absolutely melt-in-your-mouth and so soft.\"\n", + " },\n", + " \"accessory\": {\n", + " \"type\": \"image\",\n", + " \"image_url\": \"https://s3-media2.fl.yelpcdn.com/bphoto/korel-1YjNtFtJlMTaC26A/o.jpg\",\n", + " \"alt_text\": \"alt text for image\"\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"section\",\n", + " \"text\": {\n", + " \"type\": \"mrkdwn\",\n", + " \"text\": \"*Ler Ros*\\n:star::star::star::star: 2082 reviews\\n I would really recommend the Yum Koh Moo Yang - Spicy lime dressing and roasted quick marinated pork shoulder, basil leaves, chili & rice powder.\"\n", + " },\n", + " \"accessory\": {\n", + " \"type\": \"image\",\n", + " \"image_url\": \"https://s3-media2.fl.yelpcdn.com/bphoto/DawwNigKJ2ckPeDeDM7jAg/o.jpg\",\n", + " \"alt_text\": \"alt text for image\"\n", + " }\n", + " },\n", + " {\n", + " \"type\": \"divider\"\n", + " },\n", + " {\n", + " \"type\": \"actions\",\n", + " \"elements\": [\n", + " {\n", + " \"type\": \"button\",\n", + " \"text\": {\n", + " \"type\": \"plain_text\",\n", + " \"text\": \"Farmhouse\",\n", + " \"emoji\": True\n", + " },\n", + " \"value\": \"click_me_123\"\n", + " },\n", + " {\n", + " \"type\": \"button\",\n", + " \"text\": {\n", + " \"type\": \"plain_text\",\n", + " \"text\": \"Kin Khao\",\n", + " \"emoji\": True\n", + " },\n", + " \"value\": \"click_me_123\",\n", + " \"url\": \"https://google.com\"\n", + " },\n", + " {\n", + " \"type\": \"button\",\n", + " \"text\": {\n", + " \"type\": \"plain_text\",\n", + " \"text\": \"Ler Ros\",\n", + " \"emoji\": True\n", + " },\n", + " \"value\": \"click_me_123\",\n", + " \"url\": \"https://google.com\"\n", + " }\n", + " ]\n", + " }\n", + "]" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "16f998eb-8600-4516-a36f-d070d0d7fd13", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Connect to Slack" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c58aad98-7420-41ab-af3d-d5e1dfdd33b1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "SLACK = slack.connect(slack_token)" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "identical-assault", + "metadata": { + "execution": { + "iopub.execute_input": "2021-01-26T14:12:31.462033Z", + "iopub.status.busy": "2021-01-26T14:12:31.461804Z", + "iopub.status.idle": "2021-01-26T14:12:31.464769Z", + "shell.execute_reply": "2021-01-26T14:12:31.464098Z", + "shell.execute_reply.started": "2021-01-26T14:12:31.462007Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Send your message " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "surrounded-senior", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "SLACK.send(slack_channel, text=\"\", blocks=blocks)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "8c14aab53bd8c6fe6689201ba16d90346db4f37cb888763e61eb7a3c65c38eda", + "notebook_path": "Slack/Slack_Send_blocks_to_channel.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Slack/Slack_Send_message.ipynb b/Slack/Slack_Send_message_to_channel.ipynb similarity index 73% rename from Slack/Slack_Send_message.ipynb rename to Slack/Slack_Send_message_to_channel.ipynb index a1709ba4a8..947da4b29e 100644 --- a/Slack/Slack_Send_message.ipynb +++ b/Slack/Slack_Send_message_to_channel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Slack - Send message\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "1468f40f-fac9-4094-9531-b0ac945472e3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-22 (Created: 2023-06-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", @@ -64,7 +75,19 @@ ] }, "source": [ - "**Description:** This notebook allows you to quickly and easily send messages through Slack." + "**Description:** This notebook allows you to quickly and easily send text messages through Slack." + ] + }, + { + "cell_type": "markdown", + "id": "8a80fe30-596f-40d0-b6f9-38809acf6285", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Sending messages](https://api.slack.com/messaging/sending)" ] }, { @@ -99,12 +122,13 @@ }, "outputs": [], "source": [ - "from naas_drivers import slack" + "from naas_drivers import slack\n", + "import naas" ] }, { "cell_type": "markdown", - "id": "hawaiian-villa", + "id": "aa826fd4-3036-4572-a4c5-69145f57bb92", "metadata": { "execution": { "iopub.execute_input": "2021-01-26T14:13:57.115792Z", @@ -117,11 +141,17 @@ "tags": [] }, "source": [ - "### Setup Slack\n", + "### Setup Variables\n", "- Create [Slack App](https://api.slack.com/apps)\n", "- Add OAuth & Permissions(chat:write, chat:write.public to send message in a public channel)\n", "- Install your App\n", - "- Get your Bot Token" + "- Get your Bot Token\n", + "\n", + "Once it's done, update the variables below and run the notebook.\n", + "\n", + "- `slack_token`: This is where you place the Bot token\n", + "- `slack_channel`: the channel where you wish to send the message\n", + "- `text_message`: the message you wish to send" ] }, { @@ -134,9 +164,9 @@ }, "outputs": [], "source": [ - "SLACK_TOKEN = \"xoxb-XXXXXXXXXXXXXXXXXXXXXXX\"\n", - "SLACK_CHANNEL = \"channel-name\"\n", - "SLACK_MESSAGE = \"Hello World!\"" + "slack_token = naas.secret.get(\"SLACK_TOKEN\") or \"SLACK_TOKEN\"\n", + "slack_channel = \"channel-name\" \n", + "text_message = \"Hello World!\"" ] }, { @@ -171,7 +201,7 @@ }, "outputs": [], "source": [ - "SLACK = slack.connect(SLACK_TOKEN)" + "SLACK = slack.connect(slack_token)" ] }, { @@ -213,7 +243,7 @@ }, "outputs": [], "source": [ - "SLACK.send(SLACK_CHANNEL, SLACK_MESSAGE)" + "SLACK.send(slack_channel, text_message)" ] } ], @@ -236,8 +266,8 @@ "version": "3.9.6" }, "naas": { - "notebook_id": "4b30e7a160a1734b2ce9ce66e80f06679064d6056e488f9658d141991a022c36", - "notebook_path": "Slack/Slack_Send_message.ipynb" + "notebook_id": "0531f44f6ac83d8e06902f52b1460d35fb57a29f6afb4091f1a276d3244a91af", + "notebook_path": "Slack/Slack_Send_message_to_channel.ipynb" }, "papermill": { "default_parameters": {}, diff --git a/Snowflake/Snowflake_Basics_and_data_querying.ipynb b/Snowflake/Snowflake_Basics_and_data_querying.ipynb index 326b3bd923..ad1abe394e 100644 --- a/Snowflake/Snowflake_Basics_and_data_querying.ipynb +++ b/Snowflake/Snowflake_Basics_and_data_querying.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Snowflake - Basics and data querying\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mateusz Polakowski](https://www.linkedin.com/in/polakowski/)" ] }, + { + "cell_type": "markdown", + "id": "a4cbd93c-7660-436d-af66-f172c9e28895", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb b/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb index 1df7eab9f5..35dff3c9df 100644 --- a/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb +++ b/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Snowflake - Ingest csv data from local stage\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mateusz Polakowski](https://www.linkedin.com/in/polakowski/)" ] }, + { + "cell_type": "markdown", + "id": "21aa09d6-b24c-431f-8f2a-eaea29f77a45", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb b/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb index 274cce6c0c..49677e235f 100644 --- a/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb +++ b/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Snowflake - Ingest data from AWS external stages\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mateusz Polakowski](https://www.linkedin.com/in/polakowski/)" ] }, + { + "cell_type": "markdown", + "id": "b3d635c0-7ebf-48a6-93ef-a6227b740f10", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb b/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb index 15ecacc2f6..bb9d946d2c 100644 --- a/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb +++ b/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Snowflake - Ingest json data from local stage\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mateusz Polakowski](https://www.linkedin.com/in/polakowski/)" ] }, + { + "cell_type": "markdown", + "id": "c9f91104-b491-4cb1-ba94-580976a564aa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-08-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Societe.com/Societe.com_Get_company_details.ipynb b/Societe.com/Societe.com_Get_company_details.ipynb index 8259e3c062..bc4dc95f56 100644 --- a/Societe.com/Societe.com_Get_company_details.ipynb +++ b/Societe.com/Societe.com_Get_company_details.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Societe.com - Get company details\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "c551562b-e763-41c0-b731-c54873339fa7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Societe.com/Societe.com_Get_verif.com.ipynb b/Societe.com/Societe.com_Get_verif.com.ipynb index eb055b77ff..26eb2aa31a 100644 --- a/Societe.com/Societe.com_Get_verif.com.ipynb +++ b/Societe.com/Societe.com_Get_verif.com.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Societe.com - Get verif.com\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "bbc30f82-9edc-401d-a6b4-89311aad9a17", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb b/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb index fbe831407d..c014e44ca6 100644 --- a/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb +++ b/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Spotify - Create Radar Chart to analyze Playlist\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Akshaya Parthasarathy](https://github.com/iaks23)" ] }, + { + "cell_type": "markdown", + "id": "a1cfa3e1-b0ab-4984-9a11-40aef4369e0f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-10-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Stabilty AI/Stabilty_AI_Generate_Image_from_text.ipynb b/Stabilty AI/Stabilty_AI_Generate_Image_from_text.ipynb index 7066b304df..3297fb284c 100644 --- a/Stabilty AI/Stabilty_AI_Generate_Image_from_text.ipynb +++ b/Stabilty AI/Stabilty_AI_Generate_Image_from_text.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stabilty AI - Generate Image from text\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "9878a147-c1c0-4273-a7a5-6d6240ac31f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-27)" + ] + }, { "cell_type": "markdown", "id": "434c00e3-9306-490d-80c7-17de3e286f58", diff --git a/Stable Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb b/Stable Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb index 2dd27e4282..89691c55fc 100644 --- a/Stable Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb +++ b/Stable Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stable Diffusion - Generate image from text\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Oussama El Bahaoui](https://www.linkedin.com/in/oelbahaoui/)" ] }, + { + "cell_type": "markdown", + "id": "fc43df35-89d0-4f53-bab8-b9cc27cdda19", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-19 (Created: 2023-05-12)" + ] + }, { "cell_type": "markdown", "id": "afdc3252-4ffd-4610-b64d-aebce7aa2f1b", diff --git a/Streamlit/Streamlit_Create_prediction_app.ipynb b/Streamlit/Streamlit_Create_prediction_app.ipynb index cf7e804187..2da89d377e 100644 --- a/Streamlit/Streamlit_Create_prediction_app.ipynb +++ b/Streamlit/Streamlit_Create_prediction_app.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Streamlit - Create prediction app\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Gagan Bhatia](https://github.com/gagan3012)" ] }, + { + "cell_type": "markdown", + "id": "fc19d262-7959-4523-9626-c41813145d1a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Stripe/Stripe_Create_a_customer.ipynb b/Stripe/Stripe_Create_a_customer.ipynb index 0923200fbe..5ec651836e 100644 --- a/Stripe/Stripe_Create_a_customer.ipynb +++ b/Stripe/Stripe_Create_a_customer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - Create a customer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "029b0d9b-0b25-4982-9e87-a4253e9afd7b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2023-04-30)" + ] + }, { "cell_type": "markdown", "id": "3e4ca7eb-b266-494a-9121-e01957924e61", diff --git a/Stripe/Stripe_Delete_a_customer.ipynb b/Stripe/Stripe_Delete_a_customer.ipynb index 83aa480531..8a90b1f82e 100644 --- a/Stripe/Stripe_Delete_a_customer.ipynb +++ b/Stripe/Stripe_Delete_a_customer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - Delete a customer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "28c21e79-3f8e-4d5b-a7a8-4f098cb82067", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2023-05-18)" + ] + }, { "cell_type": "markdown", "id": "3e4ca7eb-b266-494a-9121-e01957924e61", diff --git a/Stripe/Stripe_Get_balances.ipynb b/Stripe/Stripe_Get_balances.ipynb index ceb947e116..accf612f72 100644 --- a/Stripe/Stripe_Get_balances.ipynb +++ b/Stripe/Stripe_Get_balances.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - Get balances\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "41e5921d-51ae-44fb-9a08-1f1ead23e6bd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Stripe/Stripe_Get_charges.ipynb b/Stripe/Stripe_Get_charges.ipynb index 414984421e..e3fb2ffbd3 100644 --- a/Stripe/Stripe_Get_charges.ipynb +++ b/Stripe/Stripe_Get_charges.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - Get charges\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Martin Donadieu](https://www.linkedin.com/in/martindonadieu/)" ] }, + { + "cell_type": "markdown", + "id": "9dc0c1f9-06fa-44b8-8152-ae1707ff9412", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Stripe/Stripe_List_all_customers.ipynb b/Stripe/Stripe_List_all_customers.ipynb index 8ea463d6c2..bccc214815 100644 --- a/Stripe/Stripe_List_all_customers.ipynb +++ b/Stripe/Stripe_List_all_customers.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - List all customers\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "7294c44d-338a-4feb-8e2c-2d9d940e7dc0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2023-04-26)" + ] + }, { "cell_type": "markdown", "id": "513ea102-6eda-40ea-b044-ae537153f20c", diff --git a/Stripe/Stripe_Retrieve_a_customer.ipynb b/Stripe/Stripe_Retrieve_a_customer.ipynb index 82564cccca..d0fa03cee7 100644 --- a/Stripe/Stripe_Retrieve_a_customer.ipynb +++ b/Stripe/Stripe_Retrieve_a_customer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - Retrieve a customer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "daafa5f5-d7e9-428f-a763-bb4745ef6e62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2023-05-18)" + ] + }, { "cell_type": "markdown", "id": "3e4ca7eb-b266-494a-9121-e01957924e61", diff --git a/Stripe/Stripe_Update_a_customer.ipynb b/Stripe/Stripe_Update_a_customer.ipynb index 6f4e1dfc93..6e108ce068 100644 --- a/Stripe/Stripe_Update_a_customer.ipynb +++ b/Stripe/Stripe_Update_a_customer.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Stripe - Update a customer\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "94e58483-a315-45f0-b0da-cffef502af82", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-18 (Created: 2023-05-18)" + ] + }, { "cell_type": "markdown", "id": "3e4ca7eb-b266-494a-9121-e01957924e61", diff --git a/Supabase/Supabase_Email_Auth.ipynb b/Supabase/Supabase_Email_Auth.ipynb index bc47e2c703..b8dec4f83c 100644 --- a/Supabase/Supabase_Email_Auth.ipynb +++ b/Supabase/Supabase_Email_Auth.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Supabase - Email Auth\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sriniketh Jayasendil](http://linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "faedc6a1-04d6-4e8f-80ff-a28fd62298d8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-15)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb b/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb index 855d2842dc..d68224b30a 100644 --- a/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb +++ b/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Telegram - Create crypto sentiment bot\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Yaswanthkumar GOTHIREDDY](https://www.linkedin.com/in/yaswanthkumargothireddy/)" ] }, + { + "cell_type": "markdown", + "id": "bcf2b0e8-f4eb-4f8f-a7ac-18282cd64cbb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-07-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Text/Text_Reformat_Text_Without_Spaces.ipynb b/Text/Text_Reformat_Text_Without_Spaces.ipynb index f9f0d3ddb3..833c177939 100644 --- a/Text/Text_Reformat_Text_Without_Spaces.ipynb +++ b/Text/Text_Reformat_Text_Without_Spaces.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Text - Reformat Without Spaces\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Minura Punchihewa](https://www.linkedin.com/in/minurapunchihewa/)" ] }, + { + "cell_type": "markdown", + "id": "3e0b8ddc-c146-436f-9cd9-f0f6ef1e469d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-10)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Thinkific/Thinkific_Get_users.ipynb b/Thinkific/Thinkific_Get_users.ipynb index 843739da8a..f670a6ff4a 100644 --- a/Thinkific/Thinkific_Get_users.ipynb +++ b/Thinkific/Thinkific_Get_users.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Thinkific - Get users\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "9cb9200f-1fa0-417f-87b5-ebecd293feb2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Thinkific/Thinkific_Send_users.ipynb b/Thinkific/Thinkific_Send_users.ipynb index 706cb9da5f..7708c769ff 100644 --- a/Thinkific/Thinkific_Send_users.ipynb +++ b/Thinkific/Thinkific_Send_users.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Thinkific - Send users\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "34f16010-27ea-4ad8-8329-80bd9ef9d88d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/TikTok/TikTok_Get_user_stats.ipynb b/TikTok/TikTok_Get_user_stats.ipynb index e575a03fb5..912a005f80 100644 --- a/TikTok/TikTok_Get_user_stats.ipynb +++ b/TikTok/TikTok_Get_user_stats.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# TikTok - Get user stats\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "99eb43b1-24bf-4b5b-99b5-56f97547a99f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/TikTok/TikTok_Get_videos_stats.ipynb b/TikTok/TikTok_Get_videos_stats.ipynb index b3f08b572f..7bf4b76f53 100644 --- a/TikTok/TikTok_Get_videos_stats.ipynb +++ b/TikTok/TikTok_Get_videos_stats.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# TikTok - Get videos stats\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "6861607a-c840-4f0e-b03c-346e3351972a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Trello/Trello_Create_Card.ipynb b/Trello/Trello_Create_Card.ipynb new file mode 100644 index 0000000000..0e56a7f7f4 --- /dev/null +++ b/Trello/Trello_Create_Card.ipynb @@ -0,0 +1,337 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bdfd518e-a09b-4e90-bae0-c5ce5774cb36", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "e4314bb1-630a-4910-8664-3a58c04f0fa2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Trello - Create Card\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "41a1bc88-78b8-4dab-bddb-7f69132dc4df", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #trello #api #card #create #board #list" + ] + }, + { + "cell_type": "markdown", + "id": "a57dabc0-a6e6-42b3-859e-bfeedc6910be", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)\n" + ] + }, + { + "cell_type": "markdown", + "id": "251c5bfd-b4f3-4bbc-be0f-86d943e39900", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-14 (Created: 2023-07-14)" + ] + }, + { + "cell_type": "markdown", + "id": "ea97b4f8-f095-444f-9fa6-e8200a061a72", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook would show you how to create a new card on a Trello board using the API. You could specify the board and list that you want the card to be created in, as well as its name, description, and any other relevant details, you can also create several cards." + ] + }, + { + "cell_type": "markdown", + "id": "bcf46857-d4ac-432b-8604-1a7758eb7eae", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Trello API Documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-post)" + ] + }, + { + "cell_type": "markdown", + "id": "f8a754f7-a224-47e5-82d4-65f33fe87214", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "36060c42-8350-4404-acf7-f46bd1359e10", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e313ed44-19d7-4ea2-97f4-decbc0809508", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "566aa13d-f8c6-4528-b37e-6cfb83b8ae78", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `api_key`: Your Trello API key. [Get your API key here](https://github.com/Benjifilly/My_notebooks/wiki/How-to-obtain-an-API-key-for-Trello)\n", + "- `force_update`: Parameters to enforce the token update\n", + "- `board_id`: The ID of the board you want to create the card in.\n", + "- `list_id`: The ID of the list you want to create the card in, Use this template to find the ID:

\"Trello - Retrieve list id\"

\n", + "- `card_details`: is a list that contains dictionaries representing the name and description of cards to be created on the Trello board." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef678151-5b31-4645-8d92-e8f624472ca6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"TRELLO_API_KEY\") or \"YOUR_TRELLO_API_KEY\"\n", + "force_update = False\n", + "board_id = \"ogBhOe9a\" #Example: \"https://trello.com/b/ogBhOe9a/ultimate-to-do-list\"\n", + "list_id = \"649d8b3c9f796ee9d57a765d\" #Example: \"649d8b3c9f796ee9d57a765d\"\n", + "\n", + "#Example with several cards\n", + "card_details = [\n", + " {\"name\": \"Call at 9:00 PM this Monday\", \"desc\": \"Don't forget to do this call, it's very important\"},\n", + " {\"name\": \"Meeting with the team\", \"desc\": \"Discuss project updates and action items\"},\n", + " {\"name\": \"Send report to the client\", \"desc\": \"Include sales figures and recommendations\"},\n", + "]" + ] + }, + { + "cell_type": "markdown", + "id": "574140c3-306b-48f3-9f19-ee97151084ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "2318bf65-12ed-45a8-8cfb-c1f889b297a4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get your token\n", + "Your Trello token will be stored on naas secret name: \"TRELLO_TOKEN\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98147739-b010-4936-8205-552412504d39", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_token(api_key, force_update):\n", + " token = naas.secret.get(\"TRELLO_TOKEN\")\n", + " if not token or force_update:\n", + " url = f\"https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key={api_key}\"\n", + " print(f\"🔗 Click on the URL to get your token: {url}\")\n", + " print(\"✅ On the authorization page, click on 'Authorize' button at the bottom of the page to proceed.\")\n", + " print(\"💾 Copy/Paste the token in red in the input case below\")\n", + " token = input(\"-> Enter your token here:\")\n", + " naas.secret.add(\"TRELLO_TOKEN\", token)\n", + " return token\n", + " \n", + "token = get_token(api_key, force_update)" + ] + }, + { + "cell_type": "markdown", + "id": "400c2ad1-a0a6-49c4-8a79-a29c3d66aa8d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Create Card" + ] + }, + { + "cell_type": "markdown", + "id": "767ab44a-bacb-420a-ab8d-76b4a9f17228", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will create one or several card on a Trello board using the API.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56d84ea9-48e7-4642-96d2-9999eaf33f02", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def create_card(api_key, token, board_id, list_id, name, desc):\n", + " url = \"https://api.trello.com/1/cards\"\n", + " querystring = {\n", + " \"key\": api_key,\n", + " \"token\": token,\n", + " \"idBoard\": board_id,\n", + " \"idList\": list_id,\n", + " \"name\": name,\n", + " \"desc\": desc,\n", + " }\n", + " response = requests.request(\"POST\", url, params=querystring)\n", + " if response.status_code == 200:\n", + " return response.json()\n", + " else:\n", + " return None" + ] + }, + { + "cell_type": "markdown", + "id": "f8802feb-74f4-4347-a7ca-c15c9cbadf82", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "073eff49-9382-413a-9819-411c03faefca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display Result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79ca43a4-b149-4b21-b73e-384f383e0955", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "for card_info in card_details:\n", + " card = create_card(api_key, token, board_id, list_id, card_info[\"name\"], card_info[\"desc\"])\n", + " if card:\n", + " print(\"✅ Card Created:\")\n", + " print(\"🆔 ID:\", card[\"id\"])\n", + " print(\"- Name:\", card[\"name\"])\n", + " print(\"- Description:\", card[\"desc\"])\n", + " print(\"--------------------\")\n", + " else:\n", + " print(\"❌ Failed to create card.\")\n", + " print(\"--------------------\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "bda97c0086e67e89ca713c307c134464ce0269066c8eb0398f343df74d61d809", + "notebook_path": "Trello/Trello_Create_Card.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Trello/Trello_Get_Cards_on_a_Board.ipynb b/Trello/Trello_Get_Cards_on_a_Board.ipynb new file mode 100644 index 0000000000..8c437fa4ff --- /dev/null +++ b/Trello/Trello_Get_Cards_on_a_Board.ipynb @@ -0,0 +1,356 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e3f41c66-54b7-4f06-9881-9a9991bf43d1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "dbc4cf57-1769-4639-bc72-0377bb682bf5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Trello - Get Cards on a Board\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "68643b1f-e196-4735-9600-3add8344d37b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #trello #api #rest #cards #board #get" + ] + }, + { + "cell_type": "markdown", + "id": "7b82329c-d291-44d0-82c0-0bebabe140d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "40e48172-1cbf-438e-bac7-e47d21927f6b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-14 (Created: 2023-07-14)" + ] + }, + { + "cell_type": "markdown", + "id": "fe2e4742-dfa5-4b0f-9377-de233c19eff9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook get all cards from a board." + ] + }, + { + "cell_type": "markdown", + "id": "52215a73-6d34-40cd-910a-4dc489a8ff2e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Trello API Documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-cards-get)\n", + "- [Trello API Authentication](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/#authentication)" + ] + }, + { + "cell_type": "markdown", + "id": "19b038d9-985e-4c4f-873b-77a79b201d8d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "150e31ef-a043-4e0f-8544-6f6f74c13a89", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d88d11ca-f19a-4808-a420-553bfed562f6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "de74bd41-9051-4865-b9b2-2de71c4ce874", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `api_key`: Your Trello API key. [Get your API key here](https://github.com/Benjifilly/My_notebooks/wiki/How-to-obtain-an-API-key-for-Trello)\n", + "- `force_update`: Parameters to enforce the token update\n", + "- `board_id`: The ID of the board you want to get the cards from" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "676d453f-1689-4017-a9e2-ac206aa351fa", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"TRELLO_API_KEY\") or \"YOUR_TRELLO_API_KEY\"\n", + "force_update = False\n", + "board_id = '64a19089d2xxxxxx' #Example: \"https://trello.com/b/ogBhOe9a/ultimate-to-do-list\"" + ] + }, + { + "cell_type": "markdown", + "id": "9ce89c21-dfc0-4ba2-b2eb-44fbac519ad7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "2afd2bc7-5f4f-4522-8167-989ebeabb3f2", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get your token\n", + "Your Trello token will be stored on naas secret name: \"TRELLO_TOKEN\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6af4a71-dce1-4a88-82e8-dad9a0effefd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_token(api_key, force_update):\n", + " token = naas.secret.get(\"TRELLO_TOKEN\")\n", + " if not token or force_update:\n", + " url = f\"https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key={api_key}\"\n", + " print(f\"🔗 Click on the URL to get your token: {url}\")\n", + " print(\"✅ On the authorization page, click on 'Authorize' button at the bottom of the page to proceed.\")\n", + " print(\"💾 Copy/Paste the token in red in the input case below\")\n", + " token = input(\"-> Enter your token here:\")\n", + " naas.secret.add(\"TRELLO_TOKEN\", token)\n", + " return token\n", + " \n", + "token = get_token(api_key, force_update)" + ] + }, + { + "cell_type": "markdown", + "id": "6d1bc995-19c6-43ce-8405-d8a3ee68681c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get Cards on a Board" + ] + }, + { + "cell_type": "markdown", + "id": "9300ff09-fafb-478a-aee3-4ad54dccdfbb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "This function will get all of the open Cards on a Board." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "005bd319-f1ba-45bf-9733-d10d31776b55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Endpoint URL to get all lists on a board\n", + "lists_url = f'https://api.trello.com/1/boards/{board_id}/lists'\n", + "\n", + "# Parameters for the lists request\n", + "lists_params = {\n", + " 'key': api_key,\n", + " 'token': token,\n", + "}\n", + "\n", + "# Send GET request to the Trello API to get lists\n", + "lists_response = requests.get(lists_url, params=lists_params)" + ] + }, + { + "cell_type": "markdown", + "id": "18efd886-0c30-4444-8d45-348f41886e1d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "38d40391-d1f4-4acd-b272-1d1a1dcb46d1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73be94a3-b8b8-4bc6-a898-00d16ddaedd9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Check if the lists request was successful\n", + "if lists_response.status_code == 200:\n", + " # Parse the lists response as JSON\n", + " lists = lists_response.json()\n", + "\n", + " # Iterate through the lists\n", + " for list_obj in lists:\n", + " list_id = list_obj['id']\n", + "\n", + " # Endpoint URL to get cards in a list\n", + " cards_url = f'https://api.trello.com/1/lists/{list_id}/cards'\n", + "\n", + " # Parameters for the cards request\n", + " cards_params = {\n", + " 'key': api_key,\n", + " 'token': token,\n", + " }\n", + "\n", + " # Send GET request to the Trello API to get cards\n", + " cards_response = requests.get(cards_url, params=cards_params)\n", + "\n", + " # Check if the cards request was successful\n", + " if cards_response.status_code == 200:\n", + " # Parse the cards response as JSON\n", + " cards = cards_response.json()\n", + " cards_count = len(cards)\n", + "\n", + " # Print the list title with count of cards\n", + " print(f\"=== Card List ===\")\n", + " print(f\"{list_obj['name']} : {cards_count}\")\n", + "\n", + " # Print the card names\n", + " for card in cards:\n", + " print(f\"📌 {card['name']}\")\n", + "\n", + " # Print a separator line between lists\n", + " print(\"-----------------------------------------\")\n", + "\n", + " else:\n", + " print(f\"Error: {cards_response.status_code} - {cards_response.text}\")\n", + "\n", + "else:\n", + " print(f\"Error: {lists_response.status_code} - {lists_response.text}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "171b2e70749cf7235cefd7b019c057afa2196c1cdfdb0127320915d7609c3fc6", + "notebook_path": "Trello/Trello_Get_Cards_on_a_Board.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Trello/Trello_Get_Lists_on_a_Board.ipynb b/Trello/Trello_Get_Lists_on_a_Board.ipynb new file mode 100644 index 0000000000..79e7dfbaeb --- /dev/null +++ b/Trello/Trello_Get_Lists_on_a_Board.ipynb @@ -0,0 +1,308 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "steady-basin", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "undefined-victory", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Trello - Get Lists on a Board\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "08e617eb-f6d2-47be-a1fc-56c1322c065b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #trello #project #retrieve #snippet #operations #lists #board\n" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)\n" + ] + }, + { + "cell_type": "markdown", + "id": "ea908824-36c0-4c64-8e3b-8169ed95ea56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-14 (Created: 2023-07-14)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook shows how to get the Lists on a Board." + ] + }, + { + "cell_type": "markdown", + "id": "575e5c78-17a8-48b6-9244-fc1c0d996f12", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Trello - Get Lists on a Board](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-lists-get)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "supreme-westminster", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "exotic-academy", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables" + ] + }, + { + "cell_type": "markdown", + "id": "reduced-tourist", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "- `api_key`: Your Trello API key. [Get your API key here](https://github.com/Benjifilly/My_notebooks/wiki/How-to-obtain-an-API-key-for-Trello)\n", + "- `force_update`: Parameters to enforce the token update\n", + "- `board_id`: The unique identifier of the Trello board you want to work with." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "tender-albany", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"TRELLO_API_KEY\") or \"YOUR_TRELLO_API_KEY\"\n", + "force_update = False\n", + "board_id = \"ogBhOe9a\" #example: \"https://trello.com/b/ogBhOe9a/ultimate-to-do-list\" " + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "0f97f2a0-976d-42c1-b9d4-3b6597ab8453", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get your token\n", + "Your Trello token will be stored on naas secret name: \"TRELLO_TOKEN\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "96e73242-c286-4413-8d69-825ad7391584", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_token(api_key, force_update):\n", + " token = naas.secret.get(\"TRELLO_TOKEN\")\n", + " if not token or force_update:\n", + " url = f\"https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key={api_key}\"\n", + " print(f\"🔗 Click on the URL to get your token: {url}\")\n", + " print(\"✅ On the authorization page, click on 'Authorize' button at the bottom of the page to proceed.\")\n", + " print(\"💾 Copy/Paste the token in red in the input case below\")\n", + " token = input(\"-> Enter your token here:\")\n", + " naas.secret.add(\"TRELLO_TOKEN\", token)\n", + " return token\n", + " \n", + "token = get_token(api_key, force_update)" + ] + }, + { + "cell_type": "markdown", + "id": "c97e69d0-8851-4139-ba3b-339753fde780", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Retrieving lists\n", + "Make a GET request to the Trello API to retrieve your lists" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6ad17a5c-689b-4c43-9630-3765e3d0e239", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "url = f\"https://api.trello.com/1/boards/{board_id}/lists?key={api_key}&token={token}\"\n", + "response = requests.get(url)" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "73bd6ede-4b47-465f-8c71-3d3caa3e7dce", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "if response.status_code == 200:\n", + " lists = response.json()\n", + " for l in lists:\n", + " print(\"📋 \\033[1mList Title:\\033[0m {}\".format(l['name']))\n", + " print(\"🆔 \\033[1mList ID:\\033[0m {}\".format(l['id']))\n", + " print(\"------------------------\")\n", + "else:\n", + " print(\"❌ Failed to fetch lists.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e0c37b0b9b71eef4ba954737ebcf7889a1961540390e8d61dc9665188cdb9cc1", + "notebook_path": "Trello/Trello_Get_Lists_on_a_Board.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Trello/Trello_Get_board_data.ipynb b/Trello/Trello_Get_board_data.ipynb index 9861b3d518..a019d43cd1 100644 --- a/Trello/Trello_Get_board_data.ipynb +++ b/Trello/Trello_Get_board_data.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Trello - Get board data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "a5ddc514-06c6-43ad-aa0b-3895c85c4c42", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Trello/Trello_List_Boards.ipynb b/Trello/Trello_List_Boards.ipynb new file mode 100644 index 0000000000..8e2f161b92 --- /dev/null +++ b/Trello/Trello_List_Boards.ipynb @@ -0,0 +1,326 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bd7570d3-ebfe-4b73-9ace-85c38fadf6cd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "0668489a-c4b7-40b7-a300-d8b447c1c945", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Trello - List Boards\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "74681751-d10d-4021-91d9-ee30de4d5f3e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #trello #api #boards #list #python #rest" + ] + }, + { + "cell_type": "markdown", + "id": "a389466a-efd0-4c3b-b4da-da4dda24587e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)" + ] + }, + { + "cell_type": "markdown", + "id": "f6abbb8d-2ee8-41af-8b3e-f8155634ac98", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-11 (Created: 2023-07-11)" + ] + }, + { + "cell_type": "markdown", + "id": "576f8dd6-eef7-4905-a989-d65ee1ab6682", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Description:** This notebook would allow you to retrieve a list of all the boards that you have access to in Trello. You could then use this information to perform further actions on the boards, such as listing the cards or updating their details." + ] + }, + { + "cell_type": "markdown", + "id": "ac5208fc-8a09-474b-8a52-c2b42cfe5399", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Trello API Documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-get)\n", + "- [Trello API Introduction](https://developer.atlassian.com/cloud/trello/guides/rest-api/api-introduction/)" + ] + }, + { + "cell_type": "markdown", + "id": "12c39c66-3da0-4369-8100-3a6794d565b1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "c4019e36-94f9-4a02-a56b-39dcbdafe8cb", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f315e403-ae46-439a-bb7b-1fe891ff6392", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "39250cf5-e95c-44b4-bd60-9172b559c109", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup Variables\n", + "- `api_key`: Your Trello API key. [Get your API key here](https://github.com/Benjifilly/My_notebooks/wiki/How-to-obtain-an-API-key-for-Trello)\n", + "- `force_update`: Parameters to enforce the token update" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7029f2e3-8159-42f7-b8fe-469fa7341e5b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "api_key = naas.secret.get(\"TRELLO_API_KEY\") or \"YOUR_TRELLO_API_KEY\"\n", + "force_update = False" + ] + }, + { + "cell_type": "markdown", + "id": "53fccaa8-4784-496d-96a1-70ff243ffbbd", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "cfa96574-af89-4233-9b5d-69c5a8100d42", + "metadata": { + "execution": { + "iopub.execute_input": "2023-07-11T13:57:35.754122Z", + "iopub.status.busy": "2023-07-11T13:57:35.753879Z", + "iopub.status.idle": "2023-07-11T13:57:35.765152Z", + "shell.execute_reply": "2023-07-11T13:57:35.764491Z", + "shell.execute_reply.started": "2023-07-11T13:57:35.754090Z" + }, + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get your token\n", + "Your Trello token will be stored on naas secret name: \"TRELLO_TOKEN\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52a186e9-2c9a-4f7d-b410-4941b11cd789", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_token(api_key, force_update):\n", + " token = naas.secret.get(\"TRELLO_TOKEN\")\n", + " if not token or force_update:\n", + " url = f\"https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key={api_key}\"\n", + " print(f\"🔗 Click on the URL to get your token: {url}\")\n", + " print(\"✅ On the authorization page, click on 'Authorize' button at the bottom of the page to proceed.\")\n", + " print(\"💾 Copy/Paste the token in red in the input case below\")\n", + " token = input(\"-> Enter your token here:\")\n", + " naas.secret.add(\"TRELLO_TOKEN\", token)\n", + " return token\n", + " \n", + "token = get_token(api_key, force_update)" + ] + }, + { + "cell_type": "markdown", + "id": "ef4869dd-5672-4b54-ac2e-066e4db26ce4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Retrieve List of Boards\n", + "Make a GET request to the Trello API to retrieve your boards" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4a9f3d2-e46d-47ef-9c9a-6efbfaf8b1a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "url = f\"https://api.trello.com/1/members/me/boards?key={api_key}&token={token}\"\n", + "response = requests.get(url)" + ] + }, + { + "cell_type": "markdown", + "id": "7402cfe8-d83f-4ad0-bce9-fc8c1875e06c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "0bbc3a8a-4ca8-4eb2-b636-6d375ed1ee73", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display Result" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5e17a25-dcf7-4e5f-93c9-359ee24c174a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "# Check if the request was successful\n", + "if response.status_code == 200:\n", + " # Extract the boards from the response\n", + " boards = response.json()\n", + "\n", + " # Print the number of boards\n", + " num_boards = len(boards)\n", + " print(f\"📚 You have {num_boards} board(s) in Trello:\")\n", + " print(\"-\" * 33)\n", + " \n", + " # Iterate over the boards and print their names\n", + " for board in boards:\n", + " board_name = board['name']\n", + " print(f\"📌 {board_name}\")\n", + "else:\n", + " print(f\"⚠️ Error: {response.status_code} - {response.text}\")" + ] + }, + { + "cell_type": "markdown", + "id": "6dd01cff-74a0-4323-b651-b3025d4e0082", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "8bf5205524ae16d62ec58b8c3d98d25bf423d3cb87975758f7e440f537e38440", + "notebook_path": "Trello/Trello_List_Boards.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.4.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb b/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb index c1d35959cf..2d1ba13fd3 100644 --- a/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb +++ b/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twilio - Add SMS to Google Sheets spreadsheet\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "50f46ff8-061c-406b-a457-e7ed108c2d52", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-14)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Twilio/Twilio_Make_Call.ipynb b/Twilio/Twilio_Make_Call.ipynb index edc8c19912..820bdfaadb 100644 --- a/Twilio/Twilio_Make_Call.ipynb +++ b/Twilio/Twilio_Make_Call.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Twilio - Make Call\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "8121b0ca-b274-44e4-b80b-f3676b35b8f9", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-10-05)" + ] + }, { "cell_type": "markdown", "id": "f3770654-5d5b-4a4b-905b-60b049897fd3", diff --git a/Twilio/Twilio_Send_SMS.ipynb b/Twilio/Twilio_Send_SMS.ipynb index d98a31cb4c..e9fa9202e7 100644 --- a/Twilio/Twilio_Send_SMS.ipynb +++ b/Twilio/Twilio_Send_SMS.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Twilio - Send SMS\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "fceed351-303d-4279-95c3-c45e979dce19", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb b/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb index 125c92f09c..771c00ce32 100644 --- a/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb +++ b/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twilio - Send SMS messages for Google Calendar Events\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil)" ] }, + { + "cell_type": "markdown", + "id": "3054c8d9-2b31-467e-a96b-9347f7c83e18", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-20 (Created: 2023-03-17)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Twitter/Twitter_Add_member_to_list.ipynb b/Twitter/Twitter_Add_member_to_list.ipynb index fcb05c608d..528fdfa054 100644 --- a/Twitter/Twitter_Add_member_to_list.ipynb +++ b/Twitter/Twitter_Add_member_to_list.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twitter - Add member to list\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Kaushal Krishna](https://www.linkedin.com/in/kaushal-krishna-a48959153)" ] }, + { + "cell_type": "markdown", + "id": "80842567-3abd-49c4-ae9f-350f1ec2af41", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-13)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Twitter/Twitter_Get_followers_list.ipynb b/Twitter/Twitter_Get_followers_list.ipynb index 5474ff5ae3..505c9cc73b 100644 --- a/Twitter/Twitter_Get_followers_list.ipynb +++ b/Twitter/Twitter_Get_followers_list.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Twitter - Get followers list\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](https://www.linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "a3cc8bbd-8a7f-458b-99c3-77ecf516a258", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-23 (Created: 2023-05-17)" + ] + }, { "cell_type": "markdown", "id": "a3730abc-a1c2-4931-8a20-36608b64d47a", diff --git a/Twitter/Twitter_Get_members_of list.ipynb b/Twitter/Twitter_Get_members_of list.ipynb index 22af85123d..6ad344d86e 100644 --- a/Twitter/Twitter_Get_members_of list.ipynb +++ b/Twitter/Twitter_Get_members_of list.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twitter - Get members of list\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Kaushal Krishna](https://www.linkedin.com/in/kaushal-krishna-a48959153)" ] }, + { + "cell_type": "markdown", + "id": "cd52ae87-a5d2-405a-99fc-302bb1cd8add", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-11)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Twitter/Twitter_Get_posts_stats.ipynb b/Twitter/Twitter_Get_posts_stats.ipynb index f2f414487d..6a3ee8bc2d 100644 --- a/Twitter/Twitter_Get_posts_stats.ipynb +++ b/Twitter/Twitter_Get_posts_stats.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twitter - Get posts stats\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Alok Chilka](https://www.linkedin.com/in/calok64/)" ] }, + { + "cell_type": "markdown", + "id": "85b23cc3-b8da-4052-b191-ea224f2390c8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-04-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twitter/Twitter_Get_tweets_from_search.ipynb b/Twitter/Twitter_Get_tweets_from_search.ipynb index 89b3c6d0af..58a6da9ac2 100644 --- a/Twitter/Twitter_Get_tweets_from_search.ipynb +++ b/Twitter/Twitter_Get_tweets_from_search.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Twitter - Get tweets from search\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Dineshkumar Sundaram](https://github.com/dineshh912)" ] }, + { + "cell_type": "markdown", + "id": "f9207fc0-4e6f-4722-b48f-88e8f5fff2ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-29)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb b/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb index e051d2cdfb..3001b08412 100644 --- a/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb +++ b/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twitter - Get tweets stats from profile\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -54,6 +54,17 @@ "**Author:** [Tannia Dubon](https://www.linkedin.com/in/tanniadubon/)" ] }, + { + "cell_type": "markdown", + "id": "d168734c-dcf6-4f33-9ee5-e482ed9d8f06", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-12-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twitter/Twitter_Get_user_data.ipynb b/Twitter/Twitter_Get_user_data.ipynb index 5b4960973a..f1e435913b 100644 --- a/Twitter/Twitter_Get_user_data.ipynb +++ b/Twitter/Twitter_Get_user_data.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Twitter - Get user data\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Dineshkumar Sundaram](https://github.com/dineshh912)" ] }, + { + "cell_type": "markdown", + "id": "ba50296a-7567-4342-9341-43d71cf50e92", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-29)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twitter/Twitter_Post_text_and_image.ipynb b/Twitter/Twitter_Post_text_and_image.ipynb index c99d312131..09dc5295e1 100644 --- a/Twitter/Twitter_Post_text_and_image.ipynb +++ b/Twitter/Twitter_Post_text_and_image.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Twitter - Post text and image\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "2be210dc-1a28-4136-9e3e-930a3bad0344", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twitter/Twitter_Remove_member_from_list.ipynb b/Twitter/Twitter_Remove_member_from_list.ipynb index 20f468598c..d6d97557c1 100644 --- a/Twitter/Twitter_Remove_member_from_list.ipynb +++ b/Twitter/Twitter_Remove_member_from_list.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Twitter - Remove member from list\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Kaushal Krishna](https://www.linkedin.com/in/kaushal-krishna-a48959153)" ] }, + { + "cell_type": "markdown", + "id": "70e63359-6d91-488c-8d8d-dcbddbaf683a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-01-20)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Twitter/Twitter_Schedule_posts.ipynb b/Twitter/Twitter_Schedule_posts.ipynb index 02af18ac8c..2aa2b6f4b6 100644 --- a/Twitter/Twitter_Schedule_posts.ipynb +++ b/Twitter/Twitter_Schedule_posts.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Twitter - Schedule posts\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "b584dc17-82e3-4971-a4c0-af718e893578", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb b/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb index 8162608dce..606dff2ff0 100644 --- a/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb +++ b/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Twitter - Send posts stats to Notion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maixmejublou)" ] }, + { + "cell_type": "markdown", + "id": "0435d22c-6f34-48a8-9b40-165409c82e96", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-09)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb b/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb index 573c575f5c..c421b5e7b4 100644 --- a/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb +++ b/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Typeform - Log New Entries In Notion Databases\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -56,6 +56,17 @@ "This output database consists of only 5 responses collected over the sample typeform." ] }, + { + "cell_type": "markdown", + "id": "b97aa44f-6ffb-42ce-aba7-47de771db480", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-31)" + ] + }, { "cell_type": "markdown", "id": "66532188", diff --git a/US Bureau of Labor Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb b/US Bureau of Labor Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb index e2a30215ae..d04444fe47 100644 --- a/US Bureau of Labor Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb +++ b/US Bureau of Labor Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# US Bureau of Labor Statistics - Follow CPI\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/j%C3%A9r%C3%A9my-ravenel-8a396910/)" ] }, + { + "cell_type": "markdown", + "id": "c5ac373b-2d99-48e8-aca5-47a33d95905b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-07-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb b/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb index 195ac5573c..9bdd07086a 100644 --- a/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Vizzu - Create Animated Bar Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Alexandre Petit](https://www.linkedin.com/in/alexandre-petit-24a87a219/)" ] }, + { + "cell_type": "markdown", + "id": "b73ae32b-a85b-4cd1-885b-76c483a6ce39", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-25 (Created: 2023-04-18)" + ] + }, { "cell_type": "markdown", "id": "83658e39-e48c-4fa8-91fa-fa178e399f8a", diff --git a/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb b/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb index b4d8bc134c..dd1e2badc9 100644 --- a/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Vizzu - Create Animated Pie Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Alexandre Petit](https://www.linkedin.com/in/alexandre-petit-24a87a219/)" ] }, + { + "cell_type": "markdown", + "id": "926df3f2-fae6-4ec7-9abb-8cb6e542fc56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-10 (Created: 2023-04-25)" + ] + }, { "cell_type": "markdown", "id": "0b946466-074d-4725-968d-cebee18d185a", diff --git a/Vizzu/Vizzu_Create_Column_Chart.ipynb b/Vizzu/Vizzu_Create_Column_Chart.ipynb index 311b1263f4..e88ed22de3 100644 --- a/Vizzu/Vizzu_Create_Column_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Column_Chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Vizzu - Create Column Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "05001bd7-c762-4b46-918d-5cad31f76172", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-27)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb b/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb index 9c0cbabc36..1b3f565db2 100644 --- a/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Vizzu - Create Grouped Column Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "4d31bdc9-0aef-4423-9eae-f48c055f5f62", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-27)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Vizzu/Vizzu_Create_Line_Chart.ipynb b/Vizzu/Vizzu_Create_Line_Chart.ipynb index 879ffc79c7..68c3874eff 100644 --- a/Vizzu/Vizzu_Create_Line_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Line_Chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Vizzu - Create Line Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "0b706cc6-08a6-49be-bc74-e7d6d23fdb5a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-03)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb b/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb index cee13adddb..6cfbc34058 100644 --- a/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Vizzu - Create Stacked Column Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "6cb9d1e8-e19a-4b5a-9860-5cc898efb28a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-27)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb b/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb index ed2b15dc6c..63dfb6cba8 100644 --- a/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb +++ b/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# Vizzu - Create Waterfall Chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "cb6c9b8f-1ac9-44b6-bed6-2c7e62a787ff", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-03)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/WAQI/WAQI_Display_AQI_on_worldmap.ipynb b/WAQI/WAQI_Display_AQI_on_worldmap.ipynb index 22f32f3a68..56a0ec67d9 100644 --- a/WAQI/WAQI_Display_AQI_on_worldmap.ipynb +++ b/WAQI/WAQI_Display_AQI_on_worldmap.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WAQI - Display AQI on worldmap\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "29ad7eb5-9a45-4d6e-bb0d-d9795be03c5f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "440563ef-3227-4976-85be-75d42fd9cdfb", diff --git a/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb b/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb index ed045cdd8b..a85077408f 100644 --- a/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb +++ b/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WAQI - Get daily air quality data by coordinates\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "8fad7ac0-c1d7-4b5a-93c2-0b411a9ce473", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "440563ef-3227-4976-85be-75d42fd9cdfb", diff --git a/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb b/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb index 6c94f5fa8a..acf77bb0f8 100644 --- a/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb +++ b/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WAQI - Get daily air quality data for a city\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/jeremyravenel/)" ] }, + { + "cell_type": "markdown", + "id": "f051caa4-c43c-431d-a025-e82b8c8cdb56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "440563ef-3227-4976-85be-75d42fd9cdfb", diff --git a/WAQI/WAQI_Get_stations_by_coordinates.ipynb b/WAQI/WAQI_Get_stations_by_coordinates.ipynb index 900b498968..96b43ea975 100644 --- a/WAQI/WAQI_Get_stations_by_coordinates.ipynb +++ b/WAQI/WAQI_Get_stations_by_coordinates.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WAQI - Get stations by coordinates\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "c54d995c-cb56-4f1f-b694-d55e352f50d4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "440563ef-3227-4976-85be-75d42fd9cdfb", diff --git a/WAQI/WAQI_Search_station_by_name.ipynb b/WAQI/WAQI_Search_station_by_name.ipynb index ab795c75d1..a6005cb923 100644 --- a/WAQI/WAQI_Search_station_by_name.ipynb +++ b/WAQI/WAQI_Search_station_by_name.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WAQI - Search station by name\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "e006d204-2bfe-4fde-90a4-29d5778060a4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-04-04)" + ] + }, { "cell_type": "markdown", "id": "440563ef-3227-4976-85be-75d42fd9cdfb", diff --git a/WSR/WHI_Create_indicator.ipynb b/WSR/WHI_Create_indicator.ipynb index a65ac72c61..a46c3c113a 100644 --- a/WSR/WHI_Create_indicator.ipynb +++ b/WSR/WHI_Create_indicator.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# WSR - WHI Create indicator\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Peter Turner](https://www.linkedin.com/in/peter-turner-0839aa116/)" ] }, + { + "cell_type": "markdown", + "id": "3909089b-114d-46c1-a9c7-da75ac3bdd00", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-10)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb b/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb index 4c8a0f0229..36a0fdbc90 100644 --- a/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb +++ b/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WSR - Get daily Covid19 active cases trend JHU\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "85040070-d11e-4688-a7c6-8a4a25be40a5", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-20)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb b/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb index c30d5bec66..28611a096b 100644 --- a/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb +++ b/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WSR - Get daily Covid19 active cases worldmap JHU\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "b4898f21-3e30-49ee-8de1-a952f6207075", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb b/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb index 9aa4450b45..01db3d9f01 100644 --- a/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb +++ b/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# WhatsApp - Create heatmap of activities\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Hamid Mukhtar](https://www.linkedin.com/in/mukhtar-hamid/)" ] }, + { + "cell_type": "markdown", + "id": "f96b8070-bfe6-412d-8278-5f4c85a0e6f7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-31 (Created: 2023-05-31)" + ] + }, { "cell_type": "markdown", "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", diff --git a/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb b/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb index c6ce4296b5..5a011789da 100644 --- a/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb +++ b/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WhatsApp - Transform chat txt to dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Mohit Singh](https://www.linkedin.com/in/mohwits/)" ] }, + { + "cell_type": "markdown", + "id": "390f5f5a-97aa-459d-b144-429a7791c4d6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-05-31 (Created: 2023-05-31)" + ] + }, { "cell_type": "markdown", "id": "4ddb06b1-6f83-4511-b8c9-517e323cca58", diff --git a/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb b/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb index acdabb5725..dd3fa1edd9 100644 --- a/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb +++ b/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Wikipedia - List largest cities in the world\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](http://linkedin.com/in/florent-ravenel)" ] }, + { + "cell_type": "markdown", + "id": "9f6238f3-e6a7-4c53-91d3-b88bd65b6218", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-29)" + ] + }, { "cell_type": "markdown", "id": "fc41d712-b94f-4309-bf7b-f071aa334da0", diff --git a/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb b/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb index a06361ae1d..6cbc468b1b 100644 --- a/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb +++ b/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb @@ -34,7 +34,7 @@ }, "source": [ "# WindsorAI - Create Dash app to query AP\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -59,6 +59,17 @@ "**Author:** [Elia Dabbas](https://www.linkedin.com/in/eliasdabbas/)" ] }, + { + "cell_type": "markdown", + "id": "44198fd1-1d7a-42c8-be32-99afba3a3c1c", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-07)" + ] + }, { "cell_type": "markdown", "id": "523c1d1d-bd20-408b-bf70-b167ae4417a0", diff --git a/WorldBank/WorldBank_GDP_contributors.ipynb b/WorldBank/WorldBank_GDP_contributors.ipynb index 616854e8e8..a0feb86ce2 100644 --- a/WorldBank/WorldBank_GDP_contributors.ipynb +++ b/WorldBank/WorldBank_GDP_contributors.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# WorldBank - GDP contributors\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "a5bc13e7-4f58-44db-b116-f8af222d9d55", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb b/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb index 0180ff5155..25f2ecf900 100644 --- a/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb +++ b/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb @@ -24,7 +24,7 @@ }, "source": [ "# WorldBank - GDP per capita and growth\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -51,6 +51,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "0c3e6531-914b-4062-9105-0559d1456bb7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-04-14)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb b/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb index 5f8fe8cd2a..93ed1021f1 100644 --- a/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb +++ b/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# WorldBank - GDP per country and evolution\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "5b1ff09a-eef3-4832-b3d5-a2df9cf63589", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "sacred-advocacy", diff --git a/WorldBank/WorldBank_Gini_index.ipynb b/WorldBank/WorldBank_Gini_index.ipynb index ff1e15f1ce..30e3cd5145 100644 --- a/WorldBank/WorldBank_Gini_index.ipynb +++ b/WorldBank/WorldBank_Gini_index.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# WorldBank - Gini index\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "da6c40ca-9801-4553-aa3e-040ede13b5ea", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WorldBank/WorldBank_Most_populated_countries.ipynb b/WorldBank/WorldBank_Most_populated_countries.ipynb index d5f44c9c17..d91d63b626 100644 --- a/WorldBank/WorldBank_Most_populated_countries.ipynb +++ b/WorldBank/WorldBank_Most_populated_countries.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# WorldBank - Most populated countries\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "e5c7ecdf-9e25-44f4-8057-1ad57cd7db44", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "sealed-edwards", diff --git a/WorldBank/WorldBank_Richest_countries_top10.ipynb b/WorldBank/WorldBank_Richest_countries_top10.ipynb index d93bce1ca3..4a0d2d5915 100644 --- a/WorldBank/WorldBank_Richest_countries_top10.ipynb +++ b/WorldBank/WorldBank_Richest_countries_top10.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WorldBank - Richest countries top10\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "fe2d03d0-c4e7-4af1-a6b7-ad3c50ee7956", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/WorldBank/WorldBank_World_employment_by_sector.ipynb b/WorldBank/WorldBank_World_employment_by_sector.ipynb index 79947e277a..e0595ed161 100644 --- a/WorldBank/WorldBank_World_employment_by_sector.ipynb +++ b/WorldBank/WorldBank_World_employment_by_sector.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# WorldBank - World employment by sector\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "3f0730ce-78eb-4fe0-b925-c3f15db3a0b7", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "charged-highlight", diff --git a/WorldBank/WorldBank_World_population_and_density.ipynb b/WorldBank/WorldBank_World_population_and_density.ipynb index 09cc3a20eb..aa274615b3 100644 --- a/WorldBank/WorldBank_World_population_and_density.ipynb +++ b/WorldBank/WorldBank_World_population_and_density.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# WorldBank - World population and density\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "e420ed46-a2ee-47d5-802d-afb370f1638d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb b/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb index 11cb4c466a..47d9f329ac 100644 --- a/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb +++ b/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb @@ -22,7 +22,7 @@ }, "source": [ "# Worldometer - World population evolution and projections\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -49,6 +49,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "982e3ebd-ec43-46c3-875f-7d6c95bf2a36", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-05-05)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb b/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb index 91360945e6..3557adda9d 100644 --- a/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb +++ b/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# XGBoost - Binary classification example with hyper-parameters optimization\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Oussama El Bahaoui](https://www.linkedin.com/in/oelbahaoui/)" ] }, + { + "cell_type": "markdown", + "id": "de716e17-bb64-49a5-803f-b05719eef52a", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/XML/XML_Transform_sitemap_to_dataframe.ipynb b/XML/XML_Transform_sitemap_to_dataframe.ipynb index 25a8301d6b..198386577f 100644 --- a/XML/XML_Transform_sitemap_to_dataframe.ipynb +++ b/XML/XML_Transform_sitemap_to_dataframe.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# XML - Transform sitemap to dataframe\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -47,6 +47,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "1efa29a9-9b10-47ef-96a4-15a09683c051", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Candlestick_chart.ipynb b/YahooFinance/YahooFinance_Candlestick_chart.ipynb index 513b98aba7..dca5e4a55b 100644 --- a/YahooFinance/YahooFinance_Candlestick_chart.ipynb +++ b/YahooFinance/YahooFinance_Candlestick_chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Candlestick chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Carlo Occhiena](https://www.linkedin.com/in/carloocchiena/)" ] }, + { + "cell_type": "markdown", + "id": "87e86a47-ac6d-45ca-8304-6c7c3cb6158b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-15)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb b/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb index 6799c4c0a1..676494fdd0 100644 --- a/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb +++ b/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Cryptocurrencies heatmap correlation graph\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Carlo Occhiena](https://www.linkedin.com/in/carloocchiena/)" ] }, + { + "cell_type": "markdown", + "id": "0ff48105-0903-40bf-9ac4-7a13d9f8f2e8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-15)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb b/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb index e3ccf47db8..f9124a406a 100644 --- a/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb +++ b/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Display chart from ticker\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "b618c710-df73-4770-a4d9-815cbdee8af8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-11-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb b/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb index 5677c1e4c1..1652721365 100644 --- a/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb +++ b/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YahooFinance - Find the stock with closest performance using KNN\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Abhinav Lakhani](https://www.linkedin.com/in/abhinav-lakhani/)" ] }, + { + "cell_type": "markdown", + "id": "1be7fdbe-e2e6-479c-b61b-0c2d19bdd6f0", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-23)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb b/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb index 4407a2b35e..154f3154bc 100644 --- a/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb +++ b/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Get Brent Crude Oil trend and predictions\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Ayoub Berdeddouch](https://www.linkedin.com/in/ayoub-berdeddouch/)" ] }, + { + "cell_type": "markdown", + "id": "069c9905-accd-404b-9270-1939c5176b8e", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-11-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Get_Stock_Update.ipynb b/YahooFinance/YahooFinance_Get_Stock_Update.ipynb index 512ba2d981..80eae151b6 100644 --- a/YahooFinance/YahooFinance_Get_Stock_Update.ipynb +++ b/YahooFinance/YahooFinance_Get_Stock_Update.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Get Stock Update\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Megha Gupta](https://github.com/megha2907)" ] }, + { + "cell_type": "markdown", + "id": "3d4d5ac1-4359-454b-a7b7-cbea338d0cad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-01-27)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb b/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb index 42aa270992..c3be86cc87 100644 --- a/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb +++ b/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Get USDEUR data and chart\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Carlo Occhiena](https://www.linkedin.com/in/carloocchiena/)" ] }, + { + "cell_type": "markdown", + "id": "1bb64c33-d130-46f5-905e-1e07b3d0f776", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-02-08)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb b/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb index f8dedab39d..e32d59f552 100644 --- a/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb +++ b/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Get data from ticker\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "7ba3b2f8-175c-48a1-9a8a-cc094ab65098", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-14 (Created: 2021-11-22)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb b/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb index 3c84c0a7b2..0a233e6509 100644 --- a/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb +++ b/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Send daily prediction to Email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "64059617-04cc-4299-b947-740b8c426410", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-12-02)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb b/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb index a0ed91e6aa..dece05262d 100644 --- a/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb +++ b/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Send daily prediction to Notion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "ca8741e8-4703-44bf-93d6-02509312baca", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-06)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb b/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb index 5dece4de0c..661cba572e 100644 --- a/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb +++ b/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YahooFinance - Send daily prediction to Slack\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "118980f0-41b8-483a-b0fd-b22866b59e2f", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-09-16)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Download_video.ipynb b/YouTube/YouTube_Download_video.ipynb index 4ce0d5a7af..d8970fd251 100644 --- a/YouTube/YouTube_Download_video.ipynb +++ b/YouTube/YouTube_Download_video.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YouTube - Download video\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "0180de30-3a25-4d39-a82b-8cc03255fff3", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-06-03 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Extract_and_summarize_transcript.ipynb b/YouTube/YouTube_Extract_and_summarize_transcript.ipynb index b2d937bffd..34b4236094 100644 --- a/YouTube/YouTube_Extract_and_summarize_transcript.ipynb +++ b/YouTube/YouTube_Extract_and_summarize_transcript.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Extract and summarize transcript\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "86a726a8-bdc2-4cb2-b81b-c1cd350af5dc", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Extract_transcript_from_video.ipynb b/YouTube/YouTube_Extract_transcript_from_video.ipynb index fc0a783d31..c244a43b9a 100644 --- a/YouTube/YouTube_Extract_transcript_from_video.ipynb +++ b/YouTube/YouTube_Extract_transcript_from_video.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Extract transcript from video\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "f99be592-63a8-4db2-bad4-825189e2a7ad", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Get_statistics_from_channel.ipynb b/YouTube/YouTube_Get_statistics_from_channel.ipynb index e0ede0b439..bf1e95005c 100644 --- a/YouTube/YouTube_Get_statistics_from_channel.ipynb +++ b/YouTube/YouTube_Get_statistics_from_channel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Get statistics from channel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "f968e928-fefa-42d0-8957-e95e7fa1789b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Get_statistics_from_video.ipynb b/YouTube/YouTube_Get_statistics_from_video.ipynb index af76522305..d0e9260395 100644 --- a/YouTube/YouTube_Get_statistics_from_video.ipynb +++ b/YouTube/YouTube_Get_statistics_from_video.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Get statistics from video\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "0d365bab-0fc7-4dc5-8147-6952224f3bd4", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Get_uploads_from_channel.ipynb b/YouTube/YouTube_Get_uploads_from_channel.ipynb index 49600bc588..1fe3c7428b 100644 --- a/YouTube/YouTube_Get_uploads_from_channel.ipynb +++ b/YouTube/YouTube_Get_uploads_from_channel.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Get uploads from channel\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "9f799f51-f830-43e6-a1dc-d7621ec8a335", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Send_track_to_Spotify.ipynb b/YouTube/YouTube_Send_track_to_Spotify.ipynb index c51eb0a4c3..8bb27930bb 100644 --- a/YouTube/YouTube_Send_track_to_Spotify.ipynb +++ b/YouTube/YouTube_Send_track_to_Spotify.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# YouTube - Send track to Spotify\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Josef (Joe) Trchalik](https://www.linkedin.com/in/joseftrchalik/)" ] }, + { + "cell_type": "markdown", + "id": "5a9c2e04-1bb1-4c3d-89a7-241775c65b4d", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-03)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Send_video_stats_to_Notion.ipynb b/YouTube/YouTube_Send_video_stats_to_Notion.ipynb index fa400021a6..02eb23d068 100644 --- a/YouTube/YouTube_Send_video_stats_to_Notion.ipynb +++ b/YouTube/YouTube_Send_video_stats_to_Notion.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Send video stats to Notion\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "b8833c65-3ef5-49dd-b60c-73d20a3e5cd8", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-06-07)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/YouTube/YouTube_Summarize_video.ipynb b/YouTube/YouTube_Summarize_video.ipynb index e8452ccb6f..a34c22523c 100644 --- a/YouTube/YouTube_Summarize_video.ipynb +++ b/YouTube/YouTube_Summarize_video.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# YouTube - Summarize video\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/)" ] }, + { + "cell_type": "markdown", + "id": "42104b1d-6dec-402a-86cf-52b2eda7ddda", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-03-18)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/ZIP/ZIP_Extract_files.ipynb b/ZIP/ZIP_Extract_files.ipynb index 6f2cb347a6..8badc6c00f 100644 --- a/ZIP/ZIP_Extract_files.ipynb +++ b/ZIP/ZIP_Extract_files.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# ZIP - Extract files\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Maxime Jublou](https://www.linkedin.com/in/maximejublou)" ] }, + { + "cell_type": "markdown", + "id": "eaa1d450-92b0-49df-89fb-64f7b306c028", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/Zapier/Zapier_Trigger_workflow.ipynb b/Zapier/Zapier_Trigger_workflow.ipynb index bd9673bdaf..6623226d00 100644 --- a/Zapier/Zapier_Trigger_workflow.ipynb +++ b/Zapier/Zapier_Trigger_workflow.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# Zapier - Trigger workflow\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Jeremy Ravenel](https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/)" ] }, + { + "cell_type": "markdown", + "id": "71331423-3e5c-4cb7-84e0-73ce9e82cb18", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2021-03-01)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb b/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb index 003c4580fb..3067609f32 100644 --- a/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb +++ b/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# ZeroBounce - Validate Single Email\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" ] }, + { + "cell_type": "markdown", + "id": "36a540ae-ac6f-4864-a22b-d6b06ce0b7e1", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-02-27)" + ] + }, { "cell_type": "markdown", "id": "36857fa6-183c-4bd0-8116-d14f80422f35", diff --git a/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb b/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb index 86937a1a0f..1bdd471dce 100644 --- a/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb +++ b/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb @@ -20,7 +20,7 @@ }, "source": [ "# gTTS - Save Text to Speech to MP3\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -45,6 +45,17 @@ "**Author:** [Sriniketh Jayasendil](http://linkedin.com/in/sriniketh-jayasendil/)" ] }, + { + "cell_type": "markdown", + "id": "72b35d30-c9c2-4f4a-aea2-785eb5292d07", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2023-03-02)" + ] + }, { "cell_type": "markdown", "id": "4e999280-cbcf-4d37-9ead-3c7ac53f86f5", diff --git a/generate_readme.ipynb b/generate_readme.ipynb index ff4dc8af7d..d9f5a012ed 100644 --- a/generate_readme.ipynb +++ b/generate_readme.ipynb @@ -41,10 +41,10 @@ "id": "sitting-directory", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:26.116137Z", - "iopub.status.busy": "2023-06-21T06:59:26.115141Z", - "iopub.status.idle": "2023-06-21T06:59:29.392884Z", - "shell.execute_reply": "2023-06-21T06:59:29.391806Z" + "iopub.execute_input": "2023-08-22T12:59:12.825734Z", + "iopub.status.busy": "2023-08-22T12:59:12.825164Z", + "iopub.status.idle": "2023-08-22T12:59:15.872329Z", + "shell.execute_reply": "2023-08-22T12:59:15.871639Z" }, "tags": [] }, @@ -94,10 +94,10 @@ "id": "guided-edgar", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:29.397225Z", - "iopub.status.busy": "2023-06-21T06:59:29.396605Z", - "iopub.status.idle": "2023-06-21T06:59:29.401309Z", - "shell.execute_reply": "2023-06-21T06:59:29.400732Z" + "iopub.execute_input": "2023-08-22T12:59:15.876320Z", + "iopub.status.busy": "2023-08-22T12:59:15.875740Z", + "iopub.status.idle": "2023-08-22T12:59:15.881410Z", + "shell.execute_reply": "2023-08-22T12:59:15.880834Z" }, "tags": [] }, @@ -114,7 +114,7 @@ "# Outputs\n", "json_file = \"templates.json\"\n", "naas_lab_url ='https://app.naas.ai/user-redirect/naas/downloader?url='\n", - "naas_chat_url = \"https://workspace.naas.ai/chat/use?plugin_url=\"\n", + "naas_chat_url = \"https://naas.ai/chat/use?plugin_url=\"\n", "readme = \"README.md\"" ] }, @@ -140,10 +140,10 @@ "id": "36c9011e-5f51-4779-8062-a627503100e1", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:29.405164Z", - "iopub.status.busy": "2023-06-21T06:59:29.404655Z", - "iopub.status.idle": "2023-06-21T06:59:29.966431Z", - "shell.execute_reply": "2023-06-21T06:59:29.965630Z" + "iopub.execute_input": "2023-08-22T12:59:15.884785Z", + "iopub.status.busy": "2023-08-22T12:59:15.884466Z", + "iopub.status.idle": "2023-08-22T12:59:16.151053Z", + "shell.execute_reply": "2023-08-22T12:59:16.150268Z" }, "tags": [] }, @@ -211,10 +211,10 @@ "id": "7fa60d66-a43a-4ba3-abfb-ee1779afdfc3", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:29.970545Z", - "iopub.status.busy": "2023-06-21T06:59:29.969954Z", - "iopub.status.idle": "2023-06-21T06:59:29.975919Z", - "shell.execute_reply": "2023-06-21T06:59:29.974900Z" + "iopub.execute_input": "2023-08-22T12:59:16.154999Z", + "iopub.status.busy": "2023-08-22T12:59:16.154601Z", + "iopub.status.idle": "2023-08-22T12:59:16.159975Z", + "shell.execute_reply": "2023-08-22T12:59:16.159380Z" }, "tags": [] }, @@ -251,10 +251,10 @@ "id": "f9a4c7b2-d667-4555-98ed-31786278e947", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:29.980212Z", - "iopub.status.busy": "2023-06-21T06:59:29.979945Z", - "iopub.status.idle": "2023-06-21T06:59:30.000812Z", - "shell.execute_reply": "2023-06-21T06:59:30.000015Z" + "iopub.execute_input": "2023-08-22T12:59:16.163125Z", + "iopub.status.busy": "2023-08-22T12:59:16.162894Z", + "iopub.status.idle": "2023-08-22T12:59:16.180444Z", + "shell.execute_reply": "2023-08-22T12:59:16.179808Z" }, "tags": [] }, @@ -323,7 +323,10 @@ " author_name = author.replace(\"[\", \"\").replace(\"]\", \"\").split(\"(\")[0].strip()\n", " if \"(\" in author:\n", " author_url = author.split(\"(\")[-1].replace(\")\", \"\")\n", - " description = cells[4].get(\"source\").replace(\"**Description:**\", \"\").strip()\n", + " date_cell = cells[4].get(\"source\")\n", + " updated_at = date_cell.split(\"**Last update:**\")[-1].split(\"(\")[0].strip()\n", + " created_at = date_cell.split(\"Created:\")[-1].split(\")\")[0].strip()\n", + " description = cells[5].get(\"source\").replace(\"**Description:**\", \"\").strip()\n", "\n", " # Get metadata store in variables cells\n", " for index, cell in enumerate(cells):\n", @@ -340,7 +343,7 @@ " # Get plugin tags\n", " if \"plugin\" in metadata.get(\"tags\"):\n", " plugin = True\n", - " # Add plugin\n", + " # Add #plugin into tags\n", " if \"#plugin\" not in tags:\n", " nb.cells[2].source = \"**Tags:** \" + \" \".join(tags) + \" #plugin\"\n", " tags.append(\"#plugin\")\n", @@ -352,16 +355,17 @@ " if nb != nb_init:\n", " write_ipynb(nb, notebook_path)\n", " print(\"✅ Notebook successfully updated.\")\n", - " return title, action, tags, author_name, author_url, description, imports, plugin, first_cell\n", + " return title, action, tags, author_name, author_url, updated_at, created_at, description, imports, plugin, first_cell\n", "\n", - "# notebook_path = \"OpenAI/OpenAI_Act_as_a_CEO.ipynb\"\n", - "# # notebook_path = \"ZIP/ZIP_Extract_files.ipynb\"\n", - "# title, action, tags, author_name, author_url, description, imports, plugin, first_cell = get_notebook_info(notebook_path)\n", + "# notebook_path = \"OpenAI/OpenAI_Act_as_a_chef.ipynb\"\n", + "# title, action, tags, author_name, author_url, updated_at, created_at, description, imports, plugin, first_cell = get_notebook_info(notebook_path)\n", "# print(\"- Title:\", title)\n", "# print(\"- Action:\", action)\n", "# print(\"- Tags:\", tags)\n", "# print(\"- Author:\", author_name)\n", "# print(\"- Author URL:\", author_url)\n", + "# print(\"- Last update:\", updated_at)\n", + "# print(\"- Created at:\", created_at)\n", "# print(\"- Description:\", description)\n", "# print(\"- Imports:\", imports)\n", "# print(\"- Plugin:\", plugin)\n", @@ -382,10 +386,10 @@ "id": "9f21cfbb-2bcc-4bca-81a4-fad14b081371", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:30.004807Z", - "iopub.status.busy": "2023-06-21T06:59:30.004305Z", - "iopub.status.idle": "2023-06-21T06:59:30.011994Z", - "shell.execute_reply": "2023-06-21T06:59:30.011188Z" + "iopub.execute_input": "2023-08-22T12:59:16.183571Z", + "iopub.status.busy": "2023-08-22T12:59:16.183345Z", + "iopub.status.idle": "2023-08-22T12:59:16.189835Z", + "shell.execute_reply": "2023-08-22T12:59:16.189130Z" }, "tags": [] }, @@ -422,21 +426,24 @@ " open_in_chat_url = f\"\"\" \"\"\"\n", " \n", " # Hyperlinks\n", - " template_request_url = f\"\"\"Template request\"\"\"\n", + "# template_request_url = f\"\"\"Template request\"\"\"\n", " \n", " title_url = (f\"{tool}+-+{title}\").replace(\" \", \"+\")\n", " bug_report_url = f\"\"\"Bug report\"\"\"\n", + "\n", + " feedbacks_url = f\"\"\"Give Feedback\"\"\"\n", " \n", " start_data_product_url = f\"{naas_lab_url}{start_data_product}\"\n", " generate_data_product_url = f\"\"\"Generate Data Product\"\"\"\n", " \n", " # Title cell source\n", - " title_cell_source = f\"\"\"{notebook_title}{open_in_lab_url}{open_in_chat_url}

{template_request_url} | {bug_report_url} | {generate_data_product_url}\"\"\"\n", + " title_cell_source = f\"\"\"{notebook_title}{open_in_lab_url}{open_in_chat_url}

{feedbacks_url} | {bug_report_url}\"\"\"\n", " \n", " # Display open button\n", "# markdown.display(title_cell_source)\n", " return title_cell_source\n", "\n", + "# plugin = False\n", "# tool = \"OpenAI\"\n", "# raw_url = \"https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_chef.ipynb\"\n", "# open_in_lab = f\"{naas_lab_url}{raw_url}\"\n", @@ -472,10 +479,10 @@ "id": "94dcc3bd-07e2-48a3-bf81-a327e940a934", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:30.016004Z", - "iopub.status.busy": "2023-06-21T06:59:30.015607Z", - "iopub.status.idle": "2023-06-21T06:59:30.020163Z", - "shell.execute_reply": "2023-06-21T06:59:30.019406Z" + "iopub.execute_input": "2023-08-22T12:59:16.192753Z", + "iopub.status.busy": "2023-08-22T12:59:16.192420Z", + "iopub.status.idle": "2023-08-22T12:59:16.196252Z", + "shell.execute_reply": "2023-08-22T12:59:16.195618Z" }, "tags": [] }, @@ -514,10 +521,10 @@ "id": "e45fc17e-ba5a-4317-92b3-f6de4c1a0bde", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:30.024031Z", - "iopub.status.busy": "2023-06-21T06:59:30.023633Z", - "iopub.status.idle": "2023-06-21T06:59:32.316621Z", - "shell.execute_reply": "2023-06-21T06:59:32.315667Z" + "iopub.execute_input": "2023-08-22T12:59:16.199412Z", + "iopub.status.busy": "2023-08-22T12:59:16.198989Z", + "iopub.status.idle": "2023-08-22T12:59:18.620997Z", + "shell.execute_reply": "2023-08-22T12:59:18.620259Z" }, "tags": [] }, @@ -537,7 +544,7 @@ " open_in_chat = \"\"\n", " \n", " # Get data from notebook\n", - " title, action, tags, author_name, author_url, description, imports, plugin, title_cell = get_notebook_info(notebook_path)\n", + " title, action, tags, author_name, author_url, updated_at, created_at, description, imports, plugin, title_cell = get_notebook_info(notebook_path)\n", " \n", " # Create Open in MyChatGPT URL\n", " if plugin:\n", @@ -575,12 +582,13 @@ " 'tags': tags,\n", " 'author': author_name,\n", " 'author_url': author_url,\n", + " \"updated_at\": updated_at,\n", + " \"created_at\": created_at,\n", " 'description': description,\n", " \"open_in_lab\": open_in_lab,\n", " \"open_in_chat\": open_in_chat,\n", " \"notebook_url\": html_url,\n", " \"imports\": imports,\n", - " \"updated_at\": \"\",\n", " \"image_url\": \"\",\n", " }\n", " json_templates.append(new_json)\n", @@ -616,10 +624,10 @@ "id": "younger-consensus", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:32.320532Z", - "iopub.status.busy": "2023-06-21T06:59:32.320032Z", - "iopub.status.idle": "2023-06-21T06:59:32.328414Z", - "shell.execute_reply": "2023-06-21T06:59:32.327738Z" + "iopub.execute_input": "2023-08-22T12:59:18.626267Z", + "iopub.status.busy": "2023-08-22T12:59:18.625668Z", + "iopub.status.idle": "2023-08-22T12:59:18.637119Z", + "shell.execute_reply": "2023-08-22T12:59:18.636345Z" }, "tags": [] }, @@ -653,10 +661,10 @@ "id": "2a95cba3-027c-4a57-8bfa-2ee1e9053bb7", "metadata": { "execution": { - "iopub.execute_input": "2023-06-21T06:59:32.332150Z", - "iopub.status.busy": "2023-06-21T06:59:32.331436Z", - "iopub.status.idle": "2023-06-21T06:59:32.362377Z", - "shell.execute_reply": "2023-06-21T06:59:32.361462Z" + "iopub.execute_input": "2023-08-22T12:59:18.640392Z", + "iopub.status.busy": "2023-08-22T12:59:18.640155Z", + "iopub.status.idle": "2023-08-22T12:59:18.672589Z", + "shell.execute_reply": "2023-08-22T12:59:18.672043Z" }, "tags": [] }, diff --git a/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb b/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb index 8e62c82080..c17e5c1e53 100644 --- a/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb +++ b/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb @@ -27,7 +27,7 @@ }, "source": [ "# spaCy - SpaCy Build a sentiment analysis model using Twitter\n", - "

Template request | Bug report | Generate Data Product" + "

Give Feedback | Bug report" ] }, { @@ -52,6 +52,17 @@ "**Author:** [Tannia Dubon](https://www.linkedin.com/in/tanniadubon/)" ] }, + { + "cell_type": "markdown", + "id": "b6295268-bc14-4a76-8a2e-89b6909aeee6", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-04-12 (Created: 2022-05-12)" + ] + }, { "cell_type": "markdown", "id": "naas-description", diff --git a/template.ipynb b/template.ipynb index b068a32f78..4a816365f5 100644 --- a/template.ipynb +++ b/template.ipynb @@ -19,7 +19,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "id": "compressed-wilson", "metadata": { @@ -27,10 +26,7 @@ "tags": [] }, "source": [ - "# Tool - Action of the notebook\n", - "\n", - "\n", - "

Template request | Bug report" + "# Tool - Action of the notebook" ] }, { @@ -38,7 +34,7 @@ "id": "religious-programmer", "metadata": {}, "source": [ - "**Tags:** #tool" + "**Tags**: #tool -> hastags of the topics the notebook is about, as text starting with the name of the tool" ] }, { @@ -46,7 +42,15 @@ "id": "1fe9f56e-561c-4f52-aef8-b861c9462107", "metadata": {}, "source": [ - "**Author:** [Firstname Lastname](https://www.linkedin.com/)" + "**Author:** [Firstname Lastname](https://www.linkedin.com/) -> name and social profile link of the author(s)" + ] + }, + { + "cell_type": "markdown", + "id": "0de144be-594d-463e-9849-696fb2f6d1a8", + "metadata": {}, + "source": [ + "**Last update:** YYYY-MM-DD (Created: YYYY-MM-DD) -> The last update date refers to when the notebook was last edited, while the created date corresponds to when the notebook was initially merged." ] }, { @@ -54,7 +58,16 @@ "id": "31ea7cdb-e10d-43fc-b026-f69249a59736", "metadata": {}, "source": [ - "**Description:** This notebook ...." + "**Description:** This notebook demonstrates how to ... -> a one-liner explaining the benefits of the notebooks for the user, as text." + ] + }, + { + "cell_type": "markdown", + "id": "d4b89388-5cd5-409a-8169-c53cc8dfab96", + "metadata": {}, + "source": [ + "**References:** list of references and websites utilized in the creation of this notebook\n", + "- [Naas Documentation](https://site.naas.ai/)" ] }, { @@ -73,7 +86,9 @@ "id": "numeric-mediterranean", "metadata": {}, "source": [ - "### Import libraries" + "### Import libraries\n", + "Libraries to be used within the notebook.
\n", + "If these libraries are not installed on Naas, ensure they are installed during the first execution by using a `try`/`except` function to import the package." ] }, { @@ -93,7 +108,21 @@ "id": "aggressive-trustee", "metadata": {}, "source": [ - "### Setup Variables" + "### Setup variables\n", + "Variables used in this notebook should be categorized as either mandatory or optional and should be clearly described. The aim of defining these variables in the input section is to facilitate use of the notebook by any user, allowing them to interact with it without the need to modify functions in the model section.\n", + "\n", + "\n", + "**Mandatory**\n", + "\n", + "- `stock_name`: This variable represents the stock symbol for which you want to fetch data. In this case, 'NFLX' stands for Netflix.\n", + "\n", + "\n", + "**Optional**\n", + "\n", + "- `date_from`: This variable defines the starting date from which you want to fetch the stock data. It's set to '-3600', which likely represents 3600 days before the current date.\n", + "- `date_to`: This variable defines the end date up to which you want to fetch the stock data. When set to 'today', it fetches data up to the current date.\n", + "- `moving_averages`: This is a list of integers representing the number of days for which you want to calculate the moving average of the stock price. In this case, moving averages will be calculated for the past 20 and 50 days.\n", + "- `csv_output`: This variable represents the name of the CSV file where the fetched data will be saved. In this case, the file will be named 'MY_OUTPUT.csv'." ] }, { @@ -103,13 +132,13 @@ "metadata": {}, "outputs": [], "source": [ - "#inputs\n", + "# Mandatory\n", "stock_name = 'NFLX'\n", + "\n", + "# Optional\n", "date_from = -3600\n", "date_to = \"today\"\n", - "moving_averages = [20,50]\n", - "\n", - "#outputs\n", + "moving_averages = [20, 50]\n", "csv_output = \"MY_OUTPUT.csv\"" ] }, @@ -126,7 +155,7 @@ "id": "tested-astrology", "metadata": {}, "source": [ - "### Get data from yahoo finance (function description)" + "### Get data from yahoo finance" ] }, { @@ -139,10 +168,12 @@ }, "outputs": [], "source": [ - "df = yahoofinance.get(stock_name,\n", - " date_from=date_from,\n", - " date_to=date_to,\n", - " moving_averages=moving_averages)\n", + "df = yahoofinance.get(\n", + " stock_name,\n", + " date_from=date_from,\n", + " date_to=date_to,\n", + " moving_averages=moving_averages\n", + ")\n", "df" ] }, @@ -167,7 +198,7 @@ "id": "890f7c86-b7bb-4f5d-9a1b-e492dd9580fd", "metadata": {}, "source": [ - "### Save result in csv" + "### Save DataFrame to csv" ] }, { diff --git a/templates.json b/templates.json index 6705370b44..7f7c18f5b5 100644 --- a/templates.json +++ b/templates.json @@ -1 +1 @@ -[{"objectID": "3e342697d70a5fc4884c84d82b7b2d1efc9f8dde26b142ec2e63c2246dbfd05b", "tool": "AWS", "notebook": "Daily biling notification to slack", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#slack", "#operations", "#automation"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook sends a daily notification to a Slack channel with the billing information from an AWS account. It allows users to easily keep track of their AWS spending.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Daily_biling_notification_to_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Daily_biling_notification_to_slack.ipynb", "imports": ["datetime", "boto3", "naas", "dateutil.relativedelta", "pandas", "naas_drivers"], "updated_at": "", "image_url": ""}, {"objectID": "e5cc5c59cca0de48fbaf2a7d65708d416a50968635cadc60e18a669fd52c075a", "tool": "AWS", "notebook": "Get files from S3 bucket", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#operations", "#snippet", "#url"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook provides a step-by-step guide to retrieving files from an Amazon Web Services (AWS) S3 bucket, allowing users to easily access their data stored in the cloud.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Get_files_from_S3_bucket.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Get_files_from_S3_bucket.ipynb", "imports": ["boto3"], "updated_at": "", "image_url": ""}, {"objectID": "db1e517c78d01b715869cb9f08c6c818cd09715bf0134dd92c4440869d176e77", "tool": "AWS", "notebook": "Read dataframe from S3", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#operations", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook demonstrates how to read a dataframe from an Amazon Web Services (AWS) Simple Storage Service (S3) bucket.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Read_dataframe_from_S3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Read_dataframe_from_S3.ipynb", "imports": ["awswrangler", "awswrangler"], "updated_at": "", "image_url": ""}, {"objectID": "0d5fe4330975af3c53c528f914bd8d0124c25dea14afe09df1119b430a9bb2b2", "tool": "AWS", "notebook": "Send dataframe to S3", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#operations", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook demonstrates how to use AWS to send a dataframe to an S3 bucket.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Send_dataframe_to_S3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Send_dataframe_to_S3.ipynb", "imports": ["awswrangler", "awswrangler", "pandas", "datetime.date"], "updated_at": "", "image_url": ""}, {"objectID": "f5955b1a7c1209b77d470bfeb5eb20bcdf6ecf7fcba22a304dd0ea03164a0539", "tool": "AWS", "notebook": "Upload file to S3 bucket", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#snippet", "#operations", "#AWS - Upload file to S3 bucket"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook provides instructions on how to upload a file to an Amazon Web Services (AWS) S3 bucket, allowing for secure storage and easy access to the file. It is a simple and efficient way to store and manage data in the cloud.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Upload_file_to_S3_bucket.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Upload_file_to_S3_bucket.ipynb", "imports": ["boto3", "boto3"], "updated_at": "", "image_url": ""}, {"objectID": "5916af637e577797931145d971b180db20f2a1d595fec71b99bc547da2ee8dbd", "tool": "Abstract API", "notebook": "Check Email Validation", "action": "", "tags": ["#abstractapi", "#email", "#validation", "#api", "#check", "#tester"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to use Abstract API to check if an email is valid.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Abstract%20API/Abstract_API_Check_Email_Validation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Abstract%20API/Abstract_API_Check_Email_Validation.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "8d77689e05cc016ea0eed7a995b0ef55adc9998684802cc44b3cccf702baed41", "tool": "Abstract API", "notebook": "Get IP Geolocation", "action": "", "tags": ["#api", "#abstract-api", "#ip", "#geolocation", "#stream", "#multithread", "#queues", "#operations", "#dataprocessing", "#automation"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook provides a way to get the geolocation of an IP address using the AbstractAPI service.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Abstract%20API/Abstract_API_Get_IP_Geolocation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Abstract%20API/Abstract_API_Get_IP_Geolocation.ipynb", "imports": ["threading", "queue", "time", "requests", "pandas", "json", "ratelimiter.RateLimiter", "ratelimiter.RateLimiter"], "updated_at": "", "image_url": ""}, {"objectID": "1fc79d1caf15ef3a1adf0874fa85f6a8b05e172f5e45f0fc6ce7ee40e5c54cae", "tool": "Advertools", "notebook": "Analyze website content using XML sitemap", "action": "", "tags": ["#advertools", "#xml", "#sitemap", "#website", "#analyze", "#seo"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "description": "This notebook helps you get an overview of a website's content by analyzing and visualizing its XML sitemap. It's also an important SEO audit process that can uncover some potential issues that might affect the website.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb", "imports": ["advertools", "advertools", "adviz", "adviz", "urllib.parse.urlsplit", "IPython.display.display"], "updated_at": "", "image_url": ""}, {"objectID": "2733269de8aa4a8a013af03ae7af3ac21d9d860849af4b06adb3b31fbfc13ad2", "tool": "Advertools", "notebook": "Audit robots txt and xml sitemap issues", "action": "", "tags": ["#advertools", "#xml", "#sitemap", "#website", "#audit", "#seo", "#robots.txt", "#google"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "description": "This notebook helps you check if there are any conflicts between robots.txt rules and your XML sitemap.\n\n* Are you disallowing URLs that you shouldn't?\n* Test and make sure you don't publish new pages with such conflicts.\n* Do this in bulk: for all URL/rule/user-agent combinations run all tests with one command.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb", "imports": ["advertools", "advertools"], "updated_at": "", "image_url": ""}, {"objectID": "3d3224a30d88e19593b49386c00bef0933deb4e3cbc16d8e9da64a102989a235", "tool": "Affinity", "notebook": "Sync with Notion database", "action": "", "tags": ["#automation", "#notification", "#Affinity", "#Notion"], "author": "Maxime Jublou", "author_url": "https://linkedin.com/in/maximejublou", "description": "This notebook allows users to easily sync their Notion database with their Affinity account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Affinity/Affinity_Sync_with_Notion_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Affinity/Affinity_Sync_with_Notion_database.ipynb", "imports": ["naas", "rich.print", "pandas", "pandas.DataFrame", "naas_drivers.notion", "notion_client.APIResponseError", "requests", "pydash", "requests.auth.HTTPBasicAuth", "string.Template"], "updated_at": "", "image_url": ""}, {"objectID": "fde19b055488d7f318ec541fd38a5195fe025974bb22c1cb2fbf869fbb2ac7c6", "tool": "Agicap", "notebook": "Export treasury plan", "action": "", "tags": ["#agicap", "#treasury", "#export", "#plan", "#finance", "#data", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will export the Excel treasury plan consolidated by month from Agicap and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Export_treasury_plan.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Export_treasury_plan.ipynb", "imports": ["requests", "naas", "pandas", "datetime.datetime", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "6e8192ab022b4bd38167bcad47bf5361f21f97d197b712c9c324fbc22e34c1a3", "tool": "Agicap", "notebook": "Export treasury plan by account", "action": "", "tags": ["#agicap", "#treasury", "#export", "#plan", "#finance", "#data", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will export the Excel treasury plan by account by month from Agicap and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Export_treasury_plan_by_account.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Export_treasury_plan_by_account.ipynb", "imports": ["requests", "naas", "pandas", "datetime.datetime", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "5b0eeb327eb1d95fe850ad247b10ac8fb597a92887acf64a29dc564086e889e4", "tool": "Agicap", "notebook": "List companies", "action": "", "tags": ["#agicap", "#companies", "#accountingsoftware", "#financialmanagement", "#businessmanagement", "#financetracking", "#budgetplanning", "#invoicing", "#expensetracking", "#businessinsights", "#dataanalysis"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook lists all the companies within Agicap with their IDs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_List_companies.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_List_companies.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "32269a4228bf817ab1b2d51b7a5771d41e0381627b8e07487e9c7afa0ee0bf37", "tool": "Airtable", "notebook": "Delete data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to delete data from an Airtable database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Delete_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Delete_data.ipynb", "imports": ["naas_drivers.airtable"], "updated_at": "", "image_url": ""}, {"objectID": "f93453cccd04f72d5ec42afc790f102a05e6695c5b7d46347e25d1ac9bd3e67c", "tool": "Airtable", "notebook": "Get data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an introduction to Airtable, a cloud-based database platform that allows users to easily access and manage data. It provides step-by-step instructions on how to get data from Airtable into a notebook for further analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Get_data.ipynb", "imports": ["naas_drivers.airtable"], "updated_at": "", "image_url": ""}, {"objectID": "718782ca423ea8e69fc7a4d05b5a28ebecc61ce558bff968d6466fe6279c0e3a", "tool": "Airtable", "notebook": "Insert data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a step-by-step guide on how to insert data into an Airtable database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Insert_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Insert_data.ipynb", "imports": ["naas_drivers.airtable"], "updated_at": "", "image_url": ""}, {"objectID": "8f01544918dbd4ddadf8d4079fc2e2b7eee3af9b45a3baa3af433f2404df5bb2", "tool": "Airtable", "notebook": "Search data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to search through data stored in Airtable, making it easy to find the information they need quickly and efficiently.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Search_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Search_data.ipynb", "imports": ["naas_drivers.airtable"], "updated_at": "", "image_url": ""}, {"objectID": "f529085c0f2d4f78142501e664c14ab66edf02fb933d2d7c8bd49721d43a90df", "tool": "Algolia", "notebook": "Add or Replace all attributes in existing records", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#save", "#update", "#add"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to add new records (objects) to an index or replace existing records with an updated set of attributes.\nThis method redefines all of a record\u2019s attributes (except its objectID). In other words, it fully replaces an existing record.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5d2df023819411f69ec17f94b0bfde745eb6a1292e39f5cded170e4c053333f6", "tool": "Algolia", "notebook": "Add or Replace all attributes in a single record", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#save", "#update", "#add"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to add new record (object) to an index or replace existing record with an updated set of attributes.\nThis method redefines all of a record\u2019s attributes (except its objectID). In other words, it fully replaces an existing record.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "bb72a24111a186d70f016c346ba1f037125524cba143537d2c214a354f1d3308", "tool": "Algolia", "notebook": "Delete multiples objects", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to delete multiples objects from an Algolia index using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Delete_multiples_objects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Delete_multiples_objects.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "8d7294cbf8b3918f28680d17d1a9bb6465e72fb8129f2c7d2ff91b571a2de4d7", "tool": "Algolia", "notebook": "Delete a single object", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to delete a single object from an Algolia index using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Delete_single_object.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Delete_single_object.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "815211fb3ee83348a3785424987de3ef51856933b6fddbd4c2beea49609ffbe2", "tool": "Algolia", "notebook": "Get all records from an index", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#records", "#browse"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to get all records from an Algolia index using Python. It is usefull for organizations that need to access and manipulate data stored in Algolia.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Get_all_records_from_an_index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Get_all_records_from_an_index.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f5ee3a4a99ee8df9d2b7751ff23b22e1813c83a7c0eb3aae1d3ea0995563ccf2", "tool": "Algolia", "notebook": "List indices", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#list"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to get a list of indices with their associated metadata from Algolia using Python. This method retrieves a list of all indices associated with a given Application ID.\nThe returned list includes the names of the indices as well as their associated metadata, such as the number of records, size, and last build time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_List%20indices.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_List%20indices.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d18163bf41ff8dd85cbae1e18aa4d976a3244f48089b3cd6c9058b1fd3523720", "tool": "AlphaVantage", "notebook": "Get balance sheet", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to access financial data from AlphaVantage, specifically balance sheet information for a given company. It allows users to quickly and easily access up-to-date financial information for their analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb", "imports": ["requests", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "44205360daf5879c2a0eeecd80a0dfc2f4c502dd671b5247ce5234287cddadff", "tool": "AlphaVantage", "notebook": "Get cashflow statement", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to access financial data from AlphaVantage, including cashflow statements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb", "imports": ["requests", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "03196420b0ecd1331f5511875ff18643e432128254644221a0b139019b1c42cd", "tool": "AlphaVantage", "notebook": "Get company overview", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides an overview of the AlphaVantage API, which allows users to access real-time and historical financial data for global equities, commodities, and currencies. It provides a comprehensive set of tools to analyze and visualize financial data for a variety of purposes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_company_overview.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_company_overview.ipynb", "imports": ["requests", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "759fbfe0ce1a7a0c043f30bf8ba8539d3a446058a8f88dee12063444ac6ba3c4", "tool": "AlphaVantage", "notebook": "Get income statement", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to access income statement data from AlphaVantage, a financial data provider. It allows users to quickly and easily access financial information to make informed decisions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_income_statement.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_income_statement.ipynb", "imports": ["requests", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "5211f802b4119d49640d75844e0de08b997cd5ec85ee5d76e9af6fa027925578", "tool": "Azure Blob Storage", "notebook": "Upload files", "action": "", "tags": ["#azure", "#datalake", "#naas", "#snippet"], "author": "Alexandre Stevens", "author_url": "https://www.linkedin.com/in/
", "description": "This notebook explains how to upload files to Azure Blob Storage using the Azure Python SDK.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Azure%20Blob%20Storage/Azure_Blob_Storage_Upload_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Blob%20Storage/Azure_Blob_Storage_Upload_files.ipynb", "imports": ["azure.storage.blob.BlobServiceClient", "azure.storage.blob.ContentSettings", "azure.storage.blob.BlobServiceClient", "azure.storage.blob.ContentSettings"], "updated_at": "", "image_url": ""}, {"objectID": "70cdbff79ec94526b10df7cf0dde2e985f5507c53ef94d0f3c7dd5a925a1c454", "tool": "Bazimo", "notebook": "Get export Actifs", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an easy way to export active assets from Bazimo, allowing users to quickly and efficiently manage their assets. It is a great tool for keeping track of assets and ensuring that they are up to date.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Actifs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Actifs.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "57013d1c1890e25d5d71579c29c5fd1136a0f99afd6c302de27830221b68f816", "tool": "Bazimo", "notebook": "Get export Baux", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an easy way to export data from Baux, allowing users to quickly and efficiently access their data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Baux.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Baux.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f427f26405a8fcd2677cd6850508051cbfae87c2590c8d8f6932f742c88c0e73", "tool": "Bazimo", "notebook": "Get export Factures", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to easily export invoices from Bazimo, making it easy to keep track of your finances.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Factures.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Factures.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "075f91fbf86042edf26814810f71ebdf1ce1f37dcd9cd8ebf960c548f0d87f64", "tool": "Bazimo", "notebook": "Get export Locataires", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an easy way to export tenant information from Bazimo.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Locataires.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Locataires.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fec0b2c09dbb0faa29db645a2802320abbfadc22f77dea4fac1a5c75d7b6cb30", "tool": "Bazimo", "notebook": "Get export Lots", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to quickly and easily export large amounts of data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Lots.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Lots.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "200a5dcebfc9ff32f08e84aaba44cb6125fbc8bbde5f686f467b8626c7ef5f78", "tool": "BeautifulSoup", "notebook": "List social network links from website", "action": "", "tags": ["#beautifulsoup", "#webscraping", "#python", "#html", "#css", "#url"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will use BeautifulSoup to list all the social network links from a website. It is usefull for organizations to quickly get a list of all the social networks they are present on.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb", "imports": ["requests", "bs4.BeautifulSoup"], "updated_at": "", "image_url": ""}, {"objectID": "12ef03c9788da13b430b0d23171c6c0949ff23c86a70281d36e19d8a6237b135", "tool": "BeautifulSoup", "notebook": "Scrape emails from URL", "action": "", "tags": ["#beautifulsoup", "#python", "#scraping", "#emails", "#url", "#webscraping", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to scrape emails stored in HTML webpage using BeautifulSoup.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb", "imports": ["re", "requests", "urllib.parse.urlsplit", "collections.deque", "bs4.BeautifulSoup", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "b8dae3c0c48ff11cf99e98ae8c12001027c397f0898d06da9154692ec1a16e62", "tool": "BigQuery", "notebook": "Create table from csv", "action": "", "tags": ["#bigquery", "#database", "#snippet", "#operations", "#dataframe"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to create a BigQuery table from a CSV file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BigQuery/BigQuery_Create_table_from_csv.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BigQuery/BigQuery_Create_table_from_csv.ipynb", "imports": ["naas_drivers.bigquery"], "updated_at": "", "image_url": ""}, {"objectID": "752be3434483e20df49126952868c6537832491976d513a39ebaa74913771f35", "tool": "BigQuery", "notebook": "Read Table", "action": "", "tags": ["#bigquery", "#database", "#snippet", "#operations", "#dataframe"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook provides an example of how to read data from a BigQuery table.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BigQuery/BigQuery_Read_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BigQuery/BigQuery_Read_Table.ipynb", "imports": ["naas_drivers.bigquery"], "updated_at": "", "image_url": ""}, {"objectID": "9f9713992be8f9af16d3e66e5ea4486c72b84576fa7353df24f29f45ca8331aa", "tool": "Bitly", "notebook": "Create Links", "action": "", "tags": ["#bitly", "#link", "#shorten", "#url", "#create", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create short links with Bitly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Create_Links.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Create_Links.ipynb", "imports": ["requests", "json"], "updated_at": "", "image_url": ""}, {"objectID": "cd555eb47a32680c309420899038ccaaf7d29a82018a807210599465b6a69fdd", "tool": "Bitly", "notebook": "Delete a Bitlink", "action": "", "tags": ["#bitly", "#api", "#delete", "#bitlink", "#hash", "#unedited"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to delete an unedited hash Bitlink.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Delete_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Delete_a_Bitlink.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "3eabe9ed9dcfdcd75e1a510995d981dfc8bd4c2b98f24591b46f59ef5b7a9e18", "tool": "Bitly", "notebook": "Get Clicks for a Bitlink", "action": "", "tags": ["#bitly", "#api", "#getclicks", "#bitlink", "#python", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to use the Bitly API to get the click counts for a specified link in an array based on a date.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb", "imports": ["requests", "naas", "json"], "updated_at": "", "image_url": ""}, {"objectID": "d4eda72f6942beabed764b0411c2d70a3d2841d82e9d26386ee0e3b185c99186", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by City", "action": "", "tags": ["#bitly", "#api", "#metrics", "#city", "#bitlink", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will return the city origins of click traffic for the specified link. This feature is only available for paid account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "59334b21ea4228991b77a580a1aaae1c1630d7f1386a8c933d06ca7ac3c459d9", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by Country", "action": "", "tags": ["#bitly", "#api", "#metrics", "#bitlink", "#country", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to use the Bitly API to get metrics for a Bitlink by Country.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb", "imports": ["requests", "naas", "pandas", "plotly.graph_objects", "dataprep.clean.clean_country", "dataprep.clean.clean_country", "json", "warnings"], "updated_at": "", "image_url": ""}, {"objectID": "495e8ac289e12e30a84012c1ce626f510ef6a88551618416ab311a12ddd18040", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by Devices", "action": "", "tags": ["#bitly", "#api", "#metrics", "#devices"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to use the Bitly API to get metrics for a Bitlink by devices. This endpoint is only available for paid account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb", "imports": ["requests", "pprint.pprint", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "27fe513fb49fdd22a120381d7c1a4f927b39395cf488ecce01bedb545a23f099", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by Referrers", "action": "", "tags": ["#bitly", "#api", "#metrics", "#bitlink", "#referrers", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to use the Bitly API to get metrics for a Bitlink by Referrers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb", "imports": ["requests", "pprint.pprint", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "b3fa30866ed0675034945aa524ab4cf0cdd9935b491ef7df58d789a7aa1717c4", "tool": "Bitly", "notebook": "Get a Clicks Summary for a Bitlink", "action": "", "tags": ["#bitly", "#api", "#clicks", "#summary", "#bitlink", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get a Clicks Summary for a Bitlink using the Bitly API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "40ce36dc1641790e5117bdab22021f520604f1c26bee66d5fe6d6fd685ed8ee3", "tool": "Bitly", "notebook": "Retrieve Bitlink", "action": "", "tags": ["#bitly", "#api", "#list", "#active", "#links", "#python", "#bitlink"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will return information for a specified bitlink using the Bitly API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Retrieve_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Retrieve_Bitlink.ipynb", "imports": ["requests", "json", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "aa9e096cfaf039d08eaa4194d361639e661083ff97b300d6fd2d9d4749c60eef", "tool": "Bitly", "notebook": "Update a Bitlink", "action": "", "tags": ["#bitly", "#api", "#update", "#bitlink", "#reference", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to update fields in the specified link using Bitly API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Update_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Update_a_Bitlink.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "bfc8dd18a5cb62ba07ffe255ff507cbb6e7d09de0f14feab596ad7718e28b7f1", "tool": "Boursorama", "notebook": "Get CDS", "action": "", "tags": ["#boursorama", "#finance", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a way to access and analyze CDS data from Boursorama.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Boursorama/Boursorama_Get_CDS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Boursorama/Boursorama_Get_CDS.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "916217867d00e933791e4bd89337ec26ce052f7e856663b80b8707fb16257d4e", "tool": "Boursorama", "notebook": "Get EURIBOR 3 MOIS", "action": "", "tags": ["#boursorama", "#euribor", "#pandas", "#read_html", "#finance", "#data"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to get EURIBOR 3 MOIS using pandas.read_html().", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "f969028b22c1a3a446445dd979298e843d9b00e67cfcdc6d9f0e0ca94ed9e8fa", "tool": "Bubble", "notebook": "Send data", "action": "", "tags": ["#bubble", "#naas_drivers", "#operations", "#snippet"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook allows users to easily send data through a secure, cloud-based platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bubble/Bubble_Send_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bubble/Bubble_Send_data.ipynb", "imports": ["naas_drivers.bubble"], "updated_at": "", "image_url": ""}, {"objectID": "d32e84a4975bcf6f6343720e6e7ab190036193ef0512dd09ce63387dcee3bfce", "tool": "CCXT", "notebook": "Calculate Support and Resistance", "action": "", "tags": ["#ccxt", "#bitcoin", "#trading", "#investors", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a guide to using the CCXT library to calculate support and resistance levels for cryptocurrency trading.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb", "imports": ["naas", "ccxt", "pandas", "datetime.datetime", "naas_drivers", "trendln", "plotly.tools", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "f91ca561288c0eb0c1d84e6a165300ce2af7db52fca7389f551767b209a2de24", "tool": "CCXT", "notebook": "Predict Bitcoin from Binance", "action": "", "tags": ["#ccxt", "#bitcoin", "#trading", "#investors", "#ai", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook uses the CCXT library to predict Bitcoin prices on the Binance exchange.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb", "imports": ["naas", "ccxt", "pandas", "datetime.datetime", "naas_drivers.plotly, prediction"], "updated_at": "", "image_url": ""}, {"objectID": "2d6f1440de0d6bb9e72dcc16e49e5046540faf27efb8768291a03fd510a777ce", "tool": "CSV", "notebook": "Read file", "action": "", "tags": ["#csv", "#pandas", "#read", "#opendata", "#johnshopkins", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a guide to reading and manipulating CSV files.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/CSV/CSV_Read_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/CSV/CSV_Read_file.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "eca872536f6468da2e40437dcddb02980432bbb5206dbfcb500aecf5bbe6764e", "tool": "CSV", "notebook": "Save file", "action": "", "tags": ["#csv", "#pandas", "#save", "#opendata", "#johnshopkins", "#investors", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to save a file in CSV format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/CSV/CSV_Save_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/CSV/CSV_Save_file.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "2fac04a0e47274af3af50087ce42c66a7c88cdc4d2187f530ae968310c7cefe9", "tool": "Canny", "notebook": "Create", "action": "", "tags": ["#canny", "#product", "#operations", "#snippet"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "description": "This notebook provides an easy-to-use interface for creating custom Canny edge detection filters.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Canny/Canny_Create.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Create.ipynb", "imports": ["requests", "json", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "e99b960cfb98cd5fe1eefc5ab9734d32cd7328846af6b8258321e40463768645", "tool": "Canny", "notebook": "Github issue update", "action": "", "tags": ["#canny", "#product", "#operations", "#snippet", "#github"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "description": "This notebook provides an automated way to keep track of Github issues and their updates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Canny/Canny_Github_issue_update.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Github_issue_update.ipynb", "imports": ["requests", "json", "github.Github", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "5f7c655a1a23609d607d4d123f44853440b27a11ac985de645279ef85c92db1a", "tool": "Canny", "notebook": "Read", "action": "", "tags": ["#canny", "#product", "#operations", "#snippet"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "description": "This notebook is a comprehensive guide to understanding and applying the Canny edge detection algorithm.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Canny/Canny_Read.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Read.ipynb", "imports": ["requests", "json", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "b5d3fc12c82fbcc5bfc6f310e38b0d4fd5270da588df0c8926fbacb000c99f54", "tool": "Celestrak", "notebook": "Satellites over time", "action": "", "tags": ["#celestrak", "#opendata", "#satellites", "#analytics", "#plotly"], "author": "Dumorya", "author_url": "https://github.com/Dumorya", "description": "This notebook provides a visual representation of the changing number of satellites in Earth's orbit over time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Celestrak/Celestrak_Satellites_over_time.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Celestrak/Celestrak_Satellites_over_time.ipynb", "imports": ["pandas", "plotly.express", "plotly.graph_objects", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "688e1d955c26c14cf79153c9ba1bfaf124451cc614bd2e48229eb64ef5534683", "tool": "Cityfalcon", "notebook": "Get data from API", "action": "", "tags": ["#cityfalcon", "#news", "#opendata", "#snippet", "#investors", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a guide to using the Cityfalcon API to access data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb", "imports": ["naas_drivers.cityfalcon"], "updated_at": "", "image_url": ""}, {"objectID": "0aa8bc599e4d5c5ed18242a663e9bddbcb379065d173c33908fa9d29cf0d7085", "tool": "Clockify", "notebook": "Add a new client", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to add a new client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Add_a_new_client.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Add_a_new_client.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e1eded982d49f9a550f7db5cfbf935d98e51bfed0d93c90121ddc84e4dac2b03", "tool": "Clockify", "notebook": "Add a new project", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to add a new project using Clockify API to a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Add_a_new_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Add_a_new_project.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fb1e32f0bf0dae62327dfc4282ebd8b8b3102727e3484a5ac9ec5c47cb78e959", "tool": "Clockify", "notebook": "Delete client", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to delete an existing client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Delete_client.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Delete_client.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d57352246f90d2636fbe59bbd56770cd15f64252f8f7f9d0495f907809369af8", "tool": "Clockify", "notebook": "Delete project", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to delete an existing project using Clockify API from a specific workspace. You can only delete archived project. Active project can not be deleted.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Delete_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Delete_project.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "889fc1d9060a7d6797b56f68349eabd2bedb1e4e9627fcb1ebac0236ceca3330", "tool": "Clockify", "notebook": "Find all users on workspace", "action": "", "tags": ["#clockify", "#workspace", "#users", "#find", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to find all users on a workspace using Clockify API.\nIt will return a dataframe with columns as follow:\n- id: This column stores an identifier or unique identifier associated with a user. It likely contains alphanumeric values that uniquely identify each user in the DataFrame.\n- email: This column stores the email addresses associated with the users in the DataFrame. It likely contains text values representing the email addresses of the users.\n- name: This column stores the names or titles associated with the users in the DataFrame. It likely contains text values representing the names of the users.\n- memberships: This column represents the memberships or group affiliations of the users. It likely contains a list or nested data structure that indicates the groups or memberships the users belong to.\n- profilePicture: This column stores the URLs or paths to the profile pictures of the users. It likely contains text values representing the image URLs or file paths.\n- activeWorkspace: This column represents the identifier or unique identifier of the active workspace for each user. It likely contains alphanumeric values that uniquely identify the active workspace.\n- defaultWorkspace: This column stores the identifier or unique identifier of the default workspace for each user. It likely contains alphanumeric values that uniquely identify the default workspace.\n- settings: This column stores user-specific settings or configurations. It likely contains nested data structures or dictionaries that hold various settings related to the user, such as the week start day and timezone.\n- status: This column indicates the status of the users, whether they are active or inactive. It likely contains text values such as \"ACTIVE\" or \"INACTIVE\".\n- customFields: This column stores custom fields or additional information specific to each user. It may contain nested data structures or lists that hold user-specific custom field values.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Find_all_users_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_all_users_on_workspace.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "27f82b7d0a5b14067a0ddf876dab8649394f189567eecf8a87d260783e7b44d8", "tool": "Clockify", "notebook": "Find clients on workspace", "action": "", "tags": ["#clockify", "#workspace", "#client", "#api", "#python", "#find"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to find clients on a workspace using the Clockify API. It will return a dataframe with columns as follow:\n- id: This column represents an identifier or unique identifier associated with a record or entity. It contains alphanumeric values that uniquely identify each row in the DataFrame.\n- name: This column stores the name or title associated with a particular record or entity. It likely contains text values representing the name of a person, object, or entity.\n- email: This column stores email addresses associated with the records in the DataFrame. It likely contains text values representing the email addresses of individuals or entities.\n- workspaceId: This column represents an identifier or unique identifier associated with a workspace. It likely contains alphanumeric values that uniquely identify each workspace.\n- archived: This column indicates whether a record or entity is archived or not. It likely contains boolean values (True or False), with True indicating that the record is archived and False indicating that it is not.\n- address: This column stores addresses associated with the records in the DataFrame. It likely contains text values representing physical or postal addresses.\n- note: This column stores additional notes or comments related to the records in the DataFrame. It may contain text values providing extra information or details about a particular record or entity.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Find_clients_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_clients_on_workspace.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "78681e3bc7de22fcb89133eb27fcb13afb59ba5dc01a777f4b0fafb2fda819de", "tool": "Clockify", "notebook": "Find tasks on project", "action": "", "tags": ["#clockify", "#task", "#project", "#find", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will help you find tasks on a project using Clockify API. It will return a dataframe with columns as follow:\n- id: This column stores an identifier or unique identifier associated with a task. It likely contains alphanumeric values that uniquely identify each task in the DataFrame.\n- name: This column stores the names or titles associated with the tasks. It likely contains text values representing the names or titles of the tasks.\n- projectId: This column represents the identifier or unique identifier of the project to which each task belongs. It likely contains alphanumeric values that uniquely identify the project.\n- assigneeIds: This column stores the identifiers or unique identifiers of the assignees assigned to the tasks. It likely contains a list or nested data structure that indicates the assignees associated with each task.\n- assigneeId: This column stores the identifier or unique identifier of a single assignee assigned to the task. It likely contains a single value indicating the assignee for the task.\n- userGroupIds: This column stores the identifiers or unique identifiers of the user groups associated with the tasks. It likely contains a list or nested data structure that indicates the user groups associated with each task.\n- estimate: This column stores the estimate or estimated duration for each task. It likely contains a time duration format, such as \"PT0S\" (indicating zero duration).\n- status: This column indicates the status of the tasks, whether they are active or inactive. It likely contains text values such as \"ACTIVE\" or \"INACTIVE\".\n- duration: This column stores the actual duration or time taken for each task. It likely contains a time duration format, such as \"PT2H42M1S\" (indicating a duration of 2 hours, 42 minutes, and 1 second).\n- billable: This column indicates whether the task is billable or not. It likely contains boolean values (True or False), with True indicating that the task is billable and False indicating that it is not.\n- hourlyRate: This column stores the hourly rate associated with the task. It likely contains numerical values representing the rate for the task, such as an hourly billing rate.\n- costRate: This column stores the cost rate associated with the task. It likely contains numerical values representing the cost rate for the task, such as the rate at which the task incurs costs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Find_tasks_on_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_tasks_on_project.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "a0b6e7901a2279ecf1696d79f06b9f10b174ad1d6e1af1afdf173c4aefe92635", "tool": "Clockify", "notebook": "Get all my workspaces", "action": "", "tags": ["#clockify", "#api", "#workspace", "#get", "#python", "#rest"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to get all workspaces of a user using the Clockify API and return a dict.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_all_my_workspaces.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_all_my_workspaces.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "26994336a93d1f5c9ce8b985beda6b15c3739af1bb21802a977f33b5083da2a5", "tool": "Clockify", "notebook": "Get all projects on workspace", "action": "", "tags": ["#clockify", "#api", "#projects", "#workspace", "#get", "#python"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to get all projects on a workspace using the Clockify API and return a dict.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_all_projects_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_all_projects_on_workspace.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "dde1e297a4f5047b497f5ff860a3d36770571578f3c400c2528091607ce82058", "tool": "Clockify", "notebook": "Get client by ID", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get a client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_client_by_ID.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_client_by_ID.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e0be8e4e76433300e789b377ab059f135ee55e69afac5dddbe0d479c67696650", "tool": "Clockify", "notebook": "Get project by ID", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get a project using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_project_by_ID.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_project_by_ID.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "b40e1e0366358c58a01662a2ec775ec47ecfb7a75fb0790826c477378b0e6657", "tool": "Clockify", "notebook": "Get time entries for a user on workspace", "action": "", "tags": ["#clockify", "#timeentry", "#api", "#python", "#workspace", "#user"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get time entries for a user on a workspace using Clockify API. It will return a dataframe with columns as follow:\n- id: This column stores an identifier or unique identifier associated with a time entry. It likely contains alphanumeric values that uniquely identify each time entry in the DataFrame.\n- description: This column stores the description or details associated with the time entry. It likely contains text values representing a description of the activity or task performed during the time entry.\n- tagIds: This column stores the identifiers or unique identifiers of the tags associated with the time entry. It likely contains a list or nested data structure that indicates the tags associated with the time entry.\n- userId: This column represents the identifier or unique identifier of the user who created the time entry. It likely contains alphanumeric values that uniquely identify the user.\n- billable: This column indicates whether the time entry is billable or not. It likely contains boolean values (True or False), with True indicating that the time entry is billable and False indicating that it is not.\n- taskId: This column stores the identifier or unique identifier of the task associated with the time entry. It likely contains alphanumeric values that uniquely identify the task.\n- projectId: This column represents the identifier or unique identifier of the project associated with the time entry. It likely contains alphanumeric values that uniquely identify the project.\n- timeInterval_start: This column stores the start timestamp of the time interval for the time entry. It likely contains timestamp values indicating when the time entry started.\n- timeInterval_end: This column stores the end timestamp of the time interval for the time entry. It likely contains timestamp values indicating when the time entry ended.\n- timeInterval_duration: This column stores the duration of the time entry. It likely contains a time duration format, such as \"PT37M16S\" (indicating a duration of 37 minutes and 16 seconds).\n- workspaceId: This column represents the identifier or unique identifier of the workspace associated with the time entry. It likely contains alphanumeric values that uniquely identify the workspace.\n- isLocked: This column indicates whether the time entry is locked or not. It likely contains boolean values (True or False), with True indicating that the time entry is locked and False indicating that it is not.\n- customFieldValues: This column stores custom field values associated with the time entry. It likely contains nested data structures or lists that hold custom field values specific to the time entry.\n- type: This column indicates the type or category of the time entry. It likely contains text values representing the type of activity or task associated with the time entry.\n- kioskId: This column stores the identifier or unique identifier of the kiosk associated with the time entry. It likely contains alphanumeric values that uniquely identify the kiosk.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "55ff26f7546527d35891d67642ff3558b55cbe046d7c2611c52da19231ce24bd", "tool": "Clockify", "notebook": "Remove user from workspace", "action": "", "tags": ["#clockify", "#workspace", "#remove", "#user", "#api", "#rest"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook explains how to remove a user from a workspace using the Clockify API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Remove_user_from_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Remove_user_from_workspace.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "40a719b2a9fd405a4bac1dd9864c9832a49dcbab49584008dbede718c03e8ee7", "tool": "Clockify", "notebook": "Update client", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to update a client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Update_client.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Update_client.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "00cfb28fd1d25a93635ff29385838c7c9f14d989cbb35e6a77b60c5d156718ce", "tool": "Clockify", "notebook": "Update project", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to update a project using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Update_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Update_project.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c5fcb9a6ae84c92e74a8dd8b916b7741c133dc3e1efc59b1a730f711ae61f834", "tool": "Cloud Mercato", "notebook": "Compare VM pricing", "action": "", "tags": ["#cloud", "#infrastruture", "#pricing", "#vm", "#iaas", "#analytics", "#compute"], "author": "Anthony Monthe", "author_url": "https://www.linkedin.com/in/anthonymonthe/", "description": "Cloud Mercato is an online platform that allows users to compare virtual machine pricing from different cloud providers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Cloud%20Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Cloud%20Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb", "imports": ["requests", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a420b595b58b994e4a8054607be73c2945ba0b41c37a582aac12836ae0fb9cef", "tool": "Creditsafe", "notebook": "Get Company Credit Report", "action": "", "tags": ["#creditsafe", "#api", "#enterprise", "#integrations", "#company", "#creditreport"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to use the Creditsafe API to get a company credit report.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb", "imports": ["requests", "naas", "pprint.pprint", "json"], "updated_at": "", "image_url": ""}, {"objectID": "99dc0ea3413e44582f05edc31fb2079f4e0778981f68d58246b80aae2b23be24", "tool": "D-Tale", "notebook": "Visualize dataframe", "action": "", "tags": ["#csv", "#pandas", "#snippet", "#read", "#dataframe", "#visualize", "#dtale", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "D-Tale is a tool that allows users to quickly and easily visualize dataframes in an interactive and intuitive way.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/D-Tale/D-Tale_Visualize_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/D-Tale/D-Tale_Visualize_dataframe.ipynb", "imports": ["pandas", "dtale", "dtale.app"], "updated_at": "", "image_url": ""}, {"objectID": "27f443089a00055bee93b043b9b42d368258d639ffac4a99a34bcac72a8c6f06", "tool": "Dash", "notebook": "Add a customisable sidebar", "action": "", "tags": ["#dash", "#offcanvas", "#sidebar", "#customisable", "#component", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook demonstrates how to use the Offcanvas component to add a customisable sidebar to your apps. It is usefull for organisations that need to add a sidebar to their Dash apps.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Add_a_customisable_sidebar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Add_a_customisable_sidebar.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.Input, Output, State, html"], "updated_at": "", "image_url": ""}, {"objectID": "800cd47399958fce0bb44cc5202abf7b490ca015760efa4088ac69124bf4787e", "tool": "Dash", "notebook": "Create Datatable With Dropdown", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Ismail Chihab", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "description": "Create a basic table that can be updated through a dcc.dropdown menu.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Datatable_With_Dropdown.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Datatable_With_Dropdown.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, dcc, dash_table", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "e9818d91a4e391da8889aa702a1be52ddf216175ed60dd4ce1b70b4b4b817cd7", "tool": "Dash", "notebook": "Create Dropdown Callback", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Create a basic dropdown, provide options and a value to dcc.Dropdown in that order.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Dropdown_Callback.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Dropdown_Callback.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State, dcc"], "updated_at": "", "image_url": ""}, {"objectID": "0c5da456dd8bf84ccd405188c1a60872fa082aae7a99567911a59be09a5b9fcd", "tool": "Dash", "notebook": "Create Dropdown with multiples output callbacks", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Create a basic dropdown, provide options and a value to dcc.Dropdown in that order.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State, dcc, dash_table", "plotly.graph_objs", "dash.exceptions.PreventUpdate"], "updated_at": "", "image_url": ""}, {"objectID": "68a887dfaaa80942ddb1a232171e004e74e6ef6db41fa8bbdb0454c220e10f3e", "tool": "Dash", "notebook": "Create Interactive Plot", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "description": "This notebook creates an interactive plot using Dash app infrastructure.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Interactive_Plot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Interactive_Plot.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express", "io", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "1774258ba69e802f126a725e1df40f6af2f051dcc113cb134a808e1bbfbc2236", "tool": "Dash", "notebook": "Create Navbar", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#navbar", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "A simple app demonstrating how to manually construct a navbar with a customised layout using the Navbar component and the supporting Nav, NavItem, NavLink, NavbarBrand, and NavbarToggler components.\n\nRequires dash-bootstrap-components 0.3.0 or later", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Navbar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Navbar.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State"], "updated_at": "", "image_url": ""}, {"objectID": "d4243fd641f0b712b1154b26fc159e3c1bb7df479750d063f11935eef3874ac6", "tool": "Dash", "notebook": "Create Navbar board", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#navbar", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to create a customizable navigation bar for their website or application.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Navbar_Dashboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Navbar_Dashboard.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State, dcc"], "updated_at": "", "image_url": ""}, {"objectID": "d195aeb80452c89e129ea46a655d09b2460d9fecc0f9770ce742bf3fc6cff0e9", "tool": "Dash", "notebook": "Create Navbar Search", "action": "", "tags": ["#dash", "#snippet", "#dashboard", "#plotly", "#dash", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a tutorial on how to create a searchable navigation bar using the Dash library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Navbar_Search.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Navbar_Search.ipynb", "imports": ["dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc", "dash.dependencies.Input, Output", "os"], "updated_at": "", "image_url": ""}, {"objectID": "4b333f42522abb0ce297502127eba3288b9cd14336f94c563c7523156c545ceb", "tool": "Dash", "notebook": "Create button to refresh page", "action": "", "tags": ["#dash", "#python", "#button", "#refresh", "#page", "#stackoverflow"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to create a button in Dash to refresh the page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_button_to_refresh_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_button_to_refresh_page.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Output, Input, State"], "updated_at": "", "image_url": ""}, {"objectID": "5d0ec204e1adc070996a900d4212c1d45f5925dc25a522b3e3f45b857e1e6f54", "tool": "Dash", "notebook": "Create conditional formatting on HTML element", "action": "", "tags": ["#dash", "#html", "#conditional", "#formatting", "#element", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create conditional formatting of an HTML element using Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Output, Input, State"], "updated_at": "", "image_url": ""}, {"objectID": "e8bf48a389426d3ffba1975c7da90f59b8784773a0440500b8d64869357abfc7", "tool": "Dash", "notebook": "Create conditional formatting on number value", "action": "", "tags": ["#dash", "#html", "#conditional", "#formatting", "#element", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create conditional formatting of an HTML element using Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Output, Input, State"], "updated_at": "", "image_url": ""}, {"objectID": "0884edbacf735f45bc43e534555b0b0c3293fcfe22599d60ec7a9461e2e52e7e", "tool": "Dash", "notebook": "Create download button", "action": "", "tags": ["#dash", "#button", "#download", "#create", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create a download button with Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_download_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_download_button.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html"], "updated_at": "", "image_url": ""}, {"objectID": "8724d5174822ed9a031f96f8bb87140b72d60f7a27a664065d744aab70131681", "tool": "Dash", "notebook": "Create loading button", "action": "", "tags": ["#dash", "#plotly", "#loading", "#button", "#python", "#web"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to create a loading button with Dash Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_loading_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_loading_button.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "dash.Dash, html, dcc, callback, Output, Input, State", "time"], "updated_at": "", "image_url": ""}, {"objectID": "dd2c5fe6315560fa638685fb739dc1b4a6d39089220f430d269c01b78c7dd953", "tool": "Dash", "notebook": "Create spinner button", "action": "", "tags": ["#dash", "#button", "#download", "#create", "#python", "#library", "#spinner"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create a spinner button with Dash. The `Spinner` component can be used inside buttons to indicate that an action is currently processing or taking place.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_spinner_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_spinner_button.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html"], "updated_at": "", "image_url": ""}, {"objectID": "162e8064b2a3e2bb21972a90cb77673df932c178555c3a985b7218c3c2786444", "tool": "Dash", "notebook": "Deploy app in Naas", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook provides a step-by-step guide to deploying an app with Dash on Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Deploy_app_in_Naas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Deploy_app_in_Naas.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc", "plotly.express", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "477b2f627d6fc1d842945d36a8661d2f63c69d27ec2afe9612e5ccbf54aaba0a", "tool": "Dash", "notebook": "LinkedIn posts metrics dashboard", "action": "", "tags": ["#dash", "#linkedin", "#dashboard", "#plotly", "#naas", "#asset", "#automation", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a dashboard to track and analyze metrics related to LinkedIn posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb", "imports": ["os", "os.environ", "pandas", "naas", "datetime.datetime", "naas_drivers.gsheet", "plotly.graph_objects", "plotly.express", "plotly.subplots.make_subplots", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components._components.Container.Container", "dash.exceptions.PreventUpdate"], "updated_at": "", "image_url": ""}, {"objectID": "950b5ed31417ee13e856d45afc141338d870a01592a83e9f71131ed42d8d2f02", "tool": "Dash", "notebook": "Plotly Dynamic Link", "action": "", "tags": ["#dash", "#plotly", "#naas", "#analytics"], "author": "Oguz Akif Tufekcioglu", "author_url": "https://www.linkedin.com/in/oguzakiftufekcioglu/", "description": "This notebook provides an interactive way to explore data with Dash and Plotly, allowing users to create dynamic links between visualizations.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Plotly_Dynamic_Link.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Plotly_Dynamic_Link.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "webbrowser", "dash.dependencies.Input, Output", "dash.html, dcc", "dash.exceptions.PreventUpdate", "plotly.express", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "506d501ebff0f9b3a6ab229a88a2464ece6c09bfdd29e7b5ce5d43731c3a3c5d", "tool": "Dash", "notebook": "Upload mutiples CSV Excel", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#upload", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to upload multiple CSV and Excel files to create interactive visualizations with Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.Dash, dcc, html, Input, Output, State", "pandas", "base64", "datetime", "io", "dash.dcc, html, dash_table"], "updated_at": "", "image_url": ""}, {"objectID": "61bc9b898dcd8659c49a5ac5fe46a212b5f7217286b9bccdbfec9183f9cd9732", "tool": "Dask", "notebook": "Parallelize operations on multiple csvs", "action": "", "tags": ["#csv", "#pandas", "#snippet", "#read", "#dataframe", "#parallel", "#parallelize", "#dask", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to use Dask to efficiently process and analyze multiple CSV files in parallel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb", "imports": ["os", "graphviz", "graphviz", "dask.dataframe", "dask.dataframe", "pandas", "glob"], "updated_at": "", "image_url": ""}, {"objectID": "6a8d408c93bbef46e9136bfea9c5e3416c18cccde9528f35a88f44c763960c08", "tool": "Data.gouv.fr", "notebook": "COVID19 - FR - Entr\u00e9es et sorties par r\u00e9gion pour 1 million d'hab.", "action": "", "tags": ["#data.gouv.fr", "#opendata", "#france", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an analysis of the entry and exit of one million people in each region of France due to the COVID-19 pandemic.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Data.gouv.fr/COVID19%20-%20%20FR%20-%20Entr%C3%A9es%20et%20sorties%20par%20r%C3%A9gion%20pour%201%20million%20d%27hab..ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Data.gouv.fr/COVID19%20-%20%20FR%20-%20Entr%C3%A9es%20et%20sorties%20par%20r%C3%A9gion%20pour%201%20million%20d%27hab..ipynb", "imports": ["requests", "pandas", "datetime.datetime, timedelta", "plotly.graph_objects", "plotly.subplots.make_subplots", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "2725c6bbe45eba9e5d58de0a89d96d7ad467ef8dbe42a084dbfb28b3328a03aa", "tool": "Data.gouv.fr", "notebook": "R\u00e9cup\u00e9ration donn\u00e9es l\u00e9gales entreprise", "action": "", "tags": ["#data.gouv.fr", "#snippet", "#naas", "#societe", "#opendata"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to retrieving legal data from data.gouv.fr for businesses.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Data.gouv.fr/Data.gouv.fr_R%C3%A9cup%C3%A9ration_donn%C3%A9es_l%C3%A9gales_entreprise.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Data.gouv.fr/Data.gouv.fr_R%C3%A9cup%C3%A9ration_donn%C3%A9es_l%C3%A9gales_entreprise.ipynb", "imports": ["requests", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "898c8b8d33cadf517a47046cf51115935b579a8a1797b5c0b098af29e2075b8f", "tool": "Deepl", "notebook": "Translated string to txt", "action": "", "tags": ["#deepl", "#translate", "#text", "#txt", "#api", "#string"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook show how to translate a string with Deepl API and save it in a txt file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Deepl/Deepl_Translated_string_to_txt.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Deepl/Deepl_Translated_string_to_txt.ipynb", "imports": ["naas", "deepl", "deepl"], "updated_at": "", "image_url": ""}, {"objectID": "8f82e653557ca28f058454ad86c1553add053a2e1d00829c8a1a7cc052d5df90", "tool": "Draft Kings", "notebook": "Get MLB Moneylines", "action": "", "tags": ["#draftkings", "#mlb", "#betting", "#python", "#analytics", "#automation", "#sports", "#sports_betting", "#opendata", "#notification", "#email"], "author": "JA Williams", "author_url": "https://www.linkedin.com/in/ja-williams-529517187/", "description": "This notebook provides an analysis of Major League Baseball moneylines from DraftKings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Draft%20Kings/Draft_Kings_Get_MLB_Moneylines.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Draft%20Kings/Draft_Kings_Get_MLB_Moneylines.ipynb", "imports": ["naas", "requests", "pandas", "bs4.BeautifulSoup", "naas_drivers.emailbuilder", "datetime.datetime", "pytz"], "updated_at": "", "image_url": ""}, {"objectID": "ceb5a587fbb4c9f40cba42de520895d00c40bba339419b224bf452d40c83e02c", "tool": "Draft Kings", "notebook": "Get NBA Moneylines", "action": "", "tags": ["#draftkings", "#nba", "#betting", "#python", "#analytics", "#automation", "#sports", "#sports_betting", "#opendata", "#notification", "#email"], "author": "JA Williams", "author_url": "https://www.linkedin.com/in/ja-williams-529517187/", "description": "This notebook provides an analysis of NBA Moneylines from Draft Kings to help you make informed betting decisions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Draft%20Kings/Draft_Kings_Get_NBA_Moneylines.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Draft%20Kings/Draft_Kings_Get_NBA_Moneylines.ipynb", "imports": ["naas", "requests", "pandas", "bs4.BeautifulSoup", "naas_drivers.emailbuilder", "datetime.datetime", "pytz"], "updated_at": "", "image_url": ""}, {"objectID": "543ef2600b507345bc7b6cd2db8351aaed78fab51441bd3fb69d88cc5ec3f5e2", "tool": "EM-DAT", "notebook": "Natural disasters", "action": "", "tags": ["#em-dat", "#emdat", "#opendata", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "In 1988, the Centre for Research on the Epidemiology of Disasters (CRED) launched the Emergency Events Database (EM-DAT). [EM-DAT](https://www.emdat.be/) was created with the initial support of the World Health Organisation (WHO) and the Belgian Government.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/EM-DAT/EM-DAT_natural_disasters.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/EM-DAT/EM-DAT_natural_disasters.ipynb", "imports": ["pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "30d15767a0d67fbb7c1aa3b0d8047bf5075074c348588a11dc34cfdf9bf52161", "tool": "Elasticsearch", "notebook": "Connect to server", "action": "", "tags": ["#elasticsearch", "#elastic", "#search", "#snippet", "#operations"], "author": "Ebin Paulose", "author_url": "https://www.linkedin.com/in/ebinpaulose/", "description": "### 1. Prerequisites", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Elasticsearch/Elasticsearch_Connect_to_server.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Elasticsearch/Elasticsearch_Connect_to_server.ipynb", "imports": ["elasticsearchconnector.ElasticsearchConnector"], "updated_at": "", "image_url": ""}, {"objectID": "ba28d491fd759da0887e597f60ac8ca271d9e76837bd293f62d2557875a1d594", "tool": "Excel", "notebook": "Apply Custom Styles", "action": "", "tags": ["#excel", "#openpyxl", "#font", "#border", "#background", "#naas", "#finance", "#snippet"], "author": "S\u00e9bastien Grech", "author_url": "https://www.linkedin.com/in/s%C3%A9bastien-grech-4433a7150/", "description": "This notebook provides instructions on how to apply custom styles to an Excel spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Apply_Custom_Styles.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Apply_Custom_Styles.ipynb", "imports": ["naas", "openpyxl.load_workbook", "openpyxl.cell.Cell", "openpyxl.styles.Color, PatternFill, Font, Border", "openpyxl.styles.borders.Border, Side"], "updated_at": "", "image_url": ""}, {"objectID": "d90301be264b3cf72aeee61ab98051d15815adda6f6e494fc0587923ba51118d", "tool": "Excel", "notebook": "Consolidate files", "action": "", "tags": ["#excel", "#pandas", "#read", "#save", "#naas", "#asset", "#finance", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a comprehensive guide to consolidating multiple Excel files into one.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Consolidate_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Consolidate_files.ipynb", "imports": ["pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "217fff1a4dbbe5cdb391c88dd2e230eef12ddbf46fc6b2a4b7e05c49db3758fb", "tool": "Excel", "notebook": "Get dynamic active range", "action": "", "tags": ["#excel", "#openpyxl", "#active-range", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a method for dynamically retrieving the active range of an Excel worksheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Get_dynamic_active_range.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Get_dynamic_active_range.ipynb", "imports": ["openpyxl.load_workbook", "openpyxl.utils.get_column_letter"], "updated_at": "", "image_url": ""}, {"objectID": "b92ea8d1185531f94864792601a94a86b90d79e8d8da49977d1ffdc87a6cce41", "tool": "Excel", "notebook": "List sheets in workbook", "action": "", "tags": ["#excel", "#list", "#sheets", "#workbook", "#data", "#analysis"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will list the sheet's name in an Excel workbook.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_List_sheets_in_workbook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_List_sheets_in_workbook.ipynb", "imports": ["openpyxl", "os"], "updated_at": "", "image_url": ""}, {"objectID": "32e6a2bbb504fb622cc153607a48c61677401ab357a4d2117b6b3820be4fbd69", "tool": "Excel", "notebook": "Read file", "action": "", "tags": ["#excel", "#pandas", "#read", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook reads an Excel file and allows users to manipulate the data within it.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Read_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Read_file.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "89dbd7dbd81efb97de7af6a3f612379e28d249f769af1c6aaec979867b4c796b", "tool": "Excel", "notebook": "Save file", "action": "", "tags": ["#excel", "#pandas", "#save", "#opendata", "#yahoofinance", "#naas_drivers", "#finance", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook allows users to save their Excel files quickly and easily.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Save_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Save_file.ipynb", "imports": ["pandas", "naas_drivers.yahoofinance"], "updated_at": "", "image_url": ""}, {"objectID": "82f6147c6bace8c4fe20f3c99ff957454a2ff4a331301a7201a9f3550feb508b", "tool": "FAO", "notebook": "Consumer price indice", "action": "", "tags": ["#fao", "#opendata", "#food", "#analytics", "#plotly"], "author": "Dereck DANIEL", "author_url": "https://github.com/DANIEL-Dereck", "description": "This notebook provides an analysis of the changes in consumer prices over time as measured by the Food and Agriculture Organization's Consumer Price Index.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FAO/FAO_Consumer_price_indice.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FAO/FAO_Consumer_price_indice.ipynb", "imports": ["requests, zipfile, io", "matplotlib.pyplot", "naas_drivers", "pandas", "plotly.express", "csv", "codecs", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "097bbecb865851c847e60decdb392721feca4070a51c0ee2a95069f1b539e0a7", "tool": "FEC", "notebook": "Creer un dashboard PowerBI", "action": "", "tags": ["#fec", "#powerbi", "#dataviz", "#analytics", "#finance"], "author": "Alexandre STEVENS", "author_url": "https://www.linkedin.com/in/alexandrestevenspbix/", "description": "This notebook provides instructions for creating a PowerBI dashboard to visualize Federal Election Commission (FEC) data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb", "imports": ["pandas", "datetime.datetime, timedelta", "os", "re", "naas", "json"], "updated_at": "", "image_url": ""}, {"objectID": "05f3e5c7ae59b593be99118e8041cef4b465f18e633b6f8afc3b889762a1bb58", "tool": "FEC", "notebook": "Lecture des fichiers", "action": "", "tags": ["#fec", "#lecture", "#fichiers", "#python", "#data", "#analyse"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to read files with Python and how it is usefull for organization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Lecture_des_fichiers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Lecture_des_fichiers.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "ae95a038ed1b23ff84eb40e19039601cba8278c3d969caa4124defd23ecdca63", "tool": "FEC", "notebook": "Visualiser Bilan Treemap", "action": "", "tags": ["#fec", "#plotly", "#treemap", "#snippet", "#dataviz"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Ce notebook affiche les \u00e9l\u00e9ments du bilan sous forme de graphique treemap. Le graphique \"treemap\" est tr\u00e8s utile pour montrer la r\u00e9partition des actifs et des passifs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Bilan_Treemap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Bilan_Treemap.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f7c01654a85e3e8cfadc6c93c2c38c27b13bf29df99a6094094bae4462f19abc", "tool": "FEC", "notebook": "Visualiser Charges Horizontal Barchart", "action": "", "tags": ["#fec", "#plotly", "#horizontalbarchart", "#visualisation", "#charges", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Ce notebook vous permettra de visualiser les charges de votre entreprise \u00e0 l'aide d'un barchart horizontal.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb", "imports": ["plotly.graph_objects", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "6741d446a829e89f2b656fe139e0319b2cd7c49feb3643bb10209e4dfdfe9d2d", "tool": "FEC", "notebook": "Visualiser Comparer Ventes Line Chart", "action": "", "tags": ["#fec", "#plotly", "#naas", "#snippet", "#operations", "#linechart"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "Ce notebook vous permettra de visualiser et comparer les ventes de votre entreprise pour les p\u00e9riodes N et N-1 \u00e0 l'aide de deux courbes de tendance. Vous pourrez facilement voir les tendances et les diff\u00e9rences entre les deux p\u00e9riodes pour prendre des d\u00e9cisions \u00e9clair\u00e9es pour am\u00e9liorer vos ventes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas", "random"], "updated_at": "", "image_url": ""}, {"objectID": "d73ae271b1557432c42c76c41c62f94628dd97120e11e41b0f1c0f0eee97a9c5", "tool": "FEC", "notebook": "Visualiser Tr\u00e9sorerie Barline Chart", "action": "", "tags": ["#fec", "#plotly", "#naas", "#snippet", "#operations", "#barline"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "Ce notebook vous permettra de visualiser la tr\u00e9sorerie de votre entreprise \u00e0 l'aide d'un diagramme de barres. Vous pourrez facilement suivre les entr\u00e9es et les sorties d'argent, ce qui vous aidera \u00e0 mieux comprendre la situation financi\u00e8re de votre entreprise.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Tr%C3%A9sorerie_Barline_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Tr%C3%A9sorerie_Barline_Chart.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas", "random"], "updated_at": "", "image_url": ""}, {"objectID": "3d5d98e21d25b8ffe3b8c6deb3b9d8beecba5a65754590a020591220885efdd0", "tool": "FED", "notebook": "Visualize Inflation Rate", "action": "", "tags": ["#fed", "#inflation_rate", "#vizualization", "#plotly"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook vizualize the inflation rate of the US using plotly and fred api", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FED/FED_Visualize_Inflation_Rate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FED/FED_Visualize_Inflation_Rate.ipynb", "imports": ["naas", "pandas", "plotly.express", "fredapi.Fred", "fredapi.Fred"], "updated_at": "", "image_url": ""}, {"objectID": "3bf073466b39d2c379ef627157f0279dece8ae6a7edb3238fc59b4282a76417a", "tool": "FTP", "notebook": "S Connect", "action": "", "tags": ["#ftp", "#ftps", "#file", "#naas_drivers", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a guide to setting up an FTP connection to securely transfer files between two computers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTPS_Connect.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTPS_Connect.ipynb", "imports": ["naas_drivers.ftp"], "updated_at": "", "image_url": ""}, {"objectID": "69af686c106175459bb5ebbe8514346705fe801d27fdfd2f8ce9956d411fc755", "tool": "FTP", "notebook": "Connect", "action": "", "tags": ["#ftp", "#file", "#naas_drivers", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to connect to an FTP server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTP_Connect.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTP_Connect.ipynb", "imports": ["naas_drivers.ftp"], "updated_at": "", "image_url": ""}, {"objectID": "b17b56d2b058f53c97a81c8cd360ad2fcc3a6f08d49c9a493fa8a6fd92127173", "tool": "FTP", "notebook": "Get file", "action": "", "tags": ["#ftp", "#file", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook retrieves a file from an FTP server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTP_Get_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTP_Get_file.ipynb", "imports": ["naas_drivers.ftp"], "updated_at": "", "image_url": ""}, {"objectID": "a228c9862a9e8eb6ff9cad6f815931ec3d02927ee30a1123dfe647d9836b2b05", "tool": "FTP", "notebook": "Send file", "action": "", "tags": ["#ftp", "#file", "#naas_drivers", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to securely transfer files to a remote server using the File Transfer Protocol (FTP).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTP_Send_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTP_Send_file.ipynb", "imports": ["naas_drivers.ftp"], "updated_at": "", "image_url": ""}, {"objectID": "d81834f3139bb9d206b4f2e2248280d5de152a4eff80dd9c2012832b7080367f", "tool": "Faker", "notebook": "Anonymize Address from dataframe", "action": "", "tags": ["#faker", "#operations", "#snippet", "#database", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to anonymize address data from a dataframe using the Faker library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Faker/Faker_Anonymize_Address_from_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Faker/Faker_Anonymize_Address_from_dataframe.ipynb", "imports": ["faker.Faker", "faker.Faker", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "58a9c428e21814107d47582ef149ba3f79b5f26652ec3e6540d894662f3dd956", "tool": "Faker", "notebook": "Anonymize Personal Names from dataframe", "action": "", "tags": ["#faker", "#operations", "#snippet", "#database", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to anonymize personal names from a dataframe using the Faker library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb", "imports": ["faker.Faker", "faker.Faker", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "25c79c072793ed9689fec890977052fa9dd7977df1e8fb6e9832aa77df17f10f", "tool": "Formant", "notebook": "Query Device Network", "action": "", "tags": ["#formant", "#matplotlib", "#notification", "#email", "#image"], "author": "Nicolas Binford", "author_url": "https://www.linkedin.com/in/nicolasbinford", "description": "This notebook queries network data over a period of time from a Formant device, graphs it, and emails the images.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Formant/Formant_Query_Device_Network.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Formant/Formant_Query_Device_Network.ipynb", "imports": ["datetime.datetime, timedelta", "dateutil.parser", "numpy", "matplotlib.pyplot", "os", "naas", "formant.sdk.cloud.v2.Client", "formant.sdk.cloud.v2.formant_admin_api_client.models.device_query.(", "formant.sdk.cloud.v2.formant_admin_api_client.models.event_query.(", "formant.sdk.cloud.v2.formant_admin_api_client.models.event_list_response.(", "formant.sdk.cloud.v2.formant_query_api_client.models.query.Query"], "updated_at": "", "image_url": ""}, {"objectID": "b8a92a0e4b6e40db304564f999566443fb35e93df716ab4be5021aabba8230ee", "tool": "GitHub", "notebook": "Add new issues as page in Notion database", "action": "", "tags": ["#github", "#notion", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows users to add new GitHub issues as pages in a Notion database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb", "imports": ["naas", "naas_drivers.notion, github"], "updated_at": "", "image_url": ""}, {"objectID": "bcda82e2ccc375448f59bfea7ab1cc6a9c5e3388650e69034914e132319a5924", "tool": "GitHub", "notebook": "Add new member to team", "action": "", "tags": ["#github", "#teams", "#snippet", "#operations", "#invitations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides instructions on how to add a new member to a GitHub team.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Add_new_member_to_team.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_new_member_to_team.ipynb", "imports": ["requests", "naas_drivers.github", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "10bd58b431807c01460f0309cd7ee2b2a7e2a61e38cbabc60c0fc2b439b9d309", "tool": "GitHub", "notebook": "Add or update team membership for a user", "action": "", "tags": ["#github", "#teams", "#members", "#api", "#rest", "#python"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook add or update team membership for a user.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "9a285091900a306e1d94106e8130989f033c65589f2bc28dc7515436d73a5af4", "tool": "GitHub", "notebook": "Clone repository", "action": "", "tags": ["#github", "#snippet", "#operations", "#repository"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "**References:**\n- [GitHub Documentation - Cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Clone_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_repository.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "ff694fb2b2ebce38feccd3e1bef21019cdb9994ae3cf4f6fdc0ab7e317c15f22", "tool": "GitHub", "notebook": "Clone repository and switch branch", "action": "", "tags": ["#github", "#clone", "#repository", "#branch", "#switch", "#git"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to clone a repository from GitHub and switch to a specific branch.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "6bba57317ecb03136235cc932153d2657c0ddffeb2ea0290584824b427ae4d76", "tool": "GitHub", "notebook": "Close issue", "action": "", "tags": ["#github", "#issues", "#update", "#rest", "#api", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to close an issue on GitHub using the REST API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Close_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Close_issue.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "243aca01f02c1bd1deb2c0157c3fce1ea04ac03c9e2f8df73d9cd04128dafc90", "tool": "GitHub", "notebook": "Create Repo", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Kanishk Pareek", "author_url": "https://in.linkedin.com/in/kanishkpareek/", "description": "This notebook provides instructions on how to create a repository on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_Repo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_Repo.ipynb", "imports": ["requests", "json"], "updated_at": "", "image_url": ""}, {"objectID": "cffce74b26b67e98eceee05e167b0db356b2dd610bd6e82d7a8e28e2c50398a9", "tool": "GitHub", "notebook": "Create an issue comment", "action": "", "tags": ["#github", "#issue", "#comment", "#api", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to add a comment to an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_an_issue_comment.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_an_issue_comment.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d735705c15fc17370b8e6a4cb688184c65210cbb249e2466dfa2b754b47b07b9", "tool": "GitHub", "notebook": "Create issue", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to create an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_issue.ipynb", "imports": ["github.Github"], "updated_at": "", "image_url": ""}, {"objectID": "58d4c2b5a700d444c161aa052156ca47ffb7642a2e44c771125cac9a6fe04edc", "tool": "GitHub", "notebook": "Create leaderboard of contributors", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#leaderboard", "#commitsPoints"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb", "imports": ["pandas", "plotly.express", "naas_drivers.github", "naas", "requests", "urllib.parse.urlencode"], "updated_at": "", "image_url": ""}, {"objectID": "8ae2c7c1e9a984b87050a86432e0e8d09f71f62e51e2bb84533b97ad4494e04d", "tool": "GitHub", "notebook": "Create newsletter based on repository activity", "action": "", "tags": ["#tool", "#naas_drivers", "#naas", "#scheduler", "#asset", "#snippet", "#automation", "#ai", "#newsletter"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "description": "This notebook allows users to create newsletters based on their repository activity on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb", "imports": ["naas_drivers.github", "naas", "markdown2", "IPython.core.display.display, HTML", "datetime", "pandas", "requests", "urllib.parse.urlencode"], "updated_at": "", "image_url": ""}, {"objectID": "13d50e7c0ca00c6a1963a5a2180ad159bd9cd0db2fd8143fbe18ca655d99dc4a", "tool": "GitHub", "notebook": "Create pull request", "action": "", "tags": ["#github", "#pygithub", "#pullrequest", "#create", "#assign", "#issue"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates a pull request using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_pull_request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_pull_request.ipynb", "imports": ["github", "github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "45e3c14a696be711aaa32ba00141daa87f830e1d23755fa0a4974ebf66cc81ef", "tool": "GitHub", "notebook": "Create repository on personal account", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Kanishk Pareek", "author_url": "https://in.linkedin.com/in/kanishkpareek/", "description": "This notebook provides instructions on how to create a repository on a personal GitHub account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_repository_on_personal_account.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_repository_on_personal_account.ipynb", "imports": ["requests", "json"], "updated_at": "", "image_url": ""}, {"objectID": "7c337804978be615c8e4cf519d6575a8e16fe0b28e5c250c52393e3a5588e4d5", "tool": "GitHub", "notebook": "Delete an issue comment", "action": "", "tags": ["#github", "#issue", "#comment", "#api", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to delete a comment to an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Delete_an_issue_comment.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Delete_an_issue_comment.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "dbff6f5f2fa8547e5d0a19beb2643be87b924ee91e01121e3d37985bac070cd8", "tool": "GitHub", "notebook": "Download Excel file from URL", "action": "", "tags": ["#github", "#excel", "#download", "#url", "#file", "#python"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook explains how to download an Excel file stored on a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Download_Excel_file_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_Excel_file_from_URL.ipynb", "imports": ["requests", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "328cf85beb39894413fcc4034f6c1a7deb5729e38b294307534bf49013c42ba5", "tool": "GitHub", "notebook": "Download file from url", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to download a file from a URL using GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Download_file_from_url.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_file_from_url.ipynb", "imports": ["requests", "naas", "uuid", "urllib.parse"], "updated_at": "", "image_url": ""}, {"objectID": "1002d8195ec68aad7c2c4d45777ae51f859a5f5aaac8f2e7596fbf46203b65ff", "tool": "GitHub", "notebook": "Download repository from URL", "action": "", "tags": ["#github", "#download", "#repository", "#url", "#api", "#zip"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook explains how to download a repository from a URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Download_repository_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_repository_from_URL.ipynb", "imports": ["requests", "urllib", "os", "zipfile"], "updated_at": "", "image_url": ""}, {"objectID": "ac33d518bc759838d5a1b8a6392baae861e48fdde87d5d10539c3e8768ea2346", "tool": "GitHub", "notebook": "Follow stargazers trend", "action": "", "tags": ["#github", "#stars", "#stargazers", "#naas_drivers", "#operations", "#analytics", "#html", "#plotly", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook creates a linechart to follow the trend of stars received on a specific repository. A csv, html and png files will be created as output with the possibility to be shared with a naas asset link.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Follow_stargazers_trend.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Follow_stargazers_trend.ipynb", "imports": ["pandas", "datetime.datetime", "plotly.graph_objects", "naas_drivers.github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2d6e1a35712e37dcf78b873d165069cce01361f5c3800ddca0f1455a215c6bfd", "tool": "GitHub", "notebook": "Get Traffic Clones on repository", "action": "", "tags": ["#github", "#api", "#traffic", "#clones", "#plotly", "#linechart"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get traffic clones on a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb", "imports": ["requests", "naas", "pprint.pprint", "pandas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "f9bebb30e5a9beff438ea68ecfd4766b58d80a7990a9a745ed628ab82c295b14", "tool": "GitHub", "notebook": "Get Traffic Views on repository", "action": "", "tags": ["#github", "#api", "#traffic", "#views", "#plotly", "#linechart", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get traffic views on a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb", "imports": ["requests", "naas", "pprint.pprint", "pandas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "c8a8977c13770d7cc1a9709d463a6c9b394b327ba768a497ede1e05dda40b7d7", "tool": "GitHub", "notebook": "Get a repository", "action": "", "tags": ["#github", "#pygithub", "#repository", "#get", "#rest", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get a repository using pygithub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_a_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_a_repository.ipynb", "imports": ["naas", "github"], "updated_at": "", "image_url": ""}, {"objectID": "1626bc2443cb5ef3c6ac18d27f82fe1dfcdbc8845c38d45ca30b4f7eeaf7dbf2", "tool": "GitHub", "notebook": "Get active projects", "action": "", "tags": ["#github", "#projects", "#operations", "#snippet", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides an overview of active projects on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_active_projects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_active_projects.ipynb", "imports": ["naas_drivers.github"], "updated_at": "", "image_url": ""}, {"objectID": "f89b6e0c45286c0029ace95a4357a4d498a9b31f5c1625082e26eb2ff82e1bf7", "tool": "GitHub", "notebook": "Get commits from repository", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#plotly", "#linechart", "#operations", "#analytics", "#dataframe", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a tutorial on how to retrieve a list of commits for a specific repository on GitHub using the GitHub API. It covers how to set up a personal access token for accessing the API, how to get commits using naas_drivers.github. The output returned is a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_commits_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_from_repository.ipynb", "imports": ["naas_drivers.github", "datetime.datetime", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "19d43ffdcf1cb2f75a558259f7cfc3eed25577effd5690eb7a64e81cfacc9da9", "tool": "GitHub", "notebook": "Get commits ranking from repository", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#plotly", "#linechart", "#operations", "#analytics", "#dataframe", "#html"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to view the commit rankings of a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb", "imports": ["pandas", "plotly.express", "naas_drivers.github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1128f006266221999d8fbaa49d9e373c698e9b5c08a0ecefbe8eaa41795d69ee", "tool": "GitHub", "notebook": "Get files added on pull request", "action": "", "tags": ["#github", "#pullrequest", "#files", "#merge", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook get the files added on a pull request using the GitHub API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_files_added_on_pull_request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_files_added_on_pull_request.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c8b1218b10d5fedf3def66d9c7037ad6ee1b3b7f9bdb949ea73cce5d41dcf544", "tool": "GitHub", "notebook": "Get files changed on pull request", "action": "", "tags": ["#github", "#pullrequest", "#files", "#api", "#python", "#git"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook get the list of files changed on a pull request using the GitHub API. Files changed could be 'added', 'renamed' or 'removed'.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "bb644c3ac7177413c1f9b04a3a8d8d2f6d337072807baf2ec8dbe0af0192458c", "tool": "GitHub", "notebook": "Get issues from repo", "action": "", "tags": ["#github", "#repos", "#issues", "#operations", "#analytics", "#dataframe", "#html", "#plotly"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows users to retrieve issues from a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_issues_from_repo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_issues_from_repo.ipynb", "imports": ["naas_drivers.github"], "updated_at": "", "image_url": ""}, {"objectID": "f8b2a5b06ad0b1bc4d25de7e3aa1130a926d75e334885b7f4ad7abe3b774087d", "tool": "GitHub", "notebook": "Get most starred repos", "action": "", "tags": ["#github", "#repos", "#stars", "#snippet"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190", "description": "This notebook provides a list of the most popular GitHub repositories based on the number of stars they have received.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_most_starred_repos.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_most_starred_repos.ipynb", "imports": ["requests", "pandas", "plotly.express", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "bd51601dc7146cccf78e53232a470ddde08272706420c31e7494698e0fe8b38e", "tool": "GitHub", "notebook": "Get open pull requests", "action": "", "tags": ["#github", "#repos", "#pulls", "#PR", "#operations", "#analytics", "#plotly", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook retrieves pull requests from a repository URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_open_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_open_pull_requests.ipynb", "imports": ["naas_drivers.github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "567fd994f272de8dda30cabbcd7b893fea10b7cd949e94decd11cfa77224af3e", "tool": "GitHub", "notebook": "Get profile from user", "action": "", "tags": ["#github", "#user", "#profile", "#operations", "#snippet", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to retrieve a user's profile information from GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_profile_from_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_profile_from_user.ipynb", "imports": ["naas_drivers.github"], "updated_at": "", "image_url": ""}, {"objectID": "131faef4977e217b5cc7c313edb1d08a280bd20881389b14ed6a925bc25a3bab", "tool": "GitHub", "notebook": "Get profiles from teams", "action": "", "tags": ["#github", "#team", "#operations", "#snippet", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows users to retrieve profiles from teams on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_profiles_from_teams.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_profiles_from_teams.ipynb", "imports": ["naas_drivers.github"], "updated_at": "", "image_url": ""}, {"objectID": "cff3ad5e2da30b6e823aef6421cf3d08a71a70e60c8fde077ba9952f06c9624e", "tool": "GitHub", "notebook": "Get team membership for a user", "action": "", "tags": ["#github", "#teams", "#members", "#rest", "#api", "#python", "#snippet"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook get team membership for a user. It will return a dictionary with the state, role and url of the membership.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_team_membership_for_a_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_team_membership_for_a_user.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "8a639940269e34df28bbdefbea42c889370febabbb161f8d5d31cc5772689c93", "tool": "GitHub", "notebook": "Get weekly commits from repository", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#plotly", "#linechart", "#operations", "#analytics", "#dataframe", "#html"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a weekly summary of commits made to a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb", "imports": ["pandas", "plotly.express", "naas_drivers.github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5494d12097ff82773cb0889f21a3f00dc84f32169f334038fc77493d818710ef", "tool": "GitHub", "notebook": "List all pull requests", "action": "", "tags": ["#github", "#pygithub", "#repo", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook list all pull requests from a repository name using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_all_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_all_pull_requests.ipynb", "imports": ["os", "json", "github.Github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "087ed8be214fa3812d0506587434b69b44b3c162378979f98d3ac937c1609f9d", "tool": "GitHub", "notebook": "List closed pull requests", "action": "", "tags": ["#github", "#pygithub", "#closedpr", "#repo", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook list closed pull requests from a repository name using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_closed_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_closed_pull_requests.ipynb", "imports": ["os", "json", "github.Github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "0acd7acb64f20d87ed237d4c909f9743978f067f9d98836c6ff364c577fa8d3b", "tool": "GitHub", "notebook": "List issue comments", "action": "", "tags": ["#github", "#issue", "#comment", "#api", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to list comments from an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_issue_comments.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_issue_comments.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "09d2ca4100cec4201ff843f1c383df5e6e7f88a4dc162fc65c8bf0d33675bd6e", "tool": "GitHub", "notebook": "List open pull requests", "action": "", "tags": ["#github", "#pygithub", "#repo", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook list open pull requests from a repository name using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_open_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_open_pull_requests.ipynb", "imports": ["os", "json", "github.Github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "91d4843ef8544aef83848c962ab6e38be11682c7ef728a1a9e2f10abd65cae9e", "tool": "GitHub", "notebook": "List organization repositories", "action": "", "tags": ["#github", "#pygithub", "#list", "#organization", "#repositories"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to list organization repositories using pygithub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_organization_repositories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_organization_repositories.ipynb", "imports": ["naas", "github"], "updated_at": "", "image_url": ""}, {"objectID": "9402c5818d40c9a1056603298a6ece7b054a8313e93aa96e3a08670d775334b7", "tool": "GitHub", "notebook": "List pending team invitations", "action": "", "tags": ["#github", "#teams", "#invitations", "#rest", "#api", "#list", "#snippet"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to list pending team invitations using the GitHub REST API and will create a DataFrame as output. It can be used by organizations with multiple teams on GitHub to keep track of pending team invitations, ensuring that all team members are added to the appropriate teams and can collaborate effectively. It helps in managing team membership and permissions for efficient collaboration within the organization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_pending_team_invitations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_pending_team_invitations.ipynb", "imports": ["requests", "naas", "pandas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "2afff9452829305d478206c7df493312ed90cc027380628a2fa35705dc1246a0", "tool": "GitHub", "notebook": "List stargazers from repository", "action": "", "tags": ["#github", "#stars", "#stargazers", "#naas_drivers", "#operations", "#analytics", "#html", "#plotly", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to retrieve the list of users who have starred a given GitHub repository and save it into a csv file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_stargazers_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_stargazers_from_repository.ipynb", "imports": ["naas_drivers.github", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "cbb03445c11c8235ed502fd4031d9c94f68d15a70486cc4eae08329f546df285", "tool": "GitHub", "notebook": "List team members", "action": "", "tags": ["#github", "#teams", "#members", "#rest", "#api", "#list", "#snippet"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will demonstrate how to list team members using the GitHub REST API and will create a DataFrame as output. It can be used by organizations or repository owners to manage their teams on GitHub by listing the current team members. It helps in keeping track of team members, their roles, and permissions, enabling organizations to efficiently manage their teams and ensure that the right users have the appropriate access.\n\nDataFrame returned:\n- login': Represents the username or login name of the GitHub user.\n- 'id': Represents the unique identifier assigned to the GitHub user.\n- 'node_id': Represents the unique identifier for the GitHub user's profile as a node in the GitHub GraphQL API.\n- 'avatar_url': Represents the URL of the avatar (profile picture) of the GitHub user.\n- 'gravatar_id': Represents the unique identifier associated with the GitHub user's Gravatar profile.\n- 'url': Represents the URL of the GitHub user's profile.\n- 'html_url': Represents the HTML URL of the GitHub user's profile.\n- 'followers_url': Represents the URL for retrieving the list of followers of the GitHub user.\n- 'following_url': Represents the URL for retrieving the list of users that the GitHub user is following.\n- 'gists_url': Represents the URL for retrieving the list of gists created by the GitHub user.\n- 'starred_url': Represents the URL for retrieving the list of repositories starred by the GitHub user.\n- 'subscriptions_url': Represents the URL for retrieving the list of repositories subscribed to by the GitHub user.\n- 'organizations_url': Represents the URL for retrieving the list of organizations the GitHub user is a member of.\n- 'repos_url': Represents the URL for retrieving the list of repositories owned by the GitHub user.\n- 'events_url': Represents the URL for retrieving the list of events related to the GitHub user's activity.\n- 'received_events_url': Represents the URL for retrieving the list of events received by the GitHub user.\n- 'type': Represents the type of GitHub user, which can be 'User' or 'Organization'.\n- 'site_admin': Represents a boolean value indicating if the GitHub user has administrative privileges (true) or not (false) in the associated organization or repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_team_members.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_team_members.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "8591114911bf4f214706b00f87ba2c2ac8b8ac4af35a244bee65923f75841c03", "tool": "GitHub", "notebook": "Peform basic actions", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to use GitHub to perform basic tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Peform_basic_actions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Peform_basic_actions.ipynb", "imports": ["git_lib.Git"], "updated_at": "", "image_url": ""}, {"objectID": "cd80d6b09a931a9e136faa98ec7db9b739b3d2f198222dc8b96f947b56d9cadc", "tool": "GitHub", "notebook": "Read issue", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to read and understand issues on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Read_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Read_issue.ipynb", "imports": ["github.Github", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "332448e5948d4198f461223f9937a1ce1cd7912fa7df229fa71a2f3121d80949", "tool": "GitHub", "notebook": "Remove member from team", "action": "", "tags": ["#github", "#teams", "#snippet", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides instructions on how to remove a member from a GitHub team.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Remove_member_from_team.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_member_from_team.ipynb", "imports": ["requests", "naas_drivers.github"], "updated_at": "", "image_url": ""}, {"objectID": "fdcbabe75aaf3e5fb4fdd20389fa8f467d45d1bdb07f1bdd792b851b3747da63", "tool": "GitHub", "notebook": "Remove team membership for a user", "action": "", "tags": ["#github", "#teams", "#members", "#remove", "#api", "#rest"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook explains how to remove team membership for a user. It is usefull for organizations that need to manage their team memberships.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb", "imports": ["requests", "json"], "updated_at": "", "image_url": ""}, {"objectID": "34d8e5474a94719c1703516d66d3e99cbaaada2b84c29f116ea81516710e5783", "tool": "GitHub", "notebook": "Reopen issue", "action": "", "tags": ["#github", "#issues", "#update", "#rest", "#api", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to reopened an issue on GitHub using the REST API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Reopen_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Reopen_issue.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "9c57f872a50f25acbb10c6400142ac1e874a1c4b7d26c38e6efc0c4b819bb16f", "tool": "GitHub", "notebook": "Send stargazers to Google Sheets", "action": "", "tags": ["#github", "#stars", "#stargazers", "#googlesheets", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to send GitHub stargazers from a given repository to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb", "imports": ["naas_drivers.github, gsheet", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "7afaaedd1fb202006ad3861d87fc8671e703e8ab3af059d97fd4c95fc4e61601", "tool": "GitHub", "notebook": "Track issues on projects", "action": "", "tags": ["#github", "#repos", "#issues", "#operations", "#analytics", "#csv", "#plotly"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows users to track and manage issues related to their projects on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Track_issues_on_projects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Track_issues_on_projects.ipynb", "imports": ["plotly.express", "naas_drivers.github"], "updated_at": "", "image_url": ""}, {"objectID": "e6462e6eaca51db7dbf96bbd6be22be706fa160145a35d73671984ccb506f093", "tool": "GitHub", "notebook": "Track notebooks created over time", "action": "", "tags": ["#github", "#repos", "#commits", "#notebooks", "#operations", "#analytics", "#html", "#plotly", "#csv", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to track changes to their notebooks over time using GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Track_notebooks_created_over_time.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Track_notebooks_created_over_time.ipynb", "imports": ["pandas", "requests", "os", "naas_drivers.github", "plotly.graph_objects", "pydash", "urllib.parse.urlencode", "datetime.datetime, timedelta", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e188766003d17aa7cd99e2ba165f5eee5b6fabb6336e759d7a1271f0f99dbefd", "tool": "GitHub", "notebook": "Update issue", "action": "", "tags": ["#github", "#issues", "#update", "#rest", "#api", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to update an issue on GitHub using the REST API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Update_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Update_issue.ipynb", "imports": ["requests", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fa79dae352658caaec4422cf9d3df4cb3f10675a6b3d3f8323ec98354f5504af", "tool": "Gmail", "notebook": "Automate response from keywords in mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Sanjay Sabu", "author_url": "https://www.linkedin.com/in/sanjay-sabu-4205/", "description": "This notebook automates the process of responding to emails in Gmail based on keywords found in the mailbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb", "imports": ["naas", "naas_drivers.email", "re.search"], "updated_at": "", "image_url": ""}, {"objectID": "2b5e18eec609ef0127f4d6d9be1802a2283fec60a598d654b98535b6bcd321ce", "tool": "Gmail", "notebook": "Clean mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook helps you quickly and easily organize your Gmail inbox by removing unwanted emails.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Clean_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Clean_mailbox.ipynb", "imports": ["naas", "naas_drivers.email", "pandas", "numpy", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "78ce50f9ba2a77f6308dbeb62b15c57fd5db2e92ecb652d13658246a50ead748", "tool": "Gmail", "notebook": "Create GitHub issue on specific email", "action": "", "tags": ["#gmail", "#github", "#email", "#issue", "#create", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create a GitHub issue from a specific email using Gmail and Python. It is usefull for organizations that need to track emails and create issues from them.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb", "imports": ["naas", "naas_drivers.email", "re.search", "pandas", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "4eeb57ee19493997c46d04f94059ef5c2bd3f809491461cfe8c8c065d7d75921", "tool": "Gmail", "notebook": "Create draft email", "action": "", "tags": ["#gmail", "#email", "#draft", "#create", "#python", "#library"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook will show how to create a draft email using the Gmail API. It is usefull for organizations that need to automate the creation of emails.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Create_draft_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Create_draft_email.ipynb", "imports": ["naas", "googleapiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "google.auth.transport.requests.Request", "pickle", "datetime", "os.path", "base64", "email.mime.text.MIMEText", "email.mime.multipart.MIMEMultipart"], "updated_at": "", "image_url": ""}, {"objectID": "cf0d71ca4f2f41fa0272cbf9fbe3b1e890e7c4968b3a9f57478f8d65e40f60e8", "tool": "Gmail", "notebook": "Delete email from mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook allows you to update an email status in your Gmail inbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Delete_email_from_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Delete_email_from_mailbox.ipynb", "imports": ["naas", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "9d0515a1c77f00567dfb9833c75af19c3c9b24efd7b7a6e0a6d53ef0de00fcd0", "tool": "Gmail", "notebook": "Get emails stats by sender", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to get stats from their emailbox by sender.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_emails_stats_by_sender.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_emails_stats_by_sender.ipynb", "imports": ["naas", "naas_drivers.email", "pandas", "numpy", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "e8855875aba10e1d9817664191d5f2ae82c89b8addef409700da4edb5c174f1c", "tool": "Gmail", "notebook": "Get seen emails", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook allows you to read your Gmail inbox and get the seen emails. It returns a dataframe as follow:\n- uid: This column represents the unique identifier associated with each row or email in the dataframe.\n- subject: The subject column contains the subject line or title of the email.\n- from: The \"from\" column contains information about the sender of the email. It includes the email address and name of the sender.\n- to: The \"to\" column contains information about the primary recipients of the email. It includes the email addresses and names of the recipients.\n- cc: The \"cc\" column represents the carbon copy recipients of the email. It contains a list of email addresses and names of the cc'd recipients.\n- bcc: The \"bcc\" column contains the blind carbon copy recipients of the email. Similar to the \"cc\" column, it includes a list of email addresses and names.\n- reply_to: This column contains the email addresses and names that should be used when replying to the email.\n- date: The \"date\" column indicates the date and time when the email was sent.\n- text: The \"text\" column contains the plain text content of the email.\n- html: The \"html\" column includes the HTML-formatted content of the email.\n- flags: The \"flags\" column represents any flags or indicators associated with the email, such as important, starred, etc.\n- headers: This column contains additional headers of the email, such as the \"delivered-to,\" \"received,\" and \"X-Google-Smtp-Source\" headers.\n- size_rfc822: The \"size_rfc822\" column indicates the size of the email in RFC822 format.\n- size: The \"size\" column represents the size of the email in bytes.\n- obj: The \"obj\" column contains the object representation of the email.\n- attachments: This column includes any attachments associated with the email, such as files, images, etc.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_seen_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_seen_emails.ipynb", "imports": ["naas", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "c05ec3727f7f634fa76664cc32f3de7e7cae8ef27a4b8abf2f2eb444406359dc", "tool": "Gmail", "notebook": "Get unseen emails", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook allows you to read your Gmail inbox and get the unseen emails. It returns a dataframe as follow:\n- uid: This column represents the unique identifier associated with each row or email in the dataframe.\n- subject: The subject column contains the subject line or title of the email.\n- from: The \"from\" column contains information about the sender of the email. It includes the email address and name of the sender.\n- to: The \"to\" column contains information about the primary recipients of the email. It includes the email addresses and names of the recipients.\n- cc: The \"cc\" column represents the carbon copy recipients of the email. It contains a list of email addresses and names of the cc'd recipients.\n- bcc: The \"bcc\" column contains the blind carbon copy recipients of the email. Similar to the \"cc\" column, it includes a list of email addresses and names.\n- reply_to: This column contains the email addresses and names that should be used when replying to the email.\n- date: The \"date\" column indicates the date and time when the email was sent.\n- text: The \"text\" column contains the plain text content of the email.\n- html: The \"html\" column includes the HTML-formatted content of the email.\n- flags: The \"flags\" column represents any flags or indicators associated with the email, such as important, starred, etc.\n- headers: This column contains additional headers of the email, such as the \"delivered-to,\" \"received,\" and \"X-Google-Smtp-Source\" headers.\n- size_rfc822: The \"size_rfc822\" column indicates the size of the email in RFC822 format.\n- size: The \"size\" column represents the size of the email in bytes.\n- obj: The \"obj\" column contains the object representation of the email.\n- attachments: This column includes any attachments associated with the email, such as files, images, etc.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_unseen_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_unseen_emails.ipynb", "imports": ["naas", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "271cd524edb23b21e977fab95d1defea1649ae0caa2dc08f666f1c6e25d6b020", "tool": "Gmail", "notebook": "Read mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "description": "This notebook allows you to read your Gmail inbox and returns a dataframe:\n- uid: This column represents the unique identifier associated with each row or email in the dataframe.\n- subject: The subject column contains the subject line or title of the email.\n- from: The \"from\" column contains information about the sender of the email. It includes the email address and name of the sender.\n- to: The \"to\" column contains information about the primary recipients of the email. It includes the email addresses and names of the recipients.\n- cc: The \"cc\" column represents the carbon copy recipients of the email. It contains a list of email addresses and names of the cc'd recipients.\n- bcc: The \"bcc\" column contains the blind carbon copy recipients of the email. Similar to the \"cc\" column, it includes a list of email addresses and names.\n- reply_to: This column contains the email addresses and names that should be used when replying to the email.\n- date: The \"date\" column indicates the date and time when the email was sent.\n- text: The \"text\" column contains the plain text content of the email.\n- html: The \"html\" column includes the HTML-formatted content of the email.\n- flags: The \"flags\" column represents any flags or indicators associated with the email, such as important, starred, etc. Possible value for flag: 'SEEN', 'ANSWERED', 'FLAGGED', 'DELETED', 'DRAFT', 'RECENT'\n- headers: This column contains additional headers of the email, such as the \"delivered-to,\" \"received,\" and \"X-Google-Smtp-Source\" headers.\n- size_rfc822: The \"size_rfc822\" column indicates the size of the email in RFC822 format.\n- size: The \"size\" column represents the size of the email in bytes.\n- obj: The \"obj\" column contains the object representation of the email.\n- attachments: This column includes any attachments associated with the email, such as files, images, etc.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Read_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Read_mailbox.ipynb", "imports": ["naas", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "8f12ba6e2beed9a59f7b18f42a101ad2d7336041f95eb7e5bd50bb09f6052184", "tool": "Gmail", "notebook": "Send email", "action": "", "tags": ["#gmail", "#email", "#send", "#python", "#library", "#smtplib"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to send an email using naas_drivers. It is usefull for organizations that need to send emails from their Gmail account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Send_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Send_email.ipynb", "imports": ["naas", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "d292b17e6643b9537f5b4f295149979d2c5b081a8e0ab0f0d3ab78bb5c1bfddd", "tool": "Gmail", "notebook": "Update email flag", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook allows you to update an email flag in your Gmail inbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Update_email_flag.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Update_email_flag.ipynb", "imports": ["naas", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "104108f1cfc4292347929774d2c5e72f8691076a4e1576cd5d3e52a752c9520c", "tool": "Google Analytics", "notebook": "Follow average session duration daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a daily overview of the average session duration for a website tracked with Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "9c612681622da896898b8d2e1234a00856e1515c326db064afae2d84fa7eb702", "tool": "Google Analytics", "notebook": "Follow number of new visitors daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the daily number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "3fe7b4b211e6b581b521cf3dc9a9ed7c4a9a81e4c89f957444b5d04ec985ca33", "tool": "Google Analytics", "notebook": "Follow number of new visitors hourly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the hourly number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "b8a4989937c8ebbec020312fc8d1e7bd427af1ca3f45a9afb9b5c83c55abc1c3", "tool": "Google Analytics", "notebook": "Follow number of new visitors monthly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the monthly number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "5b7788ab05dab3b644afdcb2d321dbf68370269934b6d4d53e02331b0d6b8bd1", "tool": "Google Analytics", "notebook": "Follow number of new visitors weekly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the weekly number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "c936eb78a90ad7c2a2baf26fe6ccd941e1ae7d29b5853b89fbbd4d0bb3235ee0", "tool": "Google Analytics", "notebook": "Follow number of sessions daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a daily overview of the number of sessions tracked by Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "32df9d633cd4afefc4274cc22048edf92136f7e26c238ec4aa6d593868d90017", "tool": "Google Analytics", "notebook": "Follow number of sessions hourly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the number of sessions on Google Analytics over the course of an hour.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "3bdd912e77792584482b7d2b4f975959046378c261b29f97a4b2b65255b1475c", "tool": "Google Analytics", "notebook": "Follow number of sessions monthly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the monthly number of sessions on Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "da843f31021b75f4fec31cc2deb7f06f955056d68c2045cf540597f6dd769591", "tool": "Google Analytics", "notebook": "Follow number of sessions weekly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the number of sessions on Google Analytics on a weekly basis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "47b2f1e75d1576ff8090e484fd541f2fe88c07fd94a3ff71e1ab30bb29a426eb", "tool": "Google Analytics", "notebook": "Follow number of visitors daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the daily number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "56bd24cb31d186f8cef0bddcfae15554b4f2212fabaf28ef9f232c37acaf5d9f", "tool": "Google Analytics", "notebook": "Follow number of visitors hourly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the hourly number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "99e8d32201a65a79018137233c5e2b545ad46814a6de7617ea91a2c53cf918ff", "tool": "Google Analytics", "notebook": "Follow number of visitors monthly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the monthly number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "05f3277c0413c03585c01a7b0f7a97cff58554756a85a014fa6ecd61fe5f0d6e", "tool": "Google Analytics", "notebook": "Follow number of visitors weekly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook tracks the weekly number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "9efbf241b3610e5a74d4d6c0a06e1364d12516ab32d4dd06960d4af38f317dbb", "tool": "Google Analytics", "notebook": "Get bounce rate", "action": "", "tags": ["#googleanalytics", "#bouncerate", "#plotly", "#linechart", "#naas_drivers", "#scheduler", "#asset", "#naas", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "description": "This notebook provides an analysis of the bounce rate of a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_bounce_rate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_bounce_rate.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "fd0747c320e63718180faefdcd4021fd259514b20ba255a20a00aae4fc81a00c", "tool": "Google Analytics", "notebook": "Get pageview ranking", "action": "", "tags": ["#googleanalytics", "#pageviews", "#plotly", "#horizontalbarchart", "#naas_drivers", "#scheduler", "#asset", "#naas", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "description": "This notebook provides a ranking of pageviews for a website using Google Analytics data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_pageview_ranking.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_pageview_ranking.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "eb4c394db4b8712ba495abae2c5eef6becfd0cfc413bf2463e82ab76f8c9b973", "tool": "Google Analytics", "notebook": "Get stats per country", "action": "", "tags": ["#googleanalytics", "#statspercountry", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html", "#plotly"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "description": "This notebook provides a comprehensive analysis of website traffic by country using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_stats_per_country.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_stats_per_country.ipynb", "imports": ["pycountry", "pycountry", "plotly.graph_objects", "plotly.express", "naas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "b432939ab2679ed5875c113d75531e92776d116566343b19908714fa461a20c5", "tool": "Google Analytics", "notebook": "Get time on landing page", "action": "", "tags": ["#googleanalytics", "#timeonlanding", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html", "#plotly"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "description": "This notebook provides an analysis of the amount of time visitors spend on a landing page using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_time_on_landing_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_time_on_landing_page.ipynb", "imports": ["datetime.timedelta", "pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "d07d75e8dd6ee9ce1a85c6a5909028184fd0a04a3030164ac5c6430a5f7e7b56", "tool": "Google Analytics", "notebook": "Get unique visitors", "action": "", "tags": ["#googleanalytics", "#getuniquevisitors", "#plotly", "#barchart", "#naas_drivers", "#scheduler", "#asset", "#naas", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "description": "This notebook provides an analysis of unique visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_unique_visitors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_unique_visitors.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "afb36fe72b75ccd000b3c821eabec5037797e3ea1064bce8e088ba44b82ed1d8", "tool": "Google Analytics", "notebook": "Get unique visitors by country", "action": "", "tags": ["#googleanalytics", "#statspercountry", "#analytics", "#marketing", "#dataframe"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "description": "This notebook provides a breakdown of unique visitors to a website by country using Google Analytics data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb", "imports": ["plotly.graph_objects", "plotly.express", "naas", "naas_drivers.googleanalytics"], "updated_at": "", "image_url": ""}, {"objectID": "bf81d9bdc059f8647005c3dc6132525ff6c4e7be3881311851324030a9be3eb2", "tool": "Google Analytics", "notebook": "Send visitors traffic graph and trends prediction to Slack channel", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maxime-jublou", "description": "This notebook allows users to send Google Analytics visitor traffic graphs and trends predictions to a Slack channel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb", "imports": ["naas", "naas_drivers.googleanalytics", "naas_drivers.prediction", "naas_drivers.plotly", "naas_drivers.slack", "plotly.graph_objects", "pandas", "datetime.datetime", "json"], "updated_at": "", "image_url": ""}, {"objectID": "f28cb2cc683e6496c50f1a68829a0c527ee8e5af9091132ec5c0b87769aba753", "tool": "Google Calendar", "notebook": "Get calendar", "action": "", "tags": ["#googlecalendar", "#calendar", "#get", "#api", "#reference", "#v3"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "description": "This notebook will demonstrate how to use the Google Calendar API to get metadata for a calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Calendar/Google_Calendar_Get_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Calendar/Google_Calendar_Get_calendar.ipynb", "imports": ["pprint.pprint", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "updated_at": "", "image_url": ""}, {"objectID": "7513483959a8c033cb93018a8f4a9eb29cbfbfcbef8eacd5d2f2b9f5dd48ef1c", "tool": "Google Calendar", "notebook": "List calendars", "action": "", "tags": ["#googlecalendar", "#calendarlist", "#list", "#api", "#python", "#reference"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "description": "This notebook will demonstrate how to use the Google Calendar API to list the calendars on the user's calendar list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Calendar/Google_Calendar_List_calendars.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Calendar/Google_Calendar_List_calendars.ipynb", "imports": ["pprint.pprint", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "updated_at": "", "image_url": ""}, {"objectID": "a2db899b2d3b4a8407d9734bb11c66eb169b4a0a55b53fe65902049471de9fc7", "tool": "Google Calendar", "notebook": "List events from calendar", "action": "", "tags": ["#googlecalendar", "#calendar", "#events", "#list", "#api", "#python"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "description": "This notebook will demonstrate how to use the Google Calendar API to list events from a calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Calendar/Google_Calendar_List_events_from_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Calendar/Google_Calendar_List_events_from_calendar.ipynb", "imports": ["pprint.pprint", "datetime.datetime", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "updated_at": "", "image_url": ""}, {"objectID": "4d62505c0b27fe497af44172fffb4bd8ca5ed2bcfcd1945d9434f00347ac442d", "tool": "Google Drive", "notebook": "Download file", "action": "", "tags": ["#googledrive", "#snippet", "#operations", "#naas"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to download files from their Google Drive account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Drive/Google_Drive_Download_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Drive/Google_Drive_Download_file.ipynb", "imports": ["gdown", "gdown"], "updated_at": "", "image_url": ""}, {"objectID": "4524ee41a55c75df72f6dc0d75ada96d8305d81e20b3626f7a785d6be7431b9d", "tool": "Google Search", "notebook": "Get LinkedIn company url from name", "action": "", "tags": ["#googlesearch", "#snippet", "#operations", "#url"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a method to quickly obtain the LinkedIn URL of a company from its name using Google Search.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb", "imports": ["googlesearch.search", "googlesearch.search", "re"], "updated_at": "", "image_url": ""}, {"objectID": "d1c949fe9e214226b7df5584548da212d42692f254b3325a5b9a03b14993b5be", "tool": "Google Search", "notebook": "Get LinkedIn profile url from name", "action": "", "tags": ["#googlesearch", "#snippet", "#operations", "#url"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a method to quickly and easily obtain a LinkedIn profile URL from a given name using Google Search.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb", "imports": ["googlesearch.search", "googlesearch.search", "re"], "updated_at": "", "image_url": ""}, {"objectID": "2064667ee2f72eea060b675451e0aa7ce39cae50c52fce3ddd817440bfba9e21", "tool": "Google Search", "notebook": "Perform search", "action": "", "tags": ["#googlesearch", "#snippet", "#operations", "#url"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to perform Google searches quickly and easily.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Search/Google_Search_Perform_search.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Perform_search.ipynb", "imports": ["googlesearch.search", "googlesearch.search"], "updated_at": "", "image_url": ""}, {"objectID": "a3806d0e8beb6df74a694e543ef83a8bf1058b7cc2dd05636cdeb22dde4ed654", "tool": "Google Sheets", "notebook": "Add items to Notion databases from new rows in", "action": "", "tags": ["#googlesheets", "#productivity", "#operations", "#automation", "#notion"], "author": "Pooja Srivastava", "author_url": "https://www.linkedin.com/in/pooja-srivastava-bb037649/", "description": "This notebook does the following tasks: \n- Schedule the notebook to run every 15 minutes\n- Connect with Gsheet and get all rows using the gsheet driver's get method\n- Connect with NotionDB and get all pages using the Notion Databases driver's get method\n- Compare the list of pages from notion db with the rows returned from gsheet and add non matching rows to a list\n- Create new pages in Notion db for each row in the non matching list using the Notion Pages driver's create method\n- For each created page, add the properties and values from gsheet and update in notion using the Notion Pages driver's update methods", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb", "imports": ["pandas", "naas", "naas_drivers.notion, gsheet"], "updated_at": "", "image_url": ""}, {"objectID": "17edc5fdc7b63b3e6d04eb4faf8645977e854302a90026ec9fd88d666632fc59", "tool": "Google Sheets", "notebook": "Add new github member to team from spreadsheet", "action": "", "tags": ["#github", "#teams", "#automation", "#googlesheets", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook demonstrates how to use Google Sheets to add a new GitHub member to a team from a spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb", "imports": ["requests", "naas_drivers.github, gsheet", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "ba4899765b01f9b5812cccd925895c501d58721780bc932b6fc4ff040e190f30", "tool": "Google Sheets", "notebook": "Get data", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to using Google Sheets to access and analyze data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Get_data.ipynb", "imports": ["naas_drivers.gsheet"], "updated_at": "", "image_url": ""}, {"objectID": "05789b41ffcc541325fae77c8579bb900c997f4f995f9e1d4c65a690d6016683", "tool": "Google Sheets", "notebook": "Send LinkedIn invitations from spreadsheet", "action": "", "tags": ["#googlesheets", "#invitation", "#automation", "#content", "#notification", "#email", "#linkedin"], "author": "Valentin Goulet", "author_url": "https://www.linkedin.com/in/valentin-goulet-3a3070152/", "description": "This notebook allows users to quickly and easily send LinkedIn invitations to contacts stored in a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb", "imports": ["naas", "naas_drivers.linkedin, gsheet"], "updated_at": "", "image_url": ""}, {"objectID": "cf32ecf61a1d6fdcae3273e7e70026564087776ace44ace0a939c08a2085586f", "tool": "Google Sheets", "notebook": "Send data", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send data from Google Sheets to other applications.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_data.ipynb", "imports": ["naas_drivers.gsheet", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "209d34f8faf5b05652f9cb4b3fe1045566401b2257c9e18947473dbb1785b092", "tool": "Google Sheets", "notebook": "Send data to MongoDB", "action": "", "tags": ["#googlesheets", "#mongodb", "#nosql", "#operations", "#automation"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook will help you send data from your spreadsheet to your MongoDB database collection", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb", "imports": ["naas_drivers.mongo, gsheet", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1dc4e7406a9def845c9736a3dba795b33642a578d2f4c4b1fca74ca2c075892b", "tool": "Google Sheets", "notebook": "Send emails from sheet", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet", "#email"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to send emails directly from a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_emails_from_sheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_emails_from_sheet.ipynb", "imports": ["naas_drivers.gsheet", "naas_drivers.email"], "updated_at": "", "image_url": ""}, {"objectID": "ce8167442d31886b2f8cd299da0d39fd5c26e646f8a734d91fc21a0d3372f5ff", "tool": "Google Slides", "notebook": "Create a Slide", "action": "", "tags": ["#googleslides", "#slides", "#create", "#api", "#developers", "#guides"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook describes how to insert a blank slide to an existing Google Slides presentation establishing a seamless connection using OAuth consent.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Create_a_Slide.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Create_a_Slide.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "uuid"], "updated_at": "", "image_url": ""}, {"objectID": "c18cd5159f738d52c6c4c7b6c95f1cf6bbc69b830505f91e9e82c9d2b99382ee", "tool": "Google Slides", "notebook": "Create a blank presentation", "action": "", "tags": ["#google", "#slides", "#presentation", "#create", "#blank", "#api"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook creates a blank presentation with a specified title using Google Slides API while connecting with oauth consent.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Create_a_blank_presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Create_a_blank_presentation.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "updated_at": "", "image_url": ""}, {"objectID": "a397cec39c6fdad00f731f42c05d051037f4b2f52822c0818359408002f7c450", "tool": "Google Slides", "notebook": "Duplicate slide", "action": "", "tags": ["#googleslides", "#slides", "#duplicate", "#copy", "#presentation", "#slideshow"], "author": "Florent Ravenel", "author_url": "https://linkedin.com/in/florent-ravenel", "description": "This notebook explains how to duplicate a slide in Google Slides establishing a seamless connection using OAuth consent. It is usefull for organizations that need to quickly create a presentation with similar slides.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Duplicate_slide.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Duplicate_slide.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "uuid"], "updated_at": "", "image_url": ""}, {"objectID": "4310bd0e9d59bba6ee8d36901c9519799e4753bb99624ef7f21272d14bc967ac", "tool": "Google Slides", "notebook": "List slides in presentation", "action": "", "tags": ["#googleslides", "#presentation", "#list", "#slides", "#python", "#api"], "author": "Florent Ravenel", "author_url": "https://linkedin.com/in/florent-ravenel", "description": "This notebook will list all the slides in a Google Slides presentation and is usefull for organizations that need to quickly access the content of a presentation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_List_slides_in_presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_List_slides_in_presentation.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "updated_at": "", "image_url": ""}, {"objectID": "5ee4be70aada8b886738cac583ed13df2be5a8597fa7dc4f811f5a8a12861f36", "tool": "Google Slides", "notebook": "Replace text within a shape", "action": "", "tags": ["#googleslides", "#text", "#shape", "#replace", "#api", "#slides"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook explains how to use the Slides API to modify the text content of a shape establishing a seamless connection using OAuth consent.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Replace_text_within_a_shape.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Replace_text_within_a_shape.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "googleapiclient.errors.HttpError", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "googleapiclient.errors.HttpError"], "updated_at": "", "image_url": ""}, {"objectID": "fcfade8d33f639cee874b1956980bbf1c446054e191bec6e66d7ba12f1e1621d", "tool": "HTML", "notebook": "Create a website", "action": "", "tags": ["#html", "#css", "#website", "#page", "#landing", "#custom", "#snippet", "#marketing"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "The objective of this notebook is to create an end-to-end website in 5min.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HTML/HTML_Create_a_website.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HTML/HTML_Create_a_website.ipynb", "imports": ["urllib.request.urlopen", "IPython.display.IFrame", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "8a1dc783cc49a4f89c466a896cc8ec97d86bf1efd9a5f1b945cf97a3d73c3e27", "tool": "Harvest", "notebook": "List all clients", "action": "", "tags": ["#harvest", "#clients", "#api", "#list", "#python", "#get"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will list all clients from Harvest API and is usefull for organizations to get a list of their clients.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Harvest/Harvest_List_all_clients.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_clients.ipynb", "imports": ["requests", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "084fd7fb8f4258a75ef4d470a395f3f4012a8b6663332d19546b8940ade827f4", "tool": "Harvest", "notebook": "List all time entries", "action": "", "tags": ["#harvest", "#timeentries", "#api", "#list", "#python", "#v2"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will list all time entries from the Harvest API v2. It is usefull for organizations to quickly access and display time entries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Harvest/Harvest_List_all_time_entries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_time_entries.ipynb", "imports": ["requests", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "7b4313cc79bea4a013f6abcc10f65b57072015ef0036a00f2ec9eb5002243581", "tool": "Healthchecks", "notebook": "Perfom basic actions", "action": "", "tags": ["#healthchecks", "#snippet", "#operations"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook provides a set of basic actions to help monitor and maintain the health of a system.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb", "imports": ["naas_drivers.healthcheck"], "updated_at": "", "image_url": ""}, {"objectID": "4f9aab526231f9a50b619d844a1e874debbbc1d6aaefc90759cf32850a66a802", "tool": "HubSpot", "notebook": "Associate contact to deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook associates a contact to a deal in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Associate_contact_to_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Associate_contact_to_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "21c2ec4f17d5dfd788890b76d6a094c3a8fa3ddd8246a849bd11b1f41f778019", "tool": "HubSpot", "notebook": "Create Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This template will create a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_Task.ipynb", "imports": ["datetime.datetime, timedelta", "requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "41a54dd1b30076c3f50da00bf2b549912f8c38f2209b3752b0c22bd5c465df00", "tool": "HubSpot", "notebook": "Create contact", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to create contacts in HubSpot, enabling them to store and manage customer information.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contact.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a10c1080b82d40f568861bec9c4fb24ff42d65d11b78ddc719282e46a2afffaf", "tool": "HubSpot", "notebook": "Create contact from LinkedIn profile", "action": "", "tags": ["#hubspot", "#linkedin", "#profile", "#naas_drivers", "#snippet", "#sales"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates a contact in HubSpot from a LinkedIn profile URL with:\n- email\n- linkedinbio\n- phone and mobilephone\n- website\n- twitterhandle\n- firstname\n- lastname\n- info\n- jobtitle\n- industry\n- city\n- state\n- country\n- job_function\n- company\n- field_of_study", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb", "imports": ["naas", "naas_drivers.hubspot, linkedin", "os.path, mkdir"], "updated_at": "", "image_url": ""}, {"objectID": "d11c4d245d38c72a488cf4ef73f193f8c1c6618dc2aeedd06e3aee9ce8b807ac", "tool": "HubSpot", "notebook": "Create contacts from linkedin post likes", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#linkedin", "#post", "#contact", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook create new contacts based on LinkedIn post likes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb", "imports": ["naas_drivers.linkedin, hubspot", "naas", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "e4a548d7f36bef053fe0cb094f83c4eaca4a721fd4b7112548bbce0f8f3b102a", "tool": "HubSpot", "notebook": "Create deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to create deals in HubSpot, helping them to manage their sales pipeline.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e4e780e93a73cd817fdaf0b40ce56ea33fb7a9683bbb24aa5cb40d3ba914f031", "tool": "HubSpot", "notebook": "Create note", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#notes", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This template will create a note in HubSpot with the possibility of :\n- Add timestamp to follow history\n- Add associated contacts\n- Add associated companies\n- Add associated deals\n- Add creator\n- Add multiples owners", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_note.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_note.ipynb", "imports": ["datetime.datetime", "requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "0eafe8fc3415fe94e8707349db0bb4b27d516ecb3850492a06be7d4a0086f2ef", "tool": "HubSpot", "notebook": "Delete Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This template will delete a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_Task.ipynb", "imports": ["datetime.datetime, timedelta", "requests, math", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "758eceb0755d55869262781c0fdbf0ae8897488501d0c5a019bb29f299889448", "tool": "HubSpot", "notebook": "Delete contact", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to delete contacts from their HubSpot account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_contact.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "297e616568c4e2565a8f512dd5e4db0a922305d4a2d09e26c6a0b22d5c90472e", "tool": "HubSpot", "notebook": "Delete deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to delete deals from their HubSpot account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "42f6566a97e75f9a5683b1536e893e1088ec249bafe87e1601eb982be842a384", "tool": "HubSpot", "notebook": "Delete note", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#note", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This template deletes note with a note ID as input.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_note.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_note.ipynb", "imports": ["requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "dca97b52f36c302df5c197d00895c621c69829e47a41bc1869b310a2795d7deb", "tool": "HubSpot", "notebook": "Get Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet", "#json"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This template will get a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_Task.ipynb", "imports": ["datetime.datetime, timedelta", "requests, math", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2cc7be1f4752e97f41db9463ad356b8ae5c6497c16c15317610dc16372f975a1", "tool": "HubSpot", "notebook": "Get all contacts", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to retrieve all contacts from HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_all_contacts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_contacts.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5e8948b2a218d67932167e52f1709186e5a2d6d230316857c687794715b0db73", "tool": "HubSpot", "notebook": "Get all deals", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a comprehensive overview of all deals in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_all_deals.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_deals.ipynb", "imports": ["naas_drivers.hubspot"], "updated_at": "", "image_url": ""}, {"objectID": "f085c6a0dfb61b23a506b44cb0181599a5bfb15014e5c592e594735aff488582", "tool": "HubSpot", "notebook": "Get all pipelines and dealstages", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#pipelines", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook get all your pipelines and dealstages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "041c47a66ffebfd4da7a235568d2535c166ec68f0bb27201f9bb74598eb59402", "tool": "HubSpot", "notebook": "Get contact from URL", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to extract contact information from a given URL using the HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contact_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_from_URL.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f74dbbb05975dc1d685301d6336f36de33ee48891ef89f16701800237c0ea78d", "tool": "HubSpot", "notebook": "Get contact from email", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to extract contact information from emails sent through HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contact_from_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_from_email.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "41eb72bb59619ace242c14c1ed8ffbe54366f6ea7f0aad25a02608af3780e7d7", "tool": "HubSpot", "notebook": "Get contact from id", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to retrieve contact information from a HubSpot account using a contact ID.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contact_from_id.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_from_id.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "57e771994762f2f1daf87e33bf4ee92ea4b096811bc09043847d120a66dded70", "tool": "HubSpot", "notebook": "Get contacts associated to deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook get association between contacts and deals.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c3a9b9d1e98c629b1cb002d88a40903dc4d592e24e830e00c9b484c2bfa25b4a", "tool": "HubSpot", "notebook": "Get deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a comprehensive overview of the HubSpot platform and its features to help you get the best deals.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1783cc4e20694cf382b843a9fb70e03038ea14b28dae79d0535b10499853f177", "tool": "HubSpot", "notebook": "Get notes from contact", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#notes", "#snippet", "#json", "#contacts"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This templates will extract all notes from a contact in HubSpot and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_notes_from_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_notes_from_contact.ipynb", "imports": ["datetime.datetime", "requests", "json", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "c3086aff9615d012c42b6cb7ccc977193b8092d7fdf6b1e49084fa7b519cef76", "tool": "HubSpot", "notebook": "Send LinkedIn invitations from contacts", "action": "", "tags": ["#hubspot", "#invitation", "#automation", "#sales", "#linkedin"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook send LinkedIn invitation to your HubSpot contacts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb", "imports": ["naas", "naas_drivers.hubspot, linkedin", "pandas", "os"], "updated_at": "", "image_url": ""}, {"objectID": "e34b8e2c2e86d41d5ff8cf46f34b81878c899d3c389c43d81261fa1b9f64d7e6", "tool": "HubSpot", "notebook": "Send closed deals weekly", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#scheduler", "#asset", "#html", "#png", "#csv", "#naas_drivers", "#naas", "#analytics", "#automation", "#image", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook send a weekly email based on your deals closed.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb", "imports": ["naas_drivers.hubspot", "datetime.datetime, timedelta", "pandas", "plotly.graph_objects", "plotly.subplots.make_subplots", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "4063affa21ca76b463fb3696bcd1993679d6e2c91d8614b9e1d0f84d57aec6ef", "tool": "HubSpot", "notebook": "Send contacts to gsheet", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#gsheet", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to send HubSpot contacts to a Google Sheet for easy tracking and organization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb", "imports": ["naas_drivers.hubspot, gsheet", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "76a862a59d2f61ce3a6d17fb726390ff287a4c8ab26b8281a7f8e1fa0857de4c", "tool": "HubSpot", "notebook": "Send deals to gsheet", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#gsheet", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to send HubSpot deals to a Google Sheet for easy tracking and analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb", "imports": ["naas_drivers.hubspot, gsheet", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fb271b446d3f68d5c35323574a36baba6d1c855598494a8807a73829a9641327", "tool": "HubSpot", "notebook": "Send new deals created weekly", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#scheduler", "#asset", "#html", "#png", "#csv", "#naas_drivers", "#naas", "#analytics", "#automation", "#image", "#plotly", "#notification", "#email"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook send a weekly email based on your deals created.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb", "imports": ["naas_drivers.hubspot, emailbuilder", "datetime.datetime, timedelta", "pandas", "plotly.graph_objects", "plotly.subplots.make_subplots", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a82cec3af17c939d191f8ce0883159014a63484fd77e1ec01c92c4d6358c90aa", "tool": "HubSpot", "notebook": "Send sales brief", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#notification", "#asset", "#emailbuilder", "#scheduler", "#naas", "#analytics", "#automation", "#email", "#text", "#plotly", "#html", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook send a sales brief based on your HubSpot activity.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_sales_brief.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_sales_brief.ipynb", "imports": ["naas_drivers.emailbuilder, hubspot", "naas", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "d49ac09de4eaf9bef7efdf56581a4f54891f80799d0746bfff20181ac130cdf5", "tool": "HubSpot", "notebook": "Send sales pipeline to Notion", "action": "", "tags": ["#hubspot", "#notion", "#sales", "#pipeline", "#automation", "#integration"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook automates the process of sending a sales pipeline from HubSpot to Notion. It is useful for organizations that need to keep track of their sales pipeline in both HubSpot and Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb", "imports": ["naas", "naas_drivers.hubspot, notion", "pandas", "datetime.datetime", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "a0410dbd5e2e886db5230942a8dd104d62fb9101565a66fba5ea54f12ae0a64e", "tool": "HubSpot", "notebook": "Update Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This template will update a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_Task.ipynb", "imports": ["datetime.datetime, timedelta", "naas_drivers.hubspot", "requests, math", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "8a175a5d458b09dfe5dbc8c5e40f3a0bbd41192e6a77aa6f922960b017c043e1", "tool": "HubSpot", "notebook": "Update contact", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to update contact information in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_contact.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fc58ab67c6bf65de49ba644a4fe56839a4aab81c0c594fbfad7fd64ff672f030", "tool": "HubSpot", "notebook": "Update deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to update deals in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_deal.ipynb", "imports": ["naas_drivers.hubspot"], "updated_at": "", "image_url": ""}, {"objectID": "308ffca5968aaa53ed2e5beaf26fc4270f3ff740e04278f9f51bcaa5b6008cee", "tool": "HubSpot", "notebook": "Update followers from linkedin", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#linkedin", "#network", "#scheduler", "#naas", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook update the LinkedIn followers count for a contact in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb", "imports": ["naas_drivers.hubspot, linkedin", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "69dc47c6359ecfdc7f0345ae2afa727bbd0bdea6bd96d614a1d49028f5e87679", "tool": "HubSpot", "notebook": "Update jobtitle country industry from linkedin", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#linkedin", "#identity", "#scheduler", "#naas", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook update the jobtitle, country and industry for a contact in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb", "imports": ["naas_drivers.hubspot, linkedin", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "73b8a92ef19787ace73fd804dc9fffc4cd440670a11edf54097e734a3151e145", "tool": "HubSpot", "notebook": "Update linkedinbio from google", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#googlesearch", "#scheduler", "#naas", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook update HubSpot linkedin URL based on Google Search with firstname and lastname.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb", "imports": ["naas_drivers.hubspot", "naas", "pandas", "googlesearch.search", "time", "re"], "updated_at": "", "image_url": ""}, {"objectID": "f86b412a2bb0447988f91dbda5fc2dd925f5d6ec01dc474ecbd1f3be6999ba96", "tool": "Hugging Face", "notebook": "Ask boolean question to T5", "action": "", "tags": ["#huggingface", "#ml", "#sales", "#ai", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "## T5-base finetuned on BoolQ (superglue task)\nThis notebook is for demonstrating the training and use of the text-to-text-transfer-transformer (better known as T5) on boolean questions (BoolQ). The example use case is a validator indicating if an idea is environmentally friendly. Nearly any question can be passed into the `query` function (see below) as long as a context to a question is given.\n\nAuthor: Maximilian Frank ([script4all.com](//script4all.com)) - Copyleft license\n\nNotes:\n- The model from [huggingface.co/mrm8488/t5-base-finetuned-boolq](//huggingface.co/mrm8488/t5-base-finetuned-boolq) is used in this example as it is an already trained t5-base model on boolean questions (BoolQ task of superglue).\n- Documentation references on [huggingface.co/transformers/model_doc/t5.html#training](//huggingface.co/transformers/model_doc/t5.html#training), template script on [programming-review.com/machine-learning/t5](//programming-review.com/machine-learning/t5)\n- The greater the model, the higher the accuracy on BoolQ (see [arxiv.org/pdf/1910.10683.pdf](//arxiv.org/pdf/1910.10683.pdf)):\n t5-small|t5-base|t5-large|t5-3B|t5-11B\n -|-|-|-|-\n 76.4%|81.4%|85.4%|89.9%|91.2%", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Hugging%20Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Hugging%20Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb", "imports": ["json", "torch", "operator.itemgetter", "distutils.util.strtobool", "transformers.AutoTokenizer, AutoModelForSeq2SeqLM", "goods.\", # should be false"], "updated_at": "", "image_url": ""}, {"objectID": "5968f81ee8ac7fab47f97e24e666efeee74dd873bb1c1444a24459ea0fa9cabf", "tool": "Hugging Face", "notebook": "Naas drivers integration", "action": "", "tags": ["#huggingface", "#nlp", "#huggingface", "#api", "#models", "#transformers", "#sales", "#ai", "#text"], "author": "Gagan Bhatia", "author_url": "https://www.linkedin.com/in/gbhatia30/", "description": "In this notebook, you will be able to explore the Hugging Face transformers package with minimal technical knowledge thanks to Naas low-code drivers.
\nHugging Face is an immensely popular Python library providing pretrained models that are extraordinarily useful for a variety of natural language processing (NLP) tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Hugging%20Face/Hugging_Face_Naas_drivers_integration.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Hugging%20Face/Hugging_Face_Naas_drivers_integration.ipynb", "imports": ["naas_drivers.huggingface", "ant thing in your life right now?\""], "updated_at": "", "image_url": ""}, {"objectID": "6ae02ceb527a779c1815a5254e6a3b1292f024034c61fa1c62c4dfcb88905990", "tool": "Hugging Face", "notebook": "Question Answering from PDF", "action": "", "tags": ["#huggingface", "#ml", "#question_answer", "#ai", "#text"], "author": "Muhammad Talha Khan", "author_url": "https://www.linkedin.com/in/muhtalhakhan/", "description": "This notebook provides a way to answer questions from PDF documents using Hugging Face's natural language processing capabilities.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Hugging%20Face/Hugging_Face_Question_Answering_from_PDF.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Hugging%20Face/Hugging_Face_Question_Answering_from_PDF.ipynb", "imports": ["transformers.pipeline", "urllib.request", "PyPDF2", "io"], "updated_at": "", "image_url": ""}, {"objectID": "d7b25ccb94399a05e017b4dbcc1175264b9d63a0846fe91c6e98ae73e7464ce5", "tool": "IFTTT", "notebook": "Post on Twitter", "action": "", "tags": ["#ifttt", "#nocode", "#snippet", "#marketing", "#twitter"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows you to post messages to Twitter using IFTTT.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IFTTT/IFTTT_Post_on_Twitter.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IFTTT/IFTTT_Post_on_Twitter.ipynb", "imports": ["naas_drivers.ifttt"], "updated_at": "", "image_url": ""}, {"objectID": "c2217c4b3eafedeb845aa615041292cacf60fd6aa3366a80e4d85ab17ac0d9a6", "tool": "IFTTT", "notebook": "Trigger workflow", "action": "", "tags": ["#ifttt", "#nocode", "#snippet", "#marketing"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to create automated workflows based on triggers from IFTTT.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IFTTT/IFTTT_Trigger_workflow.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IFTTT/IFTTT_Trigger_workflow.ipynb", "imports": ["naas_drivers.ifttt"], "updated_at": "", "image_url": ""}, {"objectID": "d6489bb4d5adeb7d00bb71c99521b750528eb0d76f94b0007a217d5902623f0e", "tool": "IMDB", "notebook": "Top Movie", "action": "", "tags": ["#imdb", "#python", "#webscraping", "#imdb", "#analytics", "#operations", "#csv"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook provides a list of the top-rated movies according to IMDB ratings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IMDB/Top_IMDB_Movie.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IMDB/Top_IMDB_Movie.ipynb", "imports": ["scrapy", "scrapy", "scrapy.crawler.CrawlerProcess", "scrapy.crawler.CrawlerRunner", "crochet.setup, wait_for", "crochet.setup, wait_for"], "updated_at": "", "image_url": ""}, {"objectID": "9e77de3cd0e1966b9245a077a2cee42c80084a9a388822b57d33a68f0acb6526", "tool": "INPI", "notebook": "Download PDF recap", "action": "", "tags": ["#inpi", "#pdf", "#snippet", "#url", "#naas", "#societe", "#opendata"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook downloads a PDF summary of INPI (Instituto Nacional da Propriedade Industrial) data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/INPI/INPI_Download_PDF_recap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/INPI/INPI_Download_PDF_recap.ipynb", "imports": ["urllib"], "updated_at": "", "image_url": ""}, {"objectID": "2802ff736a7d9f625d7bb08a6e63f44d451728998bc8eacf923f17faedb940f7", "tool": "IPyWidgets", "notebook": "Create button", "action": "", "tags": ["#ipywidgets", "#naas", "#secret", "#snippet", "#operation", "#button"], "author": "Ismail CHIHAB", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "description": "This notebook demonstrates how to use IPyWidgets to create an interactive button.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IPyWidgets/IPyWidgets_Create_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IPyWidgets/IPyWidgets_Create_button.ipynb", "imports": ["IPython.display.display, clear_output", "ipywidgets.widgets"], "updated_at": "", "image_url": ""}, {"objectID": "f810583e80c41aba6409ca9a2f9c0af3b653ab7a0d807b424564d03f1fd6a773", "tool": "IPyWidgets", "notebook": "Create input text and submit button", "action": "", "tags": ["#ipywidgets", "#naas", "#secret", "#snippet", "#operation", "#button", "#text"], "author": "Ismail CHIHAB", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "description": "This notebook demonstrates how to use IPyWidgets to create an interactive input text box and submit button.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb", "imports": ["IPython.display.display, clear_output", "ipywidgets.widgets"], "updated_at": "", "image_url": ""}, {"objectID": "a68d46a0afb9b7c23e894afa2019cc7a7a9f4ee51ebf45ca51289f28af308652", "tool": "IPyWidgets", "notebook": "Setup naas secret", "action": "", "tags": ["#ipywidgets", "#naas", "#secret", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions for setting up a secure connection to a NaaS (Network-as-a-Service) using IPyWidgets.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb", "imports": ["IPython.display.display, clear_output", "ipywidgets.widgets", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2b6a8399ba0ec449ff89d9613b7c9dbefa5e8eb4c3baf8b472fdbdb7847e2b43", "tool": "IUCN", "notebook": "Extinct species", "action": "", "tags": ["#iucn", "#opendata", "#extinctspecies", "#analytics", "#plotly"], "author": "Martin Delasalle", "author_url": "https://github.com/delasalle-sio-martin", "description": "Source : https://www.iucnredlist.org/statistics", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IUCN/IUCN_Extinct_species.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IUCN/IUCN_Extinct_species.ipynb", "imports": ["pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "63e5f68d32da97478d275e24f56052d1b338bc9447562f7df52aca764f0405cf", "tool": "Insee", "notebook": "Download PDF recap", "action": "", "tags": ["#insee", "#pdf", "#snippet", "#url", "#naas", "#societe", "#opendata"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook downloads PDF summaries of data from the French National Institute of Statistics and Economic Studies (INSEE).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Insee/Insee_Download_PDF_recap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Insee/Insee_Download_PDF_recap.ipynb", "imports": ["urllib"], "updated_at": "", "image_url": ""}, {"objectID": "8c1d59ba9fc141ddf76ab615ec70620884b5be94f4cde842bd75126ac862db52", "tool": "Instagram", "notebook": "Get stats from posts", "action": "", "tags": ["#instagram", "#snippet", "#dataframe", "#content"], "author": "Mohamed Abidi", "author_url": "https://www.linkedin.com/in/mohamed-abidi-919505192/", "description": "This notebook provides an easy way to analyze Instagram posts and gain insights into their performance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Instagram/Instagram_Get_stats_from_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Instagram/Instagram_Get_stats_from_posts.ipynb", "imports": ["requests", "json", "datetime", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "38c44121d518d242dcfd1209fca1b300a11475f5836b8ae8f214c0b4524816a9", "tool": "Instagram", "notebook": "Post image and caption", "action": "", "tags": ["#instagram", "#snippet", "#content"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to post images and captions to their Instagram account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Instagram/Instagram_Post_image_and_caption.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Instagram/Instagram_Post_image_and_caption.ipynb", "imports": ["instabot.Bot", "instabot.Bot", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "ea1fbba772a47f2a2f57b1c76935f62728ba2bb7749c0edd2edb475b43a35037", "tool": "Integromat", "notebook": "Trigger workflow", "action": "", "tags": ["#integromat", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows you to create automated workflows that are triggered by specific events.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Integromat/Integromat_Trigger_workflow.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Integromat/Integromat_Trigger_workflow.ipynb", "imports": ["naas_drivers.integromat"], "updated_at": "", "image_url": ""}, {"objectID": "d9501bdba4a7b281ae7e32722e5f7f8e7ad52825702b91f62463c937b0ab9129", "tool": "Johns Hopkins", "notebook": "Covid19 Active Cases", "action": "", "tags": ["#johnshopkins", "#opendata", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an interactive visualization of the active cases of Covid-19 reported by Johns Hopkins University.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Johns%20Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Johns%20Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb", "imports": ["pandas", "plotly.express", "plotly.graph_objects", "matplotlib.pyplot"], "updated_at": "", "image_url": ""}, {"objectID": "d8d061ddd919705d7ea10dbff535f312aa8690112a7689c30b77706e9b482a93", "tool": "Johns Hopkins", "notebook": "Get Covid19 data", "action": "", "tags": ["#johnshopkins", "#opendata", "#analytics", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides an easy way to access and analyze Covid19 data from Johns Hopkins University.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Johns%20Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Johns%20Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb", "imports": ["pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "db5fcbb8c6b35101661e8ce19138d4b5ffe286f326252acd8c9993a4f8ea822b", "tool": "Jupyter Notebooks", "notebook": "Add cells in notebook json", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions on how to add cells to a Jupyter Notebook using JSON.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb", "imports": ["json", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "6896c6a7f08c8189f132dadc917d7260fd09df359c2465592db7987056bca0c0", "tool": "Jupyter Notebooks", "notebook": "Add tags in cells", "action": "", "tags": ["#jupyternotebooks", "#jupyter", "#awesome-notebooks", "#tags", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to adding tags to cells in Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb", "imports": ["os", "json", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "40bc861fbc7e6401524526236bf9efeebd65f31e1cce745a877aa263ff42ac3f", "tool": "Jupyter Notebooks", "notebook": "Apply black on notebook file", "action": "", "tags": ["#jupyter", "#notebook", "#black", "#python", "#formatting", "#style"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook explains how to apply the black formatting style to a Jupyter Notebook file. It is usefull for organizations that want to ensure a consistent coding style across their notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb", "imports": ["json", "subprocess"], "updated_at": "", "image_url": ""}, {"objectID": "831c231ab1ea59f38424b6201727c2f8c65b45b75bf6e6513944957fe8399b71", "tool": "Jupyter Notebooks", "notebook": "Count code characters", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#codecharacters", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a tool to count the number of characters in code written in Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb", "imports": ["json"], "updated_at": "", "image_url": ""}, {"objectID": "3b184500ce95f1ea2824f7968046188e744c2bf9c912d17b346b15a2831ef97e", "tool": "Jupyter Notebooks", "notebook": "Count code lines", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#codelines", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a tool to count the number of lines of code in a Jupyter Notebook.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb", "imports": ["json"], "updated_at": "", "image_url": ""}, {"objectID": "4a5084bb5ec4b1b23f29c6699dddb97d95fb5bd81eb9cfbbc9c5241b2575f500", "tool": "Jupyter Notebooks", "notebook": "Get installs", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#installs", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions for installing Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_installs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_installs.ipynb", "imports": ["json", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "9fbda94a4556947e1be3d9cba5532b7757857f8dc5fab92ec7ab9df63d3a2a7e", "tool": "Jupyter Notebooks", "notebook": "Get libraries", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#libraries", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions on how to install and use libraries in Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_libraries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_libraries.ipynb", "imports": ["json", "pprint.pprint", "\" in source and \".\" in source:", "\")[0]", "\")[-1]", "\" not in source and \".\" in source:", "\")[-1]"], "updated_at": "", "image_url": ""}, {"objectID": "49c918990b576442820a51fda634fe182ae747b6379542038cc96566e894c3af", "tool": "Jupyter Notebooks", "notebook": "Read file json", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to reading and manipulating JSON files using Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Read_file_json.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Read_file_json.ipynb", "imports": ["json", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "69cd935098a7bced50fbde048ea679fadd95403925f92771cbfb08e935f17754", "tool": "Jupyter Notebooks", "notebook": "Save file ipynb", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#save", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to save their work in an interactive, web-based format (.ipynb).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb", "imports": ["json", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "7e1066808d3b59f72af3abe06bd16360aba9c812315e7d4590b08a5ea7e4cc4a", "tool": "Jupyter", "notebook": "Get server uptime", "action": "", "tags": ["#jupyter", "#server", "#uptime", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to check the server uptime using Jupyter.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_server_uptime.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_server_uptime.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "updated_at": "", "image_url": ""}, {"objectID": "8b7b0d0e546ea07301fe985252766cfa1c1a046fd3771acf0dba7a1bad478638", "tool": "Jupyter", "notebook": "Get user information", "action": "", "tags": ["#jupyter", "#user", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to retrieve user information from Jupyter.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_user_information.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_user_information.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "updated_at": "", "image_url": ""}, {"objectID": "8853628334515ac0c222cc72944e39192d0127dea12852762c80ced3ea104901", "tool": "Jupyter", "notebook": "Get user session", "action": "", "tags": ["#jupyter", "#user", "#session", "#kernels", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to get information about the current user's Jupyter session.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_user_session.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_user_session.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "updated_at": "", "image_url": ""}, {"objectID": "580e2e6eb9052fc667d90d6c2853af8778e963531368f1c22199294e3c7f9da5", "tool": "Jupyter", "notebook": "Get user terminal", "action": "", "tags": ["#jupyter", "#user", "#terminal", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a user-friendly interface to access a terminal for running commands.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_user_terminal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_user_terminal.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "updated_at": "", "image_url": ""}, {"objectID": "6c5de096a088ddb31aecdc20d57173bc5605c61ba81be7298c86cec24288d8c4", "tool": "Jupyter", "notebook": "Restart server", "action": "", "tags": ["#jupyter", "#server", "#restart", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to restart a Jupyter server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Restart_server.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Restart_server.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "updated_at": "", "image_url": ""}, {"objectID": "96e73cf9dc93e28d3e1d87b810d335505e2b1fb7a834579b2aa36f26df1e9f3a", "tool": "Kaggle", "notebook": "Download Data", "action": "", "tags": ["#kaggle", "#dataset", "#download", "#data", "#datascience"], "author": "Muhammad Waqar Gul", "author_url": "https://www.linkedin.com/in/waqar-gul", "description": "This notebook provides instructions on how to download data from Kaggle for use in data analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Kaggle/Kaggle_Download_Data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Kaggle/Kaggle_Download_Data.ipynb", "imports": ["opendatasets", "pandas", "opendatasets", "os.path"], "updated_at": "", "image_url": ""}, {"objectID": "0c9df728db7a93e2a51b17382bce93ac3e3ac414dc2e0fffb72627a0863f4107", "tool": "Knative", "notebook": "Create command file", "action": "", "tags": ["#knative", "#operations", "#dashboards", "#dash", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions on how to create a command file for Knative.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Knative/Knative_Create_command_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Knative/Knative_Create_command_file.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "658a8244b01dfe532c4faaf8423ce808aca1020f8afdf491d99810b8e1cb4ba1", "tool": "LangChain", "notebook": "CSV Agent", "action": "# LangChain - CSV Agent", "tags": ["#csv", "#agent", "#langchain", "#questionanswering", "#toolkit", "#example"], "author": "Hamid Mukhtar", "author_url": "https://www.linkedin.com/in/mukhtar-hamid/", "description": "This notebook shows how to use agents to interact with a csv. It is mostly optimized for question answering.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LangChain/LangChain_CSV_Agent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_CSV_Agent.ipynb", "imports": ["langchain", "langchain.agents.create_csv_agent", "langchain.llms.OpenAI", "langchain.chat_models.ChatOpenAI", "langchain.agents.agent_types.AgentType", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "cbffbc54c632f632e483b97eefb687edc995365015f26e51df9e55644b0272ac", "tool": "LangChain", "notebook": "Pandas Dataframe Agent", "action": "", "tags": ["#langchain", "#pandas", "#dataframe", "#agent", "#python", "#toolkit"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to use agents to interact with a pandas dataframe. It is mostly optimized for question answering.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb", "imports": ["langchain", "langchain.agents.create_pandas_dataframe_agent", "langchain.llms.OpenAI", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fe3d8478a7a0ec3a8547714e3830c73fe246cb33bbe5bafbf00d39bee94ce2e9", "tool": "LeFigaro", "notebook": "House Price analysis", "action": "", "tags": ["#lefigaro", "#investors", "#immobilier", "#markdown", "#graph", "#chart", "#analytics"], "author": "Mahanamana Andriamiharisoa", "author_url": "https://www.linkedin.com/in/mahanamana/", "description": "This notebook provides an analysis of house prices in France using data from LeFigaro.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LeFigaro/LeFigaro_House_Price_analysis.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LeFigaro/LeFigaro_House_Price_analysis.ipynb", "imports": ["requests", "bs4.BeautifulSoup", "pandas", "numpy", "matplotlib.pyplot", "plotly.express", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "479b87603a0cbdf9ac2a26af7a59038d199f9ac114b46261f5550b23ab40220d", "tool": "LinkedIn Sales Navigator", "notebook": "Extract Leads List from URL", "action": "", "tags": ["#linkedin", "#salesnavigator", "#extract", "#leads"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to extract a list of leads from a URL using LinkedIn Sales Navigator.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb", "imports": ["naas_drivers.linkedin_salesnavigator", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1b0477f9d8333372b2c07f480a0d743097d611eff7c7a7600095ae3b813cbded", "tool": "LinkedIn Sales Navigator", "notebook": "Send Leads to Spreadsheet", "action": "", "tags": ["#linkedin", "#salesnavigator", "#extract", "#leads", "#gsheet", "#leadgen"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook send a list of leads generated by LinkedIn Sales Navigator to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb", "imports": ["naas_drivers.linkedin_salesnavigator", "naas_drivers.gsheet", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "9f5596b26533283a108fba2a2dfd62794659f196cef87ccc1649802a6a85844d", "tool": "LinkedIn", "notebook": "Accept all invitations and send first message", "action": "", "tags": ["#linkedin", "#content", "#operations", "#automation", "#invitation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook helps you quickly and easily accept all LinkedIn invitations and send a personalized introductory message to each new connection.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb", "imports": ["naas", "naas_drivers.linkedin", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "e45e2cd2d424c1f1399552df2148f8494e84c0aa7f98f1ab105f7d4cdd0e8a7d", "tool": "LinkedIn", "notebook": "Accept invitation received", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook allows you to accept invitations to connect on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Accept_invitation_received.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Accept_invitation_received.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "b6b615ac66034a7ebfa52b341d1849c0352ec471108d940809c2477e5fa83f15", "tool": "LinkedIn", "notebook": "Create Post", "action": "", "tags": ["#linkedin", "#create", "#api", "#post", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates a post using Linkedin API and Supabase.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Create_Post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Create_Post.ipynb", "imports": ["os", "supabase.create_client, Client", "supabase.create_client, Client", "naas", "requests", "json", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "78ec6637e7d863b7e458ba7b49172446db1057cb307c1160da7391c0fb19f54c", "tool": "LinkedIn", "notebook": "Create posts metrics dashboard", "action": "", "tags": ["#linkedin", "#dashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a dashboard to track the performance metrics of posts created on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.
", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb", "imports": ["os", "os.environ", "pandas", "naas", "datetime.datetime", "plotly.graph_objects", "plotly.express", "plotly.subplots.make_subplots", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components._components.Container.Container", "dash.exceptions.PreventUpdate"], "updated_at": "", "image_url": ""}, {"objectID": "11b2c07be26f4a540e850f376dd2cfffa6b41699fbb48e33fd0a5eecd9155e20", "tool": "LinkedIn", "notebook": "Extract content world cloud", "action": "", "tags": ["#linkedin", "#worldcloud", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to extract content from LinkedIn and visualize it in a word cloud. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb", "imports": ["wordcloud.WordCloud", "wordcloud.WordCloud", "matplotlib.pyplot", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "f16e388f3fc8807c45263b666b7844f2b411a774e745b508c92314292953a44a", "tool": "LinkedIn", "notebook": "Follow company followers", "action": "", "tags": ["#linkedin", "#company", "#followers", "#naas_drivers", "#analytics", "#automation", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to track and follow the followers of a company on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_company_followers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_company_followers.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "7d69ccdb7722e129fb596d4ac313a428ceb333e3b508039dd77e8d57002d0530", "tool": "LinkedIn", "notebook": "Follow connections from profile", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#analytics", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to follow connections from a LinkedIn profile to build your network.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "0c1887da9a6a5b0e6944b92de5b8d5fe6809cead583534b47781b405fc1ad407", "tool": "LinkedIn", "notebook": "Follow content comments monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to track and analyze the comments on your LinkedIn content each month. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "3add0154c45189d53227375a9eb51eaf962e8d47a92e629fcfdfb5f359658c4c", "tool": "LinkedIn", "notebook": "Follow content comments weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to track and follow comments on content posted on LinkedIn on a weekly basis. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "7bd1a5021d27c602388c8453a5e295b65f4ce4e34ebeb32de85ec94654b656d9", "tool": "LinkedIn", "notebook": "Follow content engagements monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a monthly overview of content engagements on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "5ad7f9c5d30b05a69996fc91685fc7039d55107f55b3b76bb9a640fefdf96d05", "tool": "LinkedIn", "notebook": "Follow content engagements weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook helps you track and analyze your weekly content engagements on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "cc1b4c23ccb3f6694fab05812f8888d458df1076bb27bd5d1406a42e8865b339", "tool": "LinkedIn", "notebook": "Follow content frequency", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to track how often they post content on LinkedIn and follow the frequency of their posts. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_frequency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_frequency.ipynb", "imports": ["naas_drivers.linkedin", "os.path", "naas", "pandas", "datetime.datetime", "plotly.graph_objects", "plotly.subplots.make_subplots"], "updated_at": "", "image_url": ""}, {"objectID": "86d43a87776a1959277b4f7cbfea2d6a8c9cd83dc103e7ea40196db6c68366e6", "tool": "LinkedIn", "notebook": "Follow content likes monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to track and follow content on LinkedIn on a monthly basis. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "5d645f65d3876fcb8f68ec55b61551bc8fcc9dc16ce4393003cb9355d28022f7", "tool": "LinkedIn", "notebook": "Follow content likes weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to keep track of the content you like on LinkedIn and follow it on a weekly basis. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "09c380b66d03f35f056daeb6875ab67d012a9c943260b272f60ced069ad5998d", "tool": "LinkedIn", "notebook": "Follow content published by weekdays by months", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to track and follow content published on LinkedIn by day of the week and month. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects", "pandas.tseries.offsets.MonthEnd", "calendar", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "12fcfa952a1daa79c27b82ab8f6061ca506e6b7542ebfee9a844df936c90d21d", "tool": "LinkedIn", "notebook": "Follow content published monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to keep track of content published on LinkedIn each month. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "eac2762bc29e79db13a5652221c17ebee0b37012a8b88da0af2890c432339322", "tool": "LinkedIn", "notebook": "Follow content published weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to stay up-to-date with the latest content published on LinkedIn each week. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "435a57172667176064f133da7888849c0f1209e8c22bf789fd0e8ab470c3952a", "tool": "LinkedIn", "notebook": "Follow content views by weekdays by hours", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an analysis of the views of content on LinkedIn by day of the week and hour of the day. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects", "pandas.tseries.offsets.MonthEnd", "calendar", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "c480f026f88fcb2491576b76e6e0e861d709dcbed902fea6ab5407a3394358ac", "tool": "LinkedIn", "notebook": "Follow content views monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a monthly overview of the content you are following on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "c4ef3bf53e18ed4570a193932e08ef3214f5a9ddb23e526db77550e66bc7963c", "tool": "LinkedIn", "notebook": "Follow content views weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to track and analyze your weekly content views on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "c316be559091eb40bdec9c2b23ad51baf7e859b730cd2fbf93b6b0519b3012a7", "tool": "LinkedIn", "notebook": "Follow number of connections monthly", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#analytics", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook tracks the number of connections made on LinkedIn each month.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects", "plotly.subplots.make_subplots"], "updated_at": "", "image_url": ""}, {"objectID": "90e6b184ce0fb7a0025c4af64f6ced3cc38deae800bfed2b23bf3f696371c259", "tool": "LinkedIn", "notebook": "Generate leads from posts", "action": "", "tags": ["#linkedin", "#post", "#comments", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This notebook provides a guide to leveraging LinkedIn posts to generate leads for your business.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb", "imports": ["naas_drivers.linkedin, hubspot", "pandas", "numpy", "naas", "datetime.datetime, timedelta", "requests", "json"], "updated_at": "", "image_url": ""}, {"objectID": "38e3a7391f8093e9d1678cb2eb88f6606c087cf81d5dabc31334567fb05b7b55", "tool": "LinkedIn", "notebook": "Get age and gender from profile picture", "action": "", "tags": ["#linkedin", "#machinelearning", "#profile", "#identity", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Nikolaj Groeneweg", "author_url": "https://www.linkedin.com/in/njgroene/", "description": "This notebook estimates a person's age and gender based on their LinkedIn profile picture.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb", "imports": ["naas_drivers.linkedin", "urllib", "naas", "PIL.Image", "pandas", "numpy", "torch", "torch.nn", "torchvision", "torchvision.datasets, models, transforms", "torchvision", "torchvision.datasets, models, transforms", "torch_mtcnn.detect_faces", "torch_mtcnn.show_bboxes", "torch_mtcnn.detect_faces", "torch_mtcnn.show_bboxes"], "updated_at": "", "image_url": ""}, {"objectID": "1f9e57be7c17bbd6f7630dec0d4bf80fe2e2184897da9ef6eb74849aa2350da2", "tool": "LinkedIn", "notebook": "Get comments from post", "action": "", "tags": ["#linkedin", "#post", "#comments", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to retrieve comments from a post on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_comments_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_comments_from_post.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "eb94b13f89163a7980a2cf632af1e207573c35271920d52121659af1d90e0aa5", "tool": "LinkedIn", "notebook": "Get company followers", "action": "", "tags": ["#linkedin", "#company", "#followers", "#naas_drivers", "#automation", "#csv", "#content"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This templates will get all followers from your LinkedIn company and save it into a CSV.

\n**Available columns :**\n- FIRSTNAME : First name\n- LASTNAME : Last name\n- OCCUPATION : Text below the name in the profile page\n- PROFILE_PICTURE : Profile picture URL\n- PROFILE_URL : Profile URL\n- PROFILE_ID : LinkedIn profile id\n- PUBLIC_ID : LinkedIn public profile id\n- FOLLOWED_AT : Date of following company\n- DISTANCE : Distance between your profile", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_company_followers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_company_followers.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2ed63b3d62d9a60d7600c9811fcb83034ec2ccf8fcebe4d04a0b84c93e7259bd", "tool": "LinkedIn", "notebook": "Get company posts stats", "action": "", "tags": ["#linkedin", "#company", "#post", "#stats", "#naas_drivers", "#content", "#automation", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an analysis of company posts on LinkedIn, including statistics and insights.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "0a0c8e7351a55631596ec7e7867df20d01ab86dacc006501336aeefc3b9ec15c", "tool": "LinkedIn", "notebook": "Get connections from network", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#analytics", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook helps you to build your professional network on LinkedIn by connecting with people in your network.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_connections_from_network.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_connections_from_network.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "3039c637364b8851d8723243b9ac3792d374d33e6e4aa17d7912f7987a3c9fdf", "tool": "LinkedIn", "notebook": "Get contact from profile", "action": "", "tags": ["#linkedin", "#profile", "#contact", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to extract contact information from LinkedIn profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "dba7ad6aa93d52b27f68ac38681d27ba843f3eecf2c50d6f79b56cf7a744a87d", "tool": "LinkedIn", "notebook": "Get conversations", "action": "", "tags": ["#linkedin", "#message", "#getconversations", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides guidance on how to use LinkedIn to start meaningful conversations with potential connections.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_conversations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_conversations.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "ba5a15c282b5e9189b71ddc1dafa3d17bb78e85e011834fece907fad38a80576", "tool": "LinkedIn", "notebook": "Get followers from network", "action": "", "tags": ["#linkedin", "#network", "#followers", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to gaining followers on LinkedIn by leveraging your existing network.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_followers_from_network.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_followers_from_network.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "46d52b8081ec592286caf79ad464265e2ea170f657d869b90154afebc172fdaa", "tool": "LinkedIn", "notebook": "Get guests from event", "action": "", "tags": ["#linkedin", "#event", "#guests", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to using LinkedIn to connect with attendees of an event.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_guests_from_event.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_guests_from_event.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "28a47ab167568046a591d40544558a84e3385a22f3d151363bc6216f8a0b0159", "tool": "LinkedIn", "notebook": "Get identity from profile", "action": "", "tags": ["#linkedin", "#profile", "#identity", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook helps you extract identity information from LinkedIn profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "7e64f993d24b11cfe449c8b54a0b60cc51fdabf34ef7ecab7303e3f1cf2b46e4", "tool": "LinkedIn", "notebook": "Get info from company", "action": "", "tags": ["#linkedin", "#company", "#info", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to access and analyze data from LinkedIn to gain insights about companies.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_info_from_company.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_info_from_company.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "e810951640a697452790d8df52dcefc6fe0b153852fdbc64b02f6d9d408908dd", "tool": "LinkedIn", "notebook": "Get invitations received", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides an overview of invitations received on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_invitations_received.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_invitations_received.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "0cb2069ad12899638d06c4e58ca80fe82859e4a8b1129cd506a0f5d9cd3f2219", "tool": "LinkedIn", "notebook": "Get invitations sent", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook helps you to send invitations to connect on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_invitations_sent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_invitations_sent.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "f4b40da212ddcec161cf5ee03acc8fc0ef067e2d7a6994aac0f9baa88261a3aa", "tool": "LinkedIn", "notebook": "Get likes from post", "action": "", "tags": ["#linkedin", "#post", "#likes", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides tips and tricks to help you get more likes on your LinkedIn posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_likes_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_likes_from_post.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "5b91ab7f52c2a2419b44012f0eb658599ffb275c6e8215222c2436218f551efa", "tool": "LinkedIn", "notebook": "Get messages from profile", "action": "", "tags": ["#linkedin", "#message", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to access and respond to messages sent to your LinkedIn profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "40b7886be679eaf7d0c1b0d2f739297554c4a26f467bd3cabe692ae7e200d492", "tool": "LinkedIn", "notebook": "Get network from profile", "action": "", "tags": ["#linkedin", "#profile", "#network", "#followers", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook helps you to quickly and easily build your professional network on LinkedIn by extracting contacts from your profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_network_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_network_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "772920fe39026c5b2f7ac54cbe59920fd5190a8a331bbdca43cb6d62412e6dfc", "tool": "LinkedIn", "notebook": "Get polls from post", "action": "", "tags": ["#linkedin", "#post", "#polls", "#naas_drivers", "#content", "#analytics", "#image", "#html", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to get poll results from their LinkedIn posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_polls_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_polls_from_post.ipynb", "imports": ["naas_drivers.linkedin", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "c3bbc0a688cb73907fda0ee047c06ac4c28ead5e92bb3c9be20f01a199b9d9c6", "tool": "LinkedIn", "notebook": "Get posts engagements", "action": "", "tags": ["#linkedin", "#posts", "#interactions", "#metrics", "#analytics", "#automation", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides insights into how to increase engagement on LinkedIn posts. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_posts_engagements.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_posts_engagements.ipynb", "imports": ["naas", "pandas", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "1da4b1cd630239550bc3c7fab1f27f151766aaec25a552b97308ba1751c8ee8b", "tool": "LinkedIn", "notebook": "Get profile information", "action": "", "tags": ["#linkedin", "#profile", "#resume", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to access and analyze profile information from LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_profile_information.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_profile_information.ipynb", "imports": ["naas_drivers.linkedin", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "ff638a6ff20341b8d9c703bd58fb5088b4bfd7df4f07be972ae77d964ad9eb84", "tool": "LinkedIn", "notebook": "Get profile posts stats", "action": "", "tags": ["#linkedin", "#profile", "#post", "#stats", "#naas_drivers", "#content", "#automation", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to track and analyze the performance of posts on your LinkedIn profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "8b7569435004cb9dd156456bcf7d1d807f5b4fc77c072b46ebc223f9b671ad18", "tool": "LinkedIn", "notebook": "Get resume from profile", "action": "", "tags": ["#linkedin", "#profile", "#resume", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to extract resumes from LinkedIn profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "484bd5a79481d84712cb9422e5af9b6dead06ecd0eb1fb6a1acc01dc13006e29", "tool": "LinkedIn", "notebook": "Get sentiment emotion irony offensiveness from comments", "action": "", "tags": ["#linkedin", "#nlp", "#transformers", "#ai", "#post", "#comments", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Nikolaj Groeneweg", "author_url": "https://www.linkedin.com/in/njgroene/", "description": "This notebook gets all the comments on a LinkedIn post, and performs sentiment analysis, emotion classification and some semantic analysis on them. \nIt classifies each comment and returns the following information:\n\n- is the comment positive, negative or neutral?\n- is the comment ironic?\n- is the comment offensive?\n- does the comment express joy, optimism, anger or sadness?", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb", "imports": ["naas_drivers.linkedin", "transformers.pipeline", "transformers.AutoModelForSequenceClassification", "transformers.TFAutoModelForSequenceClassification", "transformers.AutoTokenizer", "numpy", "scipy.special.softmax", "csv", "urllib.request", "os.path", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e60798c0bb96ef5ed0f5bbc38d36550eb2ca05d7a8db31333acbb4e0829ed36d", "tool": "LinkedIn", "notebook": "Get stats from post", "action": "", "tags": ["#linkedin", "#post", "#stats", "#naas_drivers", "#snippet", "#content", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to track and analyze the performance of posts on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_stats_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_stats_from_post.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "454ba60f826a23c1da2e7a14200ba258bc48c26ab0b4e2546278884c5fa1967c", "tool": "LinkedIn", "notebook": "Ignore invitation received", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook is for tracking invitations received on LinkedIn that have been ignored.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "cf79c294525d2cb1495b9d0a19e50676f1eadac2aa2fa738fe2be626f61d807d", "tool": "LinkedIn", "notebook": "Send comments from post to gsheet", "action": "", "tags": ["#linkedin", "#post", "#comments", "#gsheet", "#naas_drivers", "#content", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to automatically send comments from a LinkedIn post to a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "random", "time", "pandas", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "0b5da370401973d25b59a20591783fd711110252b8b455cda4e34c1c0be273c1", "tool": "LinkedIn", "notebook": "Send company followers to Google Sheets", "action": "", "tags": ["#linkedin", "#company", "#followers", "#naas_drivers", "#automation", "#googlesheets", "#content"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to export their LinkedIn company followers to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "197e953f50f2bd29e259cadd4568587ab0f2ee2cff1f47ed233a69253f419c4f", "tool": "LinkedIn", "notebook": "Send connections from network to gsheet", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#csv", "#automation", "#content", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to export their LinkedIn connections to a Google Sheet for easy organization and tracking.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "085902bb7fa3c3f0814ec7b5309206de2c60937f383c1765d58bd70581f920df", "tool": "LinkedIn", "notebook": "Send event invitations post engagements", "action": "", "tags": ["#linkedin", "#events", "#invitations", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send event invitations and post engagements on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "requests", "time"], "updated_at": "", "image_url": ""}, {"objectID": "8f2f7ab311c3b0058af4aa3dfb216fe0e7f1a9f78d14a2f8bff4661f5f46e89c", "tool": "LinkedIn", "notebook": "Send followers demographic data to a Google Sheets spreadsheet", "action": "", "tags": ["#\"linkedin", "#googlesheets", "#gsheet", "#data", "#naas_drivers", "#demographics", "#content", "#snippet"], "author": "Asif Syed", "author_url": "https://www.linkedin.com/in/asifsyd/", "description": "This notebook allows users to easily export demographic data about their LinkedIn followers to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb", "imports": ["naas_drivers.gsheet", "naas_drivers.linkedin", "pandas", "numpy", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "b6b084bb3f63093ac35b2d2ddee1537e97e5aa2c5f288f5f1b68baf1871c3eae", "tool": "LinkedIn", "notebook": "Send invitation to company followers", "action": "", "tags": ["#linkedin", "#company", "#followers", "#invitations", "#naas_drivers", "#automation", "#content"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send invitations to their company's followers on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects", "os"], "updated_at": "", "image_url": ""}, {"objectID": "37c5863ae1a3514167b091d00832094a7c8a267ed37a464de412872cb19c50a6", "tool": "LinkedIn", "notebook": "Send invitation to profile", "action": "", "tags": ["#linkedin", "#invitation", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send invitations to connect on LinkedIn to other profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb", "imports": ["naas_drivers.linkedin", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f0fba0385a33845e76e5bcd0c3a61e1c1b6574dcbec369b6f3cc81f4da639439", "tool": "LinkedIn", "notebook": "Send invitation to profile from post likes", "action": "", "tags": ["#linkedin", "#post", "#likes", "#naas_drivers", "#invitation", "#content", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send LinkedIn invitations to profiles based on post likes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "time"], "updated_at": "", "image_url": ""}, {"objectID": "65002d9da74692480adb03f4deaa5afef7d1561f0bbf6953e2d555eeb1e5837a", "tool": "LinkedIn", "notebook": "Send invitations to post commenters", "action": "", "tags": ["#linkedin", "#post", "#comments", "#invitations", "#connections", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Asif Syed", "author_url": "https://www.linkedin.com/in/asifsyd/", "description": "This notebook allows users to quickly and easily send LinkedIn invitations to people who have commented on their posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb", "imports": ["naas_drivers.linkedin", "naas", "time"], "updated_at": "", "image_url": ""}, {"objectID": "e94667908de603647180dc81387e1c2bcfd5d0ad5397217632d78647873462cf", "tool": "LinkedIn", "notebook": "Send likes from post to gsheet", "action": "", "tags": ["#linkedin", "#post", "#likes", "#gsheet", "#naas_drivers", "#content", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook automates the process of sending likes from LinkedIn posts to a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "random", "time", "pandas", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "dd529268f794af9c567c6b89ebda05232650474d2045ffd7ba0800fa866f0e1f", "tool": "LinkedIn", "notebook": "Send message to new connections", "action": "", "tags": ["#linkedin", "#message", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Asif Syed", "author_url": "https://www.linkedin.com/in/www.linkedin.com/in/asifsyd/", "description": "This notebook allows users to quickly and easily send messages to their new LinkedIn connections.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.date", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a3372b8ea91440ad0889bc2f287878a924198874c1e5f00d36a07ebf360a73c2", "tool": "LinkedIn", "notebook": "Send message to profile", "action": "", "tags": ["#linkedin", "#message", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to send a message to a LinkedIn profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_message_to_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_profile.ipynb", "imports": ["naas_drivers.linkedin"], "updated_at": "", "image_url": ""}, {"objectID": "a6bf8dc89284ce4e8c4233f645ff59cc200717ca056b7bd1e630a1ed463e9561", "tool": "LinkedIn", "notebook": "Send message to profile from post likes", "action": "", "tags": ["#linkedin", "#post", "#likes", "#naas_drivers", "#message", "#content", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send messages to LinkedIn profiles from posts they have liked.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "time"], "updated_at": "", "image_url": ""}, {"objectID": "527096707df50d4a343fc763b05e143cd4f346da125d7cd362696fae92628e05", "tool": "LinkedIn", "notebook": "Send posts feed to gsheet", "action": "", "tags": ["#linkedin", "#profile", "#post", "#stats", "#naas_drivers", "#automation", "#content", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook automates the process of sending LinkedIn posts to a Google Sheet for easy tracking and analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "1d4114e63bdbb69e6e961f9140c1495707caf472877acb48e79061319b7c58c9", "tool": "LinkedIn", "notebook": "Send profile followers by email", "action": "", "tags": ["#linkedin", "#network", "#followers", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to send emails to their LinkedIn profile followers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb", "imports": ["naas_drivers.linkedin, emailbuilder", "naas", "pandas", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "c68448105b3374452761515cae1f4839a8efd59d518fca9b53bae22b2ee6c25c", "tool": "LinkedIn", "notebook": "Send weekly post engagement metrics by email", "action": "", "tags": ["#linkedin", "#tool", "#posts", "#engagement", "#metrics", "#analytics", "#automation", "#email", "#naas", "#notification"], "author": "Nikolaj Groeneweg", "author_url": "https://www.linkedin.com/in/njgroene/", "description": "This notebook automates the process of sending weekly post engagement metrics from LinkedIn via email.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb", "imports": ["naas_drivers.linkedin", "naas", "dateutil.parser.parse", "matplotlib.pyplot", "seaborn", "seaborn", "pandas", "datetime.datetime, date", "random", "time"], "updated_at": "", "image_url": ""}, {"objectID": "0826bb1d3a9f1983c0684a8cf33240c5bd6edeef1f65bbdfe89a7ced5138ee0c", "tool": "LinkedIn", "notebook": "Update metrics from company posts in Notion content calendar", "action": "", "tags": ["#linkedin", "#profile", "#post", "#feed", "#naas_drivers", "#notion", "#automation", "#analytics", "#naas", "#scheduler", "#content", "#plotly", "#html", "#csv", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to track the performance of their company's posts on LinkedIn by updating metrics in Notion's content calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion", "datetime.datetime", "pandas", "plotly.express", "os", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "e79fd40c42943142b09858493a155dd89ea2399f5fb45070b0ab28de29153c52", "tool": "LinkedIn", "notebook": "Update metrics from posts in Notion content calendar", "action": "", "tags": ["#linkedin", "#profile", "#post", "#feed", "#naas_drivers", "#notion", "#automation", "#analytics", "#naas", "#scheduler", "#content", "#plotly", "#html", "#csv", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to track the performance of their LinkedIn posts by automatically updating metrics from their Notion content calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion, emailbuilder", "datetime.datetime", "pandas", "plotly.express", "os", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "04c698d2af7423916c8813d69fb15a47ac877cb56b2f6a3f81aa8c0ebddb5eda", "tool": "LinkedIn", "notebook": "Withdraw pending profile invitations", "action": "", "tags": ["#linkedin", "#invitation", "#pending", "#naas_drivers", "#content", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to view and manage pending profile invitations sent through LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "time", "datetime.datetime", "dateutil.relativedelta.relativedelta", "json", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "5d656a5d27e392c123ffbf464947fa2704905053ca4492c2f5d4c83b4078df64", "tool": "Matplotlib", "notebook": "Create Waterfall chart", "action": "", "tags": ["#matplotlib", "#chart", "#warterfall", "#dataviz", "#snippet", "#operations", "#image"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to create a Waterfall chart using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb", "imports": ["numpy", "pandas", "matplotlib.pyplot", "matplotlib.ticker.FuncFormatter"], "updated_at": "", "image_url": ""}, {"objectID": "4a4589dd47268d7b41670305c96da56350a70ae172778a99f62759ae520ca82d", "tool": "Metrics Store", "notebook": "Content creation Track connections", "action": "", "tags": ["#metricsstore", "#metrics", "#content-creation", "#connections", "#content", "#snippet", "#plotly"], "author": "Riddhi Deshpande", "author_url": "https://www.linkedin.com/in/riddhideshpande/", "description": "This notebook allows users to track connections related to content creation for the Metrics Store.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Metrics%20Store/Content_creation_Track_connections.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Metrics%20Store/Content_creation_Track_connections.ipynb", "imports": ["naas_drivers.notion", "naas", "pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "32ed25173bd9f466a47c983ffa60c2443f32dfa1abefdb12445840b50f37a01f", "tool": "Microsoft Teams", "notebook": "Send message", "action": "", "tags": ["#microsoftteams", "#snippet", "#operations"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook allows users to send messages through Microsoft Teams.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Microsoft%20Teams/Microsoft_Teams_Send_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Microsoft%20Teams/Microsoft_Teams_Send_message.ipynb", "imports": ["naas_drivers.teams"], "updated_at": "", "image_url": ""}, {"objectID": "b4452f1b67f4490a67006104ca10458588e76c3188b5d0da2519c9a7d24fcf43", "tool": "Microsoft Word", "notebook": "Convert to HMTL", "action": "", "tags": ["#microsoftword", "#word", "#microsoft", "#html", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to convert Microsoft Word documents into HTML format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Microsoft%20Word/Microsoft_Word_Convert_to_HMTL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Microsoft%20Word/Microsoft_Word_Convert_to_HMTL.ipynb", "imports": ["mammoth", "mammoth"], "updated_at": "", "image_url": ""}, {"objectID": "4252489d2efa2ce3fd0f5a3307c6b97db4ab6744a01716b56f718411ccb7d4a1", "tool": "MongoDB", "notebook": "Get data", "action": "", "tags": ["#mongodb", "#database", "#naas_drivers", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to retrieve data from a MongoDB database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MongoDB/MongoDB_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Get_data.ipynb", "imports": ["naas_drivers.mongo"], "updated_at": "", "image_url": ""}, {"objectID": "ec3994d9054fd4ae36571978044ce3caca24fc1912451bb7a8d872dada0831fc", "tool": "MongoDB", "notebook": "Send data", "action": "", "tags": ["#mongodb", "#database", "#naas_drivers", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to send data to a MongoDB database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MongoDB/MongoDB_Send_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Send_data.ipynb", "imports": ["naas_drivers.mongo", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "d7646a98514c3189281b5bfe97b6c5c639807d7eb9b6d6c1367b0c0934d5d540", "tool": "MongoDB", "notebook": "Send data to Google Sheets", "action": "", "tags": ["#mongodb", "#googlesheets", "#nosql", "#operations", "#automation"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook will help you send data from your MongoDB database collection to your spreadsheet", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb", "imports": ["naas_drivers.mongo, gsheet", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "b8efa6e10ef17925c883986434e62e36da03dc7dd1c07b6660016b7ece44f8ba", "tool": "MySQL", "notebook": "Query database", "action": "", "tags": ["#mysql", "#database", "#snippet", "#operations", "#naas"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an introduction to querying a MySQL database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MySQL/MySQL_Query_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MySQL/MySQL_Query_database.ipynb", "imports": ["os", "pymysql", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "334f731f131404dea142a3cf7464a96763daa3cd3b8ce4e28e96a6796f25824c", "tool": "NASA", "notebook": "Artic sea ice", "action": "", "tags": ["#nasa", "#naas", "#opendata", "#analytics", "#asset", "#html", "#png", "#operations", "#image", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "AVERAGE SEPTEMBER MINIMUM EXTENT
\nData source: Satellite observations. Credit: NSIDC/NASA\n\n**What is Arctic sea ice extent?**
\nSea ice extent is a measure of the surface area of the ocean covered by sea ice. Increases in air and ocean temperatures decrease sea ice extent; in turn, the resulting darker ocean surface absorbs more solar radiation and increases Arctic warming.
\nDate Range: 1979 - 2020.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Artic_sea_ice.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Artic_sea_ice.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1fcde93a2f4eb30a04bb469261370e4772541277ba8e30b726593dd5939d11f6", "tool": "NASA", "notebook": "Global temperature", "action": "", "tags": ["#nasa", "#opendata", "#analytics", "#plotly"], "author": "Colyn TIDMAN", "author_url": "https://www.linkedin.com/in/dylan-pichon/", "description": "This graph illustrates the change in global surface temperature relative to 1951-1980 average temperatures. Nineteen of the warmest years have occurred since 2000, with the exception of 1998. The year 2020 tied with 2016 for the warmest year on record since record-keeping began in 1880 (source: NASA/GISS). This research is broadly consistent with similar constructions prepared by the Climatic Research Unit and the National Oceanic and Atmospheric Administration.\n\nThe time series below shows the five-year average variation of global surface temperatures. Dark blue indicates areas cooler than average. Dark red indicates areas warmer than average.\n\nThe \u201cGlobal Temperature\u201d figure on the home page dashboard shows global temperature change since 1880. One gets this number by subtracting the first data point in the chart from the latest data point.\n\nWebsite : https://climate.nasa.gov/vital-signs/global-temperature/", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Global_temperature.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Global_temperature.ipynb", "imports": ["pandas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "32201bf648e273b41b194575397810ecfb97f21cd37d9d8446341a12f96d0751", "tool": "NASA", "notebook": "Sea level", "action": "", "tags": ["#nasa", "#naas", "#opendata", "#analytics", "#plotly"], "author": "Colyn TIDMAN", "author_url": "https://www.linkedin.com/in/dylan-pichon/", "description": "Sea level rise is caused primarily by two factors related to global warming: the added water from melting ice sheets and glaciers and the expansion of seawater as it warms. The first graph tracks the change in sea level since 1993 as observed by satellites.\n\nThe second graph, derived from coastal tide gauge and satellite data, shows how much sea level changed from about 1900 to 2018. Items with pluses (+) are factors that cause global mean sea level to increase, while minuses (-) are variables that cause sea levels to decrease. These items are displayed at the time they were affecting sea level.\n\nThe data shown are the latest available, with a four- to five-month lag needed for processing.\n\n* You now need to create an Earthdata account to access NASA's sea level data. Register for free by clicking on 'Get data : http'. Once logged in you will access the data.\n\nWebsite : https://climate.nasa.gov/vital-signs/sea-level/", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Sea_level.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Sea_level.ipynb", "imports": ["pandas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "397ec80a5d605618ddb1c746bd5ae1cf2a9cde80101da5a4d1f3b50caf56dd22", "tool": "Naas Auth", "notebook": "Bearer validate", "action": "", "tags": ["#naasauth", "#naas", "#auth", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook provides a way to validate Bearer tokens for authentication with the Naas API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Auth/Naas_Auth_bearer_validate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Auth/Naas_Auth_bearer_validate.ipynb", "imports": ["naas_drivers.naasauth"], "updated_at": "", "image_url": ""}, {"objectID": "707ec48e296bbb6f5fcc8033d750087e362ad452a041e95f21c6d735dedfc4c8", "tool": "Naas Auth", "notebook": "Connect", "action": "", "tags": ["#naasauth", "#naas", "#auth", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "Naas Auth - Connect is a notebook that allows users to securely authenticate and connect to their Naas account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Auth/Naas_Auth_connect.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Auth/Naas_Auth_connect.ipynb", "imports": ["naas_drivers.naasauth"], "updated_at": "", "image_url": ""}, {"objectID": "a20de7e2d83d0f89de859559f5cf13c396e48b548762365f135ee5b9711a408f", "tool": "Naas Auth", "notebook": "Users me", "action": "", "tags": ["#naasauth", "#naas", "#auth", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook provides a user-friendly interface for authenticating users with Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Auth/Naas_Auth_users_me.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Auth/Naas_Auth_users_me.ipynb", "imports": ["naas_drivers.naasauth"], "updated_at": "", "image_url": ""}, {"objectID": "0868c0a991f66c0a07b9d6f8f005dd86de34a21d6f03a692962537e3cd119dde", "tool": "Naas Dashboard", "notebook": "Financial Consolidation", "action": "", "tags": ["#naasdashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics", "#snippet", "#datavizualisation"], "author": "Meriem Si", "author_url": "https://www.linkedin.com/in/meriem-si-104236181/", "description": "This notebook provides a comprehensive dashboard for financial consolidation and analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb", "imports": ["dash", "dash", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components", "dash_bootstrap_components", "plotly.graph_objects", "plotly.express", "os", "pandas", "naas_drivers.gsheet", "dash_bootstrap_components._components.Container.Container", "plotly.subplots.make_subplots"], "updated_at": "", "image_url": ""}, {"objectID": "b914e946e624466c61e2bc0891564eedd3c6d8fc5f59c62e5caaff62e612e88b", "tool": "Naas Dashboard", "notebook": "Revenue Cogs by Segment", "action": "", "tags": ["#naasdashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics", "#snippet", "#datavizualisation"], "author": "Fernando Chavez Osuna", "author_url": "https://www.linkedin.com/in/fernando-chavez-osuna-1a420a181", "description": "This notebook provides an analysis of revenue cogs by segment for the Naas Dashboard.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb", "imports": ["dash", "dash", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components", "dash_bootstrap_components", "plotly.graph_objects", "plotly.express", "os", "naas_drivers", "naas_drivers.gsheet", "dash_bootstrap_components._components.Container.Container", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "16c5518def67a82a87c39ce69fd9ab6a967b9e509c063c8e6541f593ed677b01", "tool": "Naas Dashboard", "notebook": "Social Media KPIs ScoreCard", "action": "", "tags": ["#naasdashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics", "#snippet", "#datavizualisation"], "author": "Ismail CHIHAB", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "description": "This notebook provides a comprehensive scorecard of key performance indicators for social media platforms.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb", "imports": ["dash", "dash", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components", "dash_bootstrap_components", "naas", "naas_drivers.gsheet", "dash.html, dash_table", "dash.dependencies.Input, Output, State", "dash.dcc", "pandas", "os"], "updated_at": "", "image_url": ""}, {"objectID": "49f156224d2f4ba86dc03cb514690634f99d651dd4c8f390d9471bd33666c42e", "tool": "Naas", "notebook": "Add or Update Asset", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations", "#add", "#update"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to copy in production a file as an asset and allow yourself to get it by calling the returned URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Asset.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Asset.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "a8e532c51f125b4b806b25baaa49c531492178fb58f0a6f823bf8b33833fab72", "tool": "Naas", "notebook": "Add or Update Dependency", "action": "", "tags": ["#naas", "#dependency", "#add", "#update", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to add or update a dependency in Naas. The naas dependency feature push files (script, csv) into production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Dependency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Dependency.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "6324a3458ed02970a57df320b23fe3db9e2b49b779c42a0851a2b64b47ad0948", "tool": "Naas", "notebook": "Add or Update Scheduler", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations", "#add", "#update"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to automate a notebook using the scheduler feature of Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Scheduler.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Scheduler.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "9881af429a735a74f8b198299ac81dd7aa1a9f1499269d69dc4673560f47dc67", "tool": "Naas", "notebook": "Add or Update Secret", "action": "", "tags": ["#naas", "#secret", "#add", "#update", "#operation", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to add or uppdate a secret to Naas.\n\nSecrets are an important part of Naas, when you need to interact with other services, you need secret, like any other variable the temptation is big to put it straight in your notebook, but this lead to a big security breach since we replicate a lot the notebook, in the versioning system, the output and your ability to share it or send it to git! \nUse this simple feature instead to have global secure storage share with your sandbox and production.\nSecrets are local to your machine and encoded, that a big layer of security with a little effort.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Secret.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Secret.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "abd7d33c33240f853371346227a2ae5b2c4b78bec62d783f4ce06e07af02da6f", "tool": "Naas", "notebook": "Add or Update Webhook", "action": "", "tags": ["#naas", "#webhook", "#add", "#update", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to add or update a webhook in production using Naas feature. The notebook will be sent to production and you will get an URL that can be triggered.\n\nWebhooks are useful because they enable real-time communication between applications, allowing for automated notifications or data exchange when specific events occur. This eliminates the need for constant polling and manual data retrieval, making webhooks efficient and scalable for various use cases.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Webhook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Webhook.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "a4c7e1cb7a80573d8aeee8b70bd4bb3aa1a2e3ebc220423757dc6330ac876253", "tool": "Naas", "notebook": "Asset demo", "action": "", "tags": ["#naas", "#asset", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "Read the doc on https://naas.gitbook.io/naas/features/asset", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Asset_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Asset_demo.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "7e51dbae8cf766d7bbe70b8e5d811776b60173220ab6eccc75086cf2480daed3", "tool": "Naas", "notebook": "Automate GitHub Auth", "action": "", "tags": ["#naas", "#asset", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an automated way to authenticate with GitHub using Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Automate_GitHub_Auth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Automate_GitHub_Auth.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "42ed86f1ce38ee92bc5c86740032d85a786e7c249673b9895f0ff3e6c5ee3944", "tool": "Naas", "notebook": "Configure Github with ssh", "action": "", "tags": ["#naas", "#git", "#github", "#jupyterlab", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://linkedin.com/in/maximejublou", "description": "This notebook provides instructions on how to configure Github with SSH for secure access to the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Configure_Github_with_ssh.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Configure_Github_with_ssh.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "55207a267c659be8a52dab480828d899bcb20c49f124060ea6c4a6f1d890531c", "tool": "Naas", "notebook": "Create Kernel", "action": "", "tags": ["#naas", "#ipython", "#conda", "#kernel"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This Jupyter Notebook will enable you to establish a new IPython Kernel that you can customize, allowing you to install any desired tools. This kernel, once created, can be selected to run your notebooks and can be used even in a production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_Kernel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Create_Kernel.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "92ddbcf7c74813cc4c906ca6b7d04cc2590230b5fb16082b396de5b9872be0cf", "tool": "Naas", "notebook": "Create Pipeline", "action": "", "tags": ["#naas", "#pipeline", "#jupyter", "#notebook", "#dataanalysis", "#workflow", "#streamline"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook is a guide that teaches you how to create a notebook pipeline using naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_Pipeline.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Create_Pipeline.ipynb", "imports": ["naas.pipeline.pipeline.("], "updated_at": "", "image_url": ""}, {"objectID": "a1b3a685ea98ec4477699d6993219645300070c5f79b8b8cdbedb74c82fc9f9d", "tool": "Naas", "notebook": "Create onboarding plugin using OpenAI", "action": " ", "tags": ["#onboarding", "#naas", "#openai", "#personas", "#ai", "#machinelearning", "#deeplearning", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a onboarding plugin into Naas-MyChatGPT app using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb", "imports": ["json", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "b8e8498be8e2a6e4ed47256dd6b987fc934f372db1ce9b0ba198bd19514296ca", "tool": "Naas", "notebook": "Credits Get Balance", "action": "", "tags": ["#naas", "#credits", "#snippet", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook provides a way to view the balance of credits available for use in the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Credits_Get_Balance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Credits_Get_Balance.ipynb", "imports": ["naas_drivers.naascredits"], "updated_at": "", "image_url": ""}, {"objectID": "faebd17e0e224ea21a9214be8a9831d2b94a5f912ab27836676b26589d608f3f", "tool": "Naas", "notebook": "Delete Asset", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to delete an asset from naas production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Asset.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Asset.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "54d4fe233930b6fe96be9c4df3daf94f17ad0a3785c88dc9818b6c126173609f", "tool": "Naas", "notebook": "Delete Dependency", "action": "", "tags": ["#naas", "#dependency", "#snipet", "#operations", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to delete a dependency from naas production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Dependency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Dependency.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "e5801f9ba44fba35f2b6845fb88f7e660692550236c17ba3b6189300fdbd905b", "tool": "Naas", "notebook": "Delete Scheduler", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to delete a naas scheduler.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Scheduler.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Scheduler.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "13f4b5a9bef18a2771e6e56c4ecd486c68e6b83c5b8be85e302ec59fcb4fc4ad", "tool": "Naas", "notebook": "Delete Secret", "action": "", "tags": ["#naas", "#secret", "#delete", "#api", "#python", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to delete a secret in Naas.\n\nSecrets are an important part of Naas, when you need to interact with other services, you need secret, like any other variable the temptation is big to put it straight in your notebook, but this lead to a big security breach since we replicate a lot the notebook, in the versioning system, the output and your ability to share it or send it to git! \nUse this simple feature instead to have global secure storage share with your sandbox and production.\nSecrets are local to your machine and encoded, that a big layer of security with a little effort.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Secret.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Secret.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "27ea4180c03a08d23d80e1786c1b59542fa459be8170a2aac537979178d4bdfc", "tool": "Naas", "notebook": "Delete Webhook", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to delete a naas webhook.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Webhook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Webhook.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "2b6603209c8adc27d4663ce554cdc239d6eca437c4cbdd0a30923eeca573b888", "tool": "Naas", "notebook": "Dependency demo", "action": "", "tags": ["#naas", "#dependency", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook demonstrates how to use Naas to manage dependencies in a project.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Dependency_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Dependency_demo.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "19034fbe5e15fb13de9738e02f6a5292dd1fcd6cac4aed92315fee5c458c3f95", "tool": "Naas", "notebook": "Doc demo", "action": "", "tags": ["#naas", "#doc", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a demonstration of how to use the Naas Docs API to create, update, and delete documents.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Doc_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Doc_demo.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "1f6c374e05c5935ce272c9d5dc0ae45735b9d21beb8ca9f23fef22cd9a190ff7", "tool": "Naas", "notebook": "Download Content Engine", "action": "", "tags": ["#naas", "#automation", "#linkedin", "#youtube", "#twitter", "#snapchat", "#instagram", "#facebook", "#tiktok", "#dataproduct"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Naas is a content engine that enables users to easily download and manage digital content.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Download_Content_Engine.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Download_Content_Engine.ipynb", "imports": ["IPython.display.display", "ipywidgets.widgets", "naas", "os.path"], "updated_at": "", "image_url": ""}, {"objectID": "e74b8806f7d7fbcafe79c6713182bc3c7d29e00f8f2e299adb90b2388baadad0", "tool": "Naas", "notebook": "Emailbuilder demo", "action": "", "tags": ["#naas", "#emailbuilder", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a demonstration of the Naas Emailbuilder, a tool for creating and managing email campaigns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Emailbuilder_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Emailbuilder_demo.ipynb", "imports": ["naas_drivers", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "1149e5c1a3d183a41ab530f754117157d2f86e1719516b99e4a263256a582065", "tool": "Naas", "notebook": "Find Asset link from path", "action": "", "tags": ["#naas", "#asset", "#path", "#link", "#find", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will help you find the asset link generated with naas from a given file path.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Find_Asset_link_from_path.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Find_Asset_link_from_path.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "5df9412ae66fd7ab475df0c83cd5f8a2f36ca695bb4292dd5433aded3dc2e890", "tool": "Naas", "notebook": "Get Transactions", "action": "", "tags": ["#naas", "#credits", "#snippet", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook provides an easy way to access and analyze transaction data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_Transactions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_Transactions.ipynb", "imports": ["naas_drivers.naascredits", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "ff3a18474c57d0d2d83b9948b2019155f36de2170d1269c715e4bbee2be82c30", "tool": "Naas", "notebook": "Get help", "action": "", "tags": ["#naas", "#help", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides helpful resources and guidance for navigating the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_help.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_help.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "bafc9570d7378763e028d2cc37280a8b0358f2e1e876500ea2b2f26622c6fed4", "tool": "Naas", "notebook": "Get number of downloads naas drivers package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to get the number of downloads for the Naas drivers package.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a3c80e86afed6d77dcb6463c1a64986dd6506f0b0e67063d62ece0219df17ea7", "tool": "Naas", "notebook": "Get number of downloads naas package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to track the number of downloads of the Naas package.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_number_of_downloads_naas_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_number_of_downloads_naas_package.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "cdc37edf1d19e1738a9b7d3ba99776a599632e661bce3cb24a35e684bf673089", "tool": "Naas", "notebook": "Get total downloads naas libraries", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to track the total number of downloads for Naas libraries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_total_downloads_naas_libraries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_total_downloads_naas_libraries.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "0f98f0161ed02bf496879b2648647afefc830264ade798125d0bc1025eb23164", "tool": "Naas", "notebook": "List Assets", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to list current assets in production.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Assets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Assets.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "d140789cfd7892de0efe6e8a0bc0dfe7f63e1bcca0670e3125f08ec0e453ff9e", "tool": "Naas", "notebook": "List Dependencies", "action": "", "tags": ["#naas", "#dependency", "#snipet", "#operations", "#list"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to list current dependencies in production.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Dependencies.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Dependencies.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "6739d81dea060c5e005aa5b45c062c5babcfc372f44b53065a79051c0caa932d", "tool": "Naas", "notebook": "List Schedulers", "action": "", "tags": ["#naas", "#schedulers", "#list", "#production", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to list current schedulers running in production.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Schedulers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Schedulers.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "7cf4e74bd33a75a559cc1e22ecc9bb70366bde9d0c458855d41f445cb1b8f8a4", "tool": "Naas", "notebook": "List Schedulers with all executions", "action": "", "tags": ["#naas", "#schedulers", "#list", "#production", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to list current schedulers running in production with all their executions meta data and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Schedulers_with_all_executions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Schedulers_with_all_executions.ipynb", "imports": ["naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "6e0e66eeeef53f91e97285ff107f1c3101bfa1142186dec4122d51dfda1e01e2", "tool": "Naas", "notebook": "List Schedulers with last execution", "action": "", "tags": ["#naas", "#schedulers", "#list", "#production", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to list current schedulers running in production with their last execution meta data and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Schedulers_with_last_execution.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Schedulers_with_last_execution.ipynb", "imports": ["naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "ce518a817ab35c537e18a42c72d3e128ed9c8631f2a01ae33c7371e9e2191c13", "tool": "Naas", "notebook": "List Secrets", "action": "", "tags": ["#naas", "#secret", "#list", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to list of your secrets stored in Naas.\nA dataframe with the following column will be retunred:\n- \"id\"\n- \"lastUpdate\"\n- \"name\"\n- \"secret\"", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Secrets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Secrets.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "745b5079821ad22ad9dffd2bb51faa5e200ff047045a7ce416742854c85e0508", "tool": "Naas", "notebook": "List Webhooks", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "**References:**\n- [Naas Documentation](https://docs.naas.ai/)\n- [Naas Webhook Documentation](https://docs.naas.ai/features/api)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Webhooks.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Webhooks.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "1f256fb50ad384b7ca469fca4ec3af4d9e67a7d37dee4022ea3e74246dfc01aa", "tool": "Naas", "notebook": "Manage Pipeline Errors", "action": "", "tags": ["#naas", "#pipeline", "#jupyter", "#notebook", "#dataanalysis", "#workflow", "#streamline"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook is a guide that teaches you how to manage errors on your notebook pipeline using naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Manage_Pipeline_Errors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Manage_Pipeline_Errors.ipynb", "imports": ["naas.pipeline.pipeline.("], "updated_at": "", "image_url": ""}, {"objectID": "e26291e9d6bfb6a7d09e27a665447ed0ea75c57dde69de0957353a0ba7e6ad0c", "tool": "Naas", "notebook": "NLP Examples", "action": "", "tags": ["#naas", "#nlp", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides examples of Natural Language Processing (NLP) using the Naas framework.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_NLP_Examples.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_NLP_Examples.ipynb", "imports": ["naas_drivers.nlp", "ant thing in your life right now?\""], "updated_at": "", "image_url": ""}, {"objectID": "0262344937e5af7b41831767036ab89858af4db92075018b0924478c1fa68804", "tool": "Naas", "notebook": "Notification demo", "action": "", "tags": ["#naas", "#notification", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook demonstrates how to use Naas to send notifications.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Notification_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Notification_demo.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "e60642c7688856536bd0f8d94b21ef04b589583f51b99100ca685605f1a977b5", "tool": "Naas", "notebook": "Remove Pipeline Executions Outputs", "action": "", "tags": ["#naas", "#scheduler", "#automation", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook removes your production pipeline executions outputs automatically.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb", "imports": ["glob", "os", "naas", "datetime.datetime", "dateutil.relativedelta.relativedelta", "shutil"], "updated_at": "", "image_url": ""}, {"objectID": "9ee266e99f40eace87c3aecf7828455a65b7bc2218e3c1420619d6f48d959a85", "tool": "Naas", "notebook": "Remove Scheduler Outputs", "action": "", "tags": ["#naas", "#scheduler", "#automation", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows users to remove scheduler outputs from the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Remove_Scheduler_Outputs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Remove_Scheduler_Outputs.ipynb", "imports": ["glob", "os", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "7a441dc7940c8af0eef50ca209a5b3ed87153419adf5048a7845589a86a0b2e7", "tool": "Naas", "notebook": "Reset Instance", "action": "", "tags": ["#naas", "#scheduler", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook provides a way to reset an instance of Naas, allowing users to start fresh with a clean slate.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Reset_Instance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Reset_Instance.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "cc6f6c0bb7460dec3abd5121eacdcd5761d972c7525d7ee9ff630df5c532f576", "tool": "Naas", "notebook": "Scheduler demo", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "Transform all your work routines in notebooks and run them even when you sleep.
\nHere we are going to use the Notifications feature to test Scheduler.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Scheduler_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Scheduler_demo.ipynb", "imports": ["IPython.display.IFrame", "naas", "IPython.display.HTML"], "updated_at": "", "image_url": ""}, {"objectID": "73ad193419ed4c56bb0430e8bd15af0b0c998e973b50790e89b450e08cfc49ca", "tool": "Naas", "notebook": "Secret demo", "action": "", "tags": ["#naas", "#secret", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "Read the doc: https://naas.gitbook.io/naas/features/secret", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Secret_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Secret_demo.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "ebdd845a8c40505f123a9e8cbe5afdd1d1acbef753489ec61a74b133e7973c53", "tool": "Naas", "notebook": "Send Asset image to Notion page", "action": "", "tags": ["#naas", "#notion", "#image", "#asset", "#send", "#vizualise"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook sends an naas image asset to a Notion page. It could be usefull to push chart created in plotly to Notion. If your page is in a notion database, you will be able to vizualise the chart in Gallery (display page content). The image asset will be updated (deleted and added) to make sure the graph display is always up to date in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb", "imports": ["naas_drivers.notion", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "551be4f36d8e50ce4395892079f25ea4f86bc3f5057eb9c3b85f5664ed741aef", "tool": "Naas", "notebook": "Send notifications from Google Sheets", "action": "", "tags": ["#naas", "#productivity", "#gsheet", "#naas_drivers", "#operations", "#snippet", "#email"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to send emails from a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb", "imports": ["naas_drivers", "naas_drivers.gsheet, emailbuilder, naasauth", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a6491850e181fce4c10f4673acf7b7a3ba172aa9246dca51b7408803e66ee3dd", "tool": "Naas", "notebook": "Set timezone", "action": "", "tags": ["#naas", "#timezone", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to set the timezone for their Naas instance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Set_timezone.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Set_timezone.ipynb", "imports": ["naas"], "updated_at": "", "image_url": ""}, {"objectID": "17a6818193a07da83c5d6e09deb7bc618424cfbb53e9405b8661bceabcdadd91", "tool": "Naas", "notebook": "Start data product", "action": "", "tags": ["#naas", "#dataproduct", "#automation"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "In this notebook, we'll walk you through the process of starting a data product using the Naas data product framework and integrating awesome-notebooks into your project. \n\nPlease note that this notebook can only be used while connected to your Naas account. If you'd like to perform these steps locally, please don't hesitate to contact us \u2013 we're more than happy to assist you.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Start_data_product.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Start_data_product.ipynb", "imports": ["urllib.request", "zipfile", "glob", "os", "shutil", "pandas", "re"], "updated_at": "", "image_url": ""}, {"objectID": "d9094479c5bfd3f36bf674ca012c3b174702051ba15319d9bd9213fd3454fd9f", "tool": "Naas", "notebook": "Use SSH tunnel to reach network protected resources", "action": "", "tags": ["#naas", "#ssh", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook provides instructions on how to use an SSH tunnel to securely access resources on a network that is otherwise protected.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb", "imports": ["sshtunnel", "sshtunnel", "psycopg2", "psycopg2"], "updated_at": "", "image_url": ""}, {"objectID": "def658c3a83d17228a73685b81bbf7979a78a6c56aba2b79ba99b414bacbc26a", "tool": "Naas", "notebook": "Webhook demo", "action": "", "tags": ["#naas", "#webhook", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "## Basic formulas\nRunning this command will add your this notebook to the \"\u26a1\ufe0f Production\" folder.
\nYou can then, trigger it with the generated URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Webhook_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Webhook_demo.ipynb", "imports": ["naas", "naas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "615ec6a8a79947d3ad3332806a73e9d47724fb113848dfdbff7166e70b84e367", "tool": "Neo", "notebook": "Get currencies live prices", "action": "", "tags": ["#neo", "#bank", "#snippet", "#finance", "#csv"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides live currency prices for various currencies.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Neo/Neo_Get_currencies_live_prices.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Neo/Neo_Get_currencies_live_prices.ipynb", "imports": ["pathlib.Path", "pandas", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "ad988b3acb38ff32d1a21f78c88a01d3436a580add95cb262464d26b5b65eb39", "tool": "Newsapi", "notebook": "Get data", "action": "", "tags": ["#newsapi", "#news", "#snippet", "#opendata", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a guide to using the Newsapi service to access and retrieve data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Newsapi/Newsapi_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Newsapi/Newsapi_Get_data.ipynb", "imports": ["naas_drivers.newsapi"], "updated_at": "", "image_url": ""}, {"objectID": "8c7a4d82d6c655fc8c32095c16c53da8d6a524084ffa01fc55f762ffe5e37c8b", "tool": "Newsapi", "notebook": "Run sentiment analysis", "action": "", "tags": ["#newsapi", "#news", "#sentimentanalysis", "#ai", "#opendata", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook uses Newsapi to analyze the sentiment of news articles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Newsapi/Newsapi_Run_sentiment_analysis.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Newsapi/Newsapi_Run_sentiment_analysis.ipynb", "imports": ["naas_drivers.newsapi, sentiment"], "updated_at": "", "image_url": ""}, {"objectID": "ad3d5031c222cb811084f9a2641946b57cd17649f5b03f8a92a93e9dc8e41b09", "tool": "Newsapi", "notebook": "Send emails briefs", "action": "", "tags": ["#newsapi", "#news", "#emailbrief", "#automation", "#notification", "#opendata", "#email", "#image", "#html", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to send automated email briefs based on news articles from the Newsapi API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Newsapi/Newsapi_Send_emails_briefs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Newsapi/Newsapi_Send_emails_briefs.ipynb", "imports": ["naas_drivers.newsapi, emailbuilder", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "4aa241b693f1246fa34f81ec73340d9e657d507c316332d862408e86fed3942b", "tool": "Notion", "notebook": "Add bulleted list in page", "action": "", "tags": ["#notion", "#list", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to add a bulleted list in a Notion page from a list object using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_bulleted_list_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_bulleted_list_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "788383d93e10f1f9b502ed7ff62013a2bf073f2cfeac45af26371468ddfdd8b1", "tool": "Notion", "notebook": "Add code block in page", "action": "", "tags": ["#notion", "#code", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to add a code block in a Notion page using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_code_block_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_code_block_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "bb1c62a68b1e8bed37eb699e857a6e8c1670d91567737b8a3840184e186ff29d", "tool": "Notion", "notebook": "Add cover image to page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows you to add a cover image to a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_cover_image_to_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_cover_image_to_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "931f3ae1a90765ff01a284401428ad56c74361da0b992df5a610e52026fd44c4", "tool": "Notion", "notebook": "Add equation in page", "action": "", "tags": ["#notion", "#equation", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to add an equation in a Notion page using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_equation_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_equation_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d0f211ded04e761c43109a9fbfd6aec9e38174a7ed52fe67e1a08acf1ebdbe25", "tool": "Notion", "notebook": "Add heading in page", "action": "", "tags": ["#notion", "#heading", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to add headings in a Notion page using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_heading_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_heading_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c4808da990d67ce7069e2d1f01e33141b6d6609af3c3bb90fe732ce8dc98ae8f", "tool": "Notion", "notebook": "Add icon image to page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows users to add an icon image to a Notion page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_icon_image_to_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_icon_image_to_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "93987b3107b56dd9a02b79dcba1e47e3af68eaba6f0492e3eb8de9e42684400a", "tool": "Notion", "notebook": "Add new github member to team from database", "action": "", "tags": ["#github", "#teams", "#automation", "#notion", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows users to add new GitHub members to their team from a database in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb", "imports": ["requests", "naas_drivers.github, notion", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "56ee3de913cfdbf390142378217d08ff30cf5c01c780d9811b8a15593e60e2a4", "tool": "Notion", "notebook": "Add numbered list in page", "action": "", "tags": ["#notion", "#list", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to add a numbered list in a Notion page from a list object using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_numbered_list_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_numbered_list_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d23f9df5b983b569726995526e7659c222c8899834f4b7b5b0e5a79f7ca0bd8a", "tool": "Notion", "notebook": "Add paragraph with link in page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#block", "#paragraph", "#link", "#snippet", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows you to add a paragraph with a link to a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_paragraph_with_link_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_paragraph_with_link_in_page.ipynb", "imports": ["naas_drivers.notion", "naas_drivers.tools.notion.Link"], "updated_at": "", "image_url": ""}, {"objectID": "a325c9e4b91d0842ed3a531aaf5e9e21c0ff0652bab97a3f95a3eb62cc3ffd1a", "tool": "Notion", "notebook": "Add to do list in page", "action": "", "tags": ["#notion", "#todo", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook explains how to add a to do list in a Notion page using naas_drivers from a list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_to_do_list_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_to_do_list_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "97611fe6842bbe2afb50f53ddebbffd33454595b869913c9d6249105197b4530", "tool": "Notion", "notebook": "Automate transcript generation from recording link in page property", "action": "", "tags": ["#notion", "#aws", "#transcribe", "#S3", "#automation"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows users to automatically generate transcripts from audio recordings by linking the recording to a page property in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb", "imports": ["pydash", "threading, queue", "uuid", "rich.print", "rich.print", "sys", "json", "datetime", "codecs", "time", "os", "markdown", "gdown", "gdown", "boto3", "naas_drivers.notion", "naas_drivers.tools.notion.BlockTypeFactory", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "7597da846b5c5a212d1fe3763deaf09315f9358b9b04523cbea93045eba467e1", "tool": "Notion", "notebook": "Create page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "Notion is a powerful tool for creating and organizing digital pages to help you stay organized and productive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Create_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Create_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "429365440a90db93a370330df99e41a4718d24029f7a2a3e24990304ce409614", "tool": "Notion", "notebook": "Create pages in database from dataframe", "action": "", "tags": ["#notion", "#database", "#dataframe", "#python", "#create", "#pages"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create pages in Notion database from a dataframe. It could be very usefull to kick start a new database in Notion with historical data stored in CSV, Excel or Google Sheets.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb", "imports": ["naas", "pandas", "naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "bf17bd2f86490d3fbed728c4a602153d357748a2ab81f5e3385f32c116d6fd78", "tool": "Notion", "notebook": "Delete all pages from database", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#database"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook deletes all page from a Notion database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Delete_all_pages_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Delete_all_pages_from_database.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "458696751173998a5878523a07bf2866a1d97db0aae077ae663183415f6c7178", "tool": "Notion", "notebook": "Delete blocks from page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to quickly and easily delete blocks from their Notion page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Delete_blocks_from_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Delete_blocks_from_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "4be524b722d7eabf85ecb8dcda5e06cd8559567a9c5ccb55eba8915fb982f337", "tool": "Notion", "notebook": "Delete page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to delete a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Delete_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Delete_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "47be8362b5f8f8d9db5c0a9dfbc4f912f4f4593f332adfb7f9ae174fceb42ce5", "tool": "Notion", "notebook": "Duplicate page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#duplicate", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to quickly and easily duplicate a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Duplicate_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Duplicate_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "80547ec83f52f9ee3c926af6f709f3d25b583d2d6d2f4be6d6c7a60f0106f5d5", "tool": "Notion", "notebook": "Explore API", "action": "", "tags": ["#notion", "#productivity", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an exploration of the Notion API, allowing users to access and manipulate data from Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Explore_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Explore_API.ipynb", "imports": ["requests", "pandas", "json"], "updated_at": "", "image_url": ""}, {"objectID": "98ab1c462dc32c96d8a60d3f8fa617498096792f891ac48924fc03d4b059d655", "tool": "Notion", "notebook": "Generate Google Sheets rows for new items in database", "action": "", "tags": ["#notion", "#operations", "#automation", "#googlesheets"], "author": "Pooja Srivastava", "author_url": "https://www.linkedin.com/in/pooja-srivastava-in/", "description": "This notebook allows users to automatically generate Google Sheets rows for new items added to a database using Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb", "imports": ["naas_drivers.notion, gsheet", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "68a8540ec1e573bbc2c31b844cc383fa99b73ec2781df0f494fdb9f41965b46a", "tool": "Notion", "notebook": "Get blocks from page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to quickly and easily add blocks from a page to their Notion workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_blocks_from_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_blocks_from_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "7c5540e6853c6605a0a64c7bd1860d3bcf4b7843ecbae96ae22a318b4f2fa5dc", "tool": "Notion", "notebook": "Get database", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "Notion is a powerful database tool that helps you organize and store your data in an intuitive and efficient way.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_database.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "42775adb8e2a5be84c11094169c73f67378aa924d6030d5b0e5cdbcf84e84980", "tool": "Notion", "notebook": "Get page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to quickly and easily create and organize webpages for any purpose.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "cf37eca2469767cb53d562a97383fb6cad12c0691fb3b44fabdbfc1030ec3d5d", "tool": "Notion", "notebook": "Get users", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "Notion is a powerful tool that helps users organize their thoughts, tasks, and projects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_users.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "77e598f0bed1b6807032066684a6b6aceed5057fd135e73b41791915c998bea3", "tool": "Notion", "notebook": "Send LinkedIn invitations from database", "action": "", "tags": ["#notion", "#invitation", "#automation", "#content", "#linkedin"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook allows users to quickly and easily send LinkedIn invitations to contacts stored in a database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb", "imports": ["naas", "naas_drivers.notion, linkedin", "pandas", "os", "datetime.datetime", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "e07ad2e7f764a2bd25534ca5e6a87a54d39d7a73d4b297b21b44cc8a4e51518e", "tool": "Notion", "notebook": "Send Slack Messages For New Database Items", "action": "", "tags": ["#notion", "#slack", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://api.slack.com/authentication/basics\n\n- For this use case we need to create & use user token, rather than bot token with the following permissions/scopes -> [channels: history, channels: read, chat: write, users: read]", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb", "imports": ["naas_drivers.notion, slack", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "906dd0ec9b68828a094cc58111e34dd14acf152e2491afde7116537297f31733", "tool": "Notion", "notebook": "Sent Gmail On New Item", "action": "", "tags": ["#notion", "#gsheet", "#productivity", "#naas_drivers", "#operations", "#automation", "#email"], "author": "Arun K C", "author_url": "https://www.linkedin.com/in/arun-kc/", "description": "This notebook allows you to quickly send an email notification when a new item is added to Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Sent_Gmail_On_New_Item.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Sent_Gmail_On_New_Item.ipynb", "imports": ["naas", "naas_drivers.notion, gsheet", "naas_drivers.html", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "647d794df1c42fc8ef111f4ab6109a20bf4dd82da1279723111080e06d84f250", "tool": "Notion", "notebook": "Update database with GitHub repositories info", "action": "", "tags": ["#notion", "#database", "#update", "#github", "#repositories", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook updates a Notion database with information from all repositories within your GitHub organization. The following data will be updated in your Notion database:\n- Name: The name of the repository.\n- GitHub URL: The URL for the repository on GitHub.\n- Description: A brief description of what the repository is for.\n- Default branch: The default branch for the repository (i.e., the branch that is checked out when someone first clones the repository).\n- Visibility: The visibility status of the repository (e.g., public, private, or internal).\n- Created date: The date when the repository was created.\n- Last updated date: The date when the repository was last updated.\n- Open Issues: The number of unresolved issues (i.e., bug reports, feature requests, or other tasks) in the repository.\n- Forks: The number of times the repository has been forked (i.e., copied to another GitHub account).\n- Stargazers: The number of GitHub users who have \"starred\" the repository (i.e., marked it as a favorite).\n- Size: The size of the repository in terms of disk space used.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb", "imports": ["naas", "naas_drivers.notion", "pandas", "re", "datetime.datetime", "os", "requests", "naas", "github"], "updated_at": "", "image_url": ""}, {"objectID": "3d62f956e5054214458eaa0d181bcdcf3eb6992b59688563cc9eeb75c60e0ed3", "tool": "Notion", "notebook": "Update database with LinkedIn company info", "action": "", "tags": ["#notion", "#database", "#update", "#linkedin", "#company", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook streamlines the process of updating a Notion database containing company names by extracting relevant information from LinkedIn using Google search, as well as utilizing Naas_Drivers.Notion and Naas_Drivers.LinkedIn.The following data will be updated in your Notion database:\n- Name: The name of the company or organization.\n- LinkedIn: The company's LinkedIn page.\n- Website: The company's website URL.\n- Industry: The industry or industries that the company operates in.\n- Specialties: The areas of expertise or specialization for the company or its products/services.\n- Tagline: A brief statement that summarizes the purpose or mission of the company or organization.\n- City: The city or cities where the company is headquartered or operates.\n- Country: The country where the company is headquartered or operates.\n- Staff Count: The number of employees or staff members employed by the company.\n- Staff Range: The range of employee count (e.g., 1-10, 11-50, 51-200, etc.) that the company falls into.\n- Followers: The number of LinkedIn users who follow the company's page or profile.\n\nOverall, this notebook can be useful for any business or individual who needs to keep track of company information for various purposes:\n- Sales prospecting: Sales teams could use the updated database to identify potential new leads and target them with personalized outreach based on their company information.\n- Competitor analysis: Marketers could use the updated database to track changes in their competitors' company information, such as changes in leadership or expansion into new markets.\n- Industry research: Researchers could use the updated database to gather information on companies within a particular industry, such as their size, location, and areas of expertise.\n- Investor relations: Investors could use the updated database to identify potential investment opportunities and track the performance of companies they are interested in.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion", "googlesearch.search", "googlesearch.search", "re", "datetime.datetime", "os", "requests", "pandas", "time"], "updated_at": "", "image_url": ""}, {"objectID": "1033382f0063e3cfe04100c99b1780a7eda0ca450d3e26f634e50217db5c1f0d", "tool": "Notion", "notebook": "Update database with LinkedIn profile info", "action": "", "tags": ["#notion", "#database", "#update", "#linkedin", "#company", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook streamlines the process of updating a Notion database containing profile names by extracting relevant information from LinkedIn using Google search, as well as utilizing Naas_Drivers.Notion and Naas_Drivers.LinkedIn. The following data will be updated in your Notion database:\n- Name: The name of the person who owns the LinkedIn profile.\n- LinkedIn: LinkedIn unique URL\n- Occupation: The job or profession that a person is engaged in, listed on their LinkedIn profile.\n- Industry: The field or sector in which a person works, listed on their LinkedIn profile.\n- City: The specific city where a person lives or works, listed on their LinkedIn profile.\n- Region: A broader geographic area that a person's city may be located in, such as a state or province, listed on their LinkedIn profile.\n- Country: The nation where a person is located or from, listed on their LinkedIn profile.\n- Location: The overall geographic location of a person, which may include their city, region, and country, listed on their LinkedIn profile.\nAdditionally, the background picture will be refreshed as the page cover, the profile picture will serve as the page icon, and the occupation and summary will be included in the page block.\n\nOverall, this notebook can be useful for any business or individual who needs to keep track of company information for various purposes:\n- Lead generation: Sales teams could use the updated Notion database to identify potential leads based on their LinkedIn profiles, and initiate targeted outreach to convert them into customers.\n- Talent sourcing: Recruiters could use the updated Notion database to find and evaluate potential job candidates based on their LinkedIn profiles and relevant information stored in the database.\n- Social media marketing: Marketers could use the updated Notion database to build custom audiences for their social media campaigns based on the information stored in the database and on LinkedIn.\n\nDisclamer:\n\nWhen using this script to scrape profiles from LinkedIn, it's important to set a limit on the number of API calls made to avoid being temporarily banned. LinkedIn heavily monitors scraping activities, and excessive usage can result in a ban. We recommend setting a limit of no more than 5 calls per hour to minimize the risk of being banned. As the owner of the script, it's your responsibility to use it responsibly and abide by LinkedIn's terms of service. We assume no liability for any consequences resulting from your use of this script.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion", "googlesearch.search", "googlesearch.search", "re", "datetime.datetime", "os", "requests", "pandas", "time"], "updated_at": "", "image_url": ""}, {"objectID": "43d0796ae3f58df0ec5a640ddf8e9f266d824f70fa69f7c5040b370b38891ce0", "tool": "Notion", "notebook": "Update page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This page allows you to update existing content in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_page.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "235b5d348b55afe007e3513452df95b030d2cc3d20d5b5fcb660fca90b2bb5cc", "tool": "Notion", "notebook": "Update page relation", "action": "", "tags": ["#notion", "#update", "#page", "#relation", "#requests", "#api"], "author": "Florent Ravenel", "author_url": "https://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to update page relation using requests. It is usefull for organization to link different database in Notion and keep track of their data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_page_relation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_page_relation.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "0f1c3555b4539891a61581be2563e3fd819cdb141143895228ae433671329520", "tool": "Notion", "notebook": "Update pages from database", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows users to easily update Notion pages with data from a database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_pages_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_pages_from_database.ipynb", "imports": ["naas_drivers.notion"], "updated_at": "", "image_url": ""}, {"objectID": "f31df883dd65a1a2a6c484ade655deba402bdba6d0e39ad0c1c39134cd906e05", "tool": "Notion", "notebook": "Upload PDF in page", "action": "", "tags": ["#notion", "#upload", "#pdf", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook explains how to upload a PDF in a Notion page using naas_drivers. It is usefull for organizations that need to share PDFs to their Notion pages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Upload_PDF_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Upload_PDF_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "07b01cd0416973045c2e923af3028b3a426dc84dfc193499ee839e0e47bedaba", "tool": "Notion", "notebook": "Upload image in page", "action": "", "tags": ["#notion", "#upload", "#image", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook explains how to upload an image in a Notion page using naas_drivers. It is usefull for organizations that need to add visuals to their Notion pages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Upload_image_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Upload_image_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c0cc2a6a750077e302585962ecee4b2ae5eb1195392b4b4477497044184b4bb2", "tool": "Notion", "notebook": "Upload video in page", "action": "", "tags": ["#notion", "#upload", "#video", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook explains how to upload a video in a Notion page using naas_drivers. It is usefull for organizations that need to add videos to their Notion pages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Upload_video_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Upload_video_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "977ec013ec588028ac032ba6a88411db2b70ed9108e892a74d52b4bacec388ac", "tool": "OS", "notebook": "Access environment variable", "action": "", "tags": ["#python", "#environment", "#variables", "#os", "#environ", "#object", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to access a particular environment variable using the Python `os.environ` object. Environment variables are useful in several ways:\n- Portability: Environment variables are independent of the code and can be easily ported across systems. This means that you can define an environment variable once, and use it in multiple scripts, applications, or systems without having to hardcode the variable's value.\n- Security: Environment variables can be used to store sensitive information like passwords or API keys, which can be accessed by the code without exposing them in the script. This is particularly useful when you need to deploy your code to a server or share it with others.\n- Flexibility: Environment variables allow you to change the behavior of your code without modifying the code itself. This is useful when you need to modify the behavior of your code based on different scenarios, such as development, testing, or production environments.\n- Configuration: Environment variables can be used to configure your code, by providing default values for variables that can be overridden by environment variables. This makes your code more flexible and easier to customize.\n\nOverall, environment variables are a useful tool for managing configuration settings and sensitive information in your code, and can make your code more portable, secure, and flexible.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Access_environment_variable.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Access_environment_variable.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "7bb2bd353adc40ef26a95c190775b078cdc6c910196b17c68f2f8b700bcaa585", "tool": "OS", "notebook": "Add new environment variable", "action": "", "tags": ["#python", "#environment", "#variables", "#os", "#environ", "#object", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to add or update variables in environment using the Python `os.environ` object. Environment variables are useful in several ways:\n- Portability: Environment variables are independent of the code and can be easily ported across systems. This means that you can define an environment variable once, and use it in multiple scripts, applications, or systems without having to hardcode the variable's value.\n- Security: Environment variables can be used to store sensitive information like passwords or API keys, which can be accessed by the code without exposing them in the script. This is particularly useful when you need to deploy your code to a server or share it with others.\n- Flexibility: Environment variables allow you to change the behavior of your code without modifying the code itself. This is useful when you need to modify the behavior of your code based on different scenarios, such as development, testing, or production environments.\n- Configuration: Environment variables can be used to configure your code, by providing default values for variables that can be overridden by environment variables. This makes your code more flexible and easier to customize.\n\nOverall, environment variables are a useful tool for managing configuration settings and sensitive information in your code, and can make your code more portable, secure, and flexible.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Add_new_environment_variable.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Add_new_environment_variable.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "141f931922bdd2a673d198df328243e7aed56d0ecd1f1c4c83a1b08a2ba263f5", "tool": "OS", "notebook": "Check path exist", "action": "", "tags": ["#os", "#python", "#path", "#file", "#system", "#library", "#snippet", "#operations", "#check"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook will show how to check a path exist using os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Check_path_exist.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Check_path_exist.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "86ee474d174e9f2394b370c69bd4c0de68646b8b9c45c02cbce83cf4edde0a74", "tool": "OS", "notebook": "Create directory", "action": "", "tags": ["#os", "#snippet", "#python", "#operations"], "author": "Moemen Ebdelli", "author_url": "https://www.linkedin.com/in/moemen-ebdelli", "description": "This notebook provides instructions on how to create a directory in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Create_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Create_directory.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "2eca9945533598a7b77fba6dd42d083942103cf78ce933470cfdedc5f385d6da", "tool": "OS", "notebook": "Get access of environment variables", "action": "", "tags": ["#python", "#environment", "#variables", "#os", "#environ", "#object"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook explains how to use of `os.environ` to get access of environment variables. Environment variables are useful in several ways:\n- Portability: Environment variables are independent of the code and can be easily ported across systems. This means that you can define an environment variable once, and use it in multiple scripts, applications, or systems without having to hardcode the variable's value.\n- Security: Environment variables can be used to store sensitive information like passwords or API keys, which can be accessed by the code without exposing them in the script. This is particularly useful when you need to deploy your code to a server or share it with others.\n- Flexibility: Environment variables allow you to change the behavior of your code without modifying the code itself. This is useful when you need to modify the behavior of your code based on different scenarios, such as development, testing, or production environments.\n- Configuration: Environment variables can be used to configure your code, by providing default values for variables that can be overridden by environment variables. This makes your code more flexible and easier to customize.\n\nOverall, environment variables are a useful tool for managing configuration settings and sensitive information in your code, and can make your code more portable, secure, and flexible.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Get_access_of_environment_variables.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_access_of_environment_variables.ipynb", "imports": ["os", "pprint"], "updated_at": "", "image_url": ""}, {"objectID": "c7bf168e0033b04e424d24283c3804f677d20958b8a7519e60e69f4a176cddc1", "tool": "OS", "notebook": "Get current working directory", "action": "", "tags": ["#os", "#python", "#snippet", "#operations", "#operatingsystem"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook demonstrates how to get the current working directory using `os` module. The main purpose of the OS module is to interact with your operating system. The primary use I find for it is to create folders, remove folders, move folders, and sometimes change the working directory. You can also access the names of files within a file path by doing listdir(). We do not cover that in this video, but that's an option.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Get_current_working_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_current_working_directory.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "17ab0d4319f5f16b54359cb73279a21fea85248f5b54e3e982edc251fe0735df", "tool": "OS", "notebook": "List entries in directory", "action": "", "tags": ["#os", "#listdir", "#directory", "#python", "#entries", "#list"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook explains how to use the Python method listdir() to list entries in a directory. It is usefull for organizations to quickly access the content of a directory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_List_entries_in_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_List_entries_in_directory.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "fa208f2a6760c8f1d61394c59eb08948b2421d0ca23668df0927b40b12a0ee11", "tool": "OS", "notebook": "Remove file", "action": "", "tags": ["#os", "#python", "#remove", "#file", "#system", "#library", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to remove file from system using os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Remove_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Remove_file.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "41e782306e5647529deb821db88d07feef810caef4389f00189aaaf47a7207c8", "tool": "OS", "notebook": "Rename file", "action": "", "tags": ["#os", "#python", "#snippet", "#operations"], "author": "Divakar", "author_url": "https://www.linkedin.com/in/divakar-r-9b34b86b/", "description": "This notebook will show how to rename file using os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Rename_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Rename_file.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "dd67e8c7161225db2d49f17a8c6a4a6cc7271cedae8a67457fd0c8f93a77fe27", "tool": "OpenAI", "notebook": "Act as a AI enthusiast", "action": " ", "tags": ["#ai", "#aienthusiast", "#artificialintelligence", "#aitrends", "#aiconcepts", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as an AI enthusiast.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e089ce867bca0f37f131ec352c85601eff2db8edd0911052eac3475fc655090e", "tool": "OpenAI", "notebook": "Act as a Business Analyst", "action": " ", "tags": ["#ai", "#businessanalyst", "#businessdata", "#businessprocess", "#strategicrecommendations", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Business Analyst.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "fd738792e7b58c349a01bc30c83d122ce30392568a232eda55191d80dc6814d9", "tool": "OpenAI", "notebook": "Act as a CEO", "action": " ", "tags": ["#ai", "#ceo", "#businessstrategy", "#leadership", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a CEO.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "3e28fb1c0bcee19d8c363e9e8addc7cee4ad8969a4f6c9921f2a3e8ce96b9e83", "tool": "OpenAI", "notebook": "Act as a COO", "action": " ", "tags": ["#ai", "#coo", "#operationsmanagement", "#processimprovement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a COO.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_COO.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_COO.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_COO.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "eec5d99cbc73d38ea2e7400ca902510b35ec5ebdbe153092031f147f43267fbc", "tool": "OpenAI", "notebook": "Act as a CTO", "action": " ", "tags": ["#ai", "#cto", "#technologystrategy", "#innovation", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a CTO.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "65dc3f7dae157ebebe828bd8061d78213f87fc22fc9fd49d327c35513ec477cd", "tool": "OpenAI", "notebook": "Act as a Creative Writer or Artist", "action": " ", "tags": ["#ai", "#creativewriter", "#artist", "#creativity", "#artistictechniques", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Creative Writer or Artist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1afec4ff0f173c25314065d105a85838b48804ff47595ce2444ccfb5ca26fcb6", "tool": "OpenAI", "notebook": "Act as a Data Analyst", "action": " ", "tags": ["#ai", "#dataanalyst", "#datadrivendecisions", "#datamining", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Data Analyst.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "a6c10ae13d722f012562c528deb87b8e69e98b94554d16adbd3f38269cbe5b51", "tool": "OpenAI", "notebook": "Act as a Data Scientist", "action": " ", "tags": ["#ai", "#datascientist", "#predictivemodels", "#machinelearning", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Data Scientist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "55fd10670c15ad9320e3aa49bcb93b4c066c52f0cf509efd9fc98c280d6ddfe7", "tool": "OpenAI", "notebook": "Act as a Educator or student", "action": " ", "tags": ["#ai", "#educator", "#student", "#academictopics", "#teachingstrategies", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as an Educator or Student.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "55eae5ebdc323c73316e2e081956e9eac4bbeb2a0839a125a3cfe59b862194ca", "tool": "OpenAI", "notebook": "Act as a Hobbyist", "action": " ", "tags": ["#ai", "#hobbyist", "#personalprojects", "#hobbyimprovement", "#skilllearning", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Hobbyist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "940a2ff7ae284b98d7de3461aa5d1e39e7f81da8c48e3625eee2a2f0489a1733", "tool": "OpenAI", "notebook": "Act as a Homeowner", "action": " ", "tags": ["#ai", "#homeowner", "#homeimprovement", "#homemaintenance", "#interiordesign", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Homeowner.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "43d678efc249da05fe4325e50508c8b2b8daa6223fbb14959a550c6266f8ae6f", "tool": "OpenAI", "notebook": "Act as a IT Professional", "action": " ", "tags": ["#ai", "#itprofessional", "#technicalsupport", "#itinfrastructure", "#ittrends", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as an IT Professional.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "99f62044e567ead43fe936c1e72f88cd37d15b79a0c89cca5a9e21c00ef98a13", "tool": "OpenAI", "notebook": "Act as a Lifelong learner", "action": " ", "tags": ["#ai", "#lifelonglearner", "#knowledgeseeker", "#skilllearning", "#subjectexploration", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Lifelong Learner.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f54c6d7a2daa62c82a631fa4ab51c338f914000cd3f1d19da7c969fff7d188a2", "tool": "OpenAI", "notebook": "Act as a Marketer", "action": " ", "tags": ["#ai", "#marketer", "#marketingstrategy", "#markettrends", "#brandengagement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Marketer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Marketer.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Marketer.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Marketer.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "084134f6feae47a6c539c638604e7d552f8893513c977ff459d76fced826328e", "tool": "OpenAI", "notebook": "Act as a Parent or Child", "action": " ", "tags": ["#ai", "#parent", "#child", "#parentingchallenges", "#schoolwork", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Parent or Child.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "ca91e684a5fc178a0b1dbb80ab49c3e5386ce19b51eda90c63427cb68e6b5025", "tool": "OpenAI", "notebook": "Act as a Product Manager", "action": " ", "tags": ["#ai", "#productmanager", "#productdevelopment", "#marketresearch", "#userexperience", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Product Manager.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "24bd8cd6a348ded1f22936aec33f1a0522c76226c9a996dddd8c73dad98049f3", "tool": "OpenAI", "notebook": "Act as a Project Manager", "action": " ", "tags": ["#ai", "#projectmanager", "#projectplanning", "#resourcemanagement", "#riskmanagement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Project Manager.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "3c3958d3f040b8f3d30c0d40b70f64c1af78aa46103f47a7d10b2c2af6072c7b", "tool": "OpenAI", "notebook": "Act as a Retiree", "action": " ", "tags": ["#ai", "#retiree", "#retirementactivities", "#newskills", "#retirementmanagement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Retiree.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Retiree.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Retiree.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Retiree.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "bca43175667c72622b34f1fb4feac25f63315fda2ec00144181e56f6620145b4", "tool": "OpenAI", "notebook": "Act as a Sales Professional", "action": " ", "tags": ["#ai", "#salesprofessional", "#salesstrategies", "#customerrelations", "#salestechniques", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Sales Professional.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "12d9e1e7fe7284ba1cd450267f66313c8eb3580426bcac8b44048910f6870162", "tool": "OpenAI", "notebook": "Act as a Software Developer", "action": " ", "tags": ["#ai", "#softwaredeveloper", "#coding", "#softwaredevelopment", "#programminglanguages", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Software Developer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "1e73b76a7ed2ddd2004c409dcfa0e5b4d768f38ba91a690233b9fe071ec97e8a", "tool": "OpenAI", "notebook": "Act as a Software Engineer", "action": " ", "tags": ["#ai", "#softwareengineer", "#softwareengineering", "#systemdesign", "#scalability", "#optimization", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will create a plugin to act as a Software Engineer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f35bc89e26b1b3cffbedd7e3dee835cbd5a12a497b536b2399f7c82462ec2953", "tool": "OpenAI", "notebook": "Act as a chef", "action": " ", "tags": ["#openai", "#chef", "#cooking", "#ai", "#machinelearning", "#deeplearning", "#plugin"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will create a plugin to act as a chef and use OpenAI to create delicious recipes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_chef.ipynb", "open_in_chat": "https://workspace.naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_chef.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_chef.ipynb", "imports": ["json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2b4754fa5dd2c8e1691f721e48e3e11917c629c0fb2438ffd78503ee63e4bc57", "tool": "OpenAI", "notebook": "Brainstorm ideas", "action": "", "tags": ["#openai", "#brainstorm", "#ideas", "#ai", "#machinelearning", "#deeplearning"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will help brainstorm ideas on a specific topic using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Brainstorm_ideas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Brainstorm_ideas.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "64991d5e7374c52b3e71bbb365667239daea4ce7f872425c483d7da87c59b9f0", "tool": "OpenAI", "notebook": "Count tokens with tiktoken", "action": "", "tags": ["#openai", "#tiktoken", "#count", "#token", "#tokens", "#cookbook"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to count tokens used from a string with tiktoken to use OpenAI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb", "imports": ["tiktoken", "tiktoken"], "updated_at": "", "image_url": ""}, {"objectID": "af9a04ddc27f4c638f42e4ea923fc3a24aad1d38516af8f9dc4ad3b262d29647", "tool": "OpenAI", "notebook": "Create Completion", "action": "", "tags": ["#openai", "#gpt3", "#textcompletion", "#ai", "#machinelearning", "#deeplearning", "#nlp", "#datascience", "#artificialintelligence", "#tech", "#innovation", "#creativity"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook guides you through the process of using OpenAI's Generative Pretrained Transformer 3 (GPT-3) model to build a text completion application. This notebook will show you how to fine-tune GPT-3 to generate text based on a given prompt, and then integrate it into a web application for easy usage. The end result will be a working text completion tool that can be used to generate new ideas, suggestions, or even entire texts with just a few inputs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Create_Completion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Create_Completion.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "ce29f2ffe243c1ea092cd43ea7e5e42e8d39d6180230ab0ab9db873d168cbb4b", "tool": "OpenAI", "notebook": "Create chat completion", "action": "", "tags": ["#openai", "#chat", "#completion", "#model", "#response", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates a model response for the given chat conversation. It uses OpenAI's API to generate a response based on the conversation context. This is useful for organizations that need to generate automated responses to customer inquiries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Create_chat_completion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Create_chat_completion.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "80af0a91b7797150d190e1dbab405133c6fb5be12cf1043b33c2709ee7eacdaa", "tool": "OpenAI", "notebook": "Create chatbot", "action": "", "tags": ["#openai", "#chatbot", "#conversation", "#ai", "#nlp", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook create a chat conversation with OpenAI based on the initial system information. To stop it, just write \"STOP\" in the user input section.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Create_chatbot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Create_chatbot.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c51c4610007ed74a0ecde9c8fd0a9fc269e96164e2ba4f6fe7fc971bf86943e6", "tool": "OpenAI", "notebook": "Generate_Act_as_a_x_notebook", "action": "", "tags": ["#openai", "#ai", "#machinelearning", "#deeplearning", "#notebooks", "#automation", "#gsheet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates \"Act as a ...\" notebooks from a Google Sheets spreadsheet using OpenAI_Act_as_a_chef.ipynb as template.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb", "imports": ["papermill.iorw.(", "naas", "naas_drivers.gsheet", "copy", "json", "subprocess"], "updated_at": "", "image_url": ""}, {"objectID": "00885f380a5e98de1dfc84407a532f4ee99e7db3944644806fe32800b7c70a17", "tool": "OpenAI", "notebook": "Generate Dialogue", "action": "", "tags": ["#openai", "#gpt", "#api", "#prompt"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This template shows how to use the OpenAI API to generate responses to user input within a Naas notebook, allowing users to create interactive chatbots or dialogue systems.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Dialogue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Dialogue.ipynb", "imports": ["naas", "openai", "openai"], "updated_at": "", "image_url": ""}, {"objectID": "388967283e9e6cc7c2fb3566e6e171bf2d3a1ec9a74ee315d6751e0efe6e850c", "tool": "OpenAI", "notebook": "Generate Q&A", "action": "", "tags": ["#openai", "#q&a"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook shows how to use the OpenAI API to generate answer to a question.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Q%26A.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Q%26A.ipynb", "imports": ["naas", "os", "openai", "openai"], "updated_at": "", "image_url": ""}, {"objectID": "f4334e52da15c82c96fa2ba1ebc2a7e0e769de9f92ed2b06ff6db3e4ac828cb3", "tool": "OpenAI", "notebook": "Generate README for GitHub repository", "action": "", "tags": ["#openai", "#github", "#readme", "#repository", "#generate", "#automation"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will generate a README for a GitHub repository based on the project name and description.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5435d7164828670bd059f0d88f7fad45e8ccd8ed1ae0893b4685b6b3d5debbbd", "tool": "OpenAI", "notebook": "Generate Text to Speech", "action": "", "tags": ["#openai"], "author": "Sriniketh Jayasendil", "author_url": "http://linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook focusses on using OpenAI for text-to-speech generation using [gTTS](https://pypi.org/project/gTTS/)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb", "imports": ["os", "naas", "openai", "openai", "gtts.gTTS", "gtts.gTTS"], "updated_at": "", "image_url": ""}, {"objectID": "7c89c1b529294dde50d26637c99788c03044af0f901bd4986f554996a3e2e8f3", "tool": "OpenAI", "notebook": "Generate image from text", "action": "", "tags": ["#openai", "#image", "#text", "#generation"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel", "description": "This notebook shows how to use the OpenAI API to make create images from text using Dall-E.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_image_from_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_image_from_text.ipynb", "imports": ["os", "openai # OpenAI Python library to make API calls", "requests # used to download images", "os # used to access filepaths", "PIL.Image # used to print and edit images", "naas # used to generate shareable image link", "openai"], "updated_at": "", "image_url": ""}, {"objectID": "60e910eeeaabf738f5c0852cc429357d0e707b935b2cd1fbbbae96d09e0ccca6", "tool": "OpenAI", "notebook": "Generate language translations", "action": "", "tags": ["#openai", "#language", "#translation", "#ai", "#translator", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook translates a given text to a language of choice using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_language_translations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_language_translations.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5e3fa80c5c4704e4070b51b8cc7f3b4cd631b82a81621d798a826780aa00e474", "tool": "OpenAI", "notebook": "Generate text based prediction", "action": "", "tags": ["#openai", "#prediction", "#text"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook shows how to use the OpenAI API to make predictions based on text data", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_text_based_prediction.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_text_based_prediction.ipynb", "imports": ["os", "openai", "openai"], "updated_at": "", "image_url": ""}, {"objectID": "fd2a1ab9606a02f8b8004c754a617821290a3e99ba1f9c7e610be1423d93a261", "tool": "OpenAI", "notebook": "Generate text replacements", "action": "", "tags": ["#openai", "#text_replacement"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook shows how to use the OpenAI API to generate text replacements such as correcting grammatical errors or making text more formal.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_text_replacements.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_text_replacements.ipynb", "imports": ["naas", "os", "openai", "openai"], "updated_at": "", "image_url": ""}, {"objectID": "2961a8fa985173e1fe7bc9ecd7dded9230b4249964c082484466ef3c7e8b95d5", "tool": "OpenAI", "notebook": "Generate text summaries", "action": "", "tags": ["#openai", "#text", "#summary"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook shows how to use the OpenAI API to generate text summaries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_text_summaries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_text_summaries.ipynb", "imports": ["naas", "openai", "openai"], "updated_at": "", "image_url": ""}, {"objectID": "b9e07c5aa5d74211244f408194927ef89fa7cb5a191606fe230c798269d684f9", "tool": "OpenAI", "notebook": "Write a blog post", "action": "", "tags": ["#openai", "#blogpost", "#writing", "#ai", "#machinelearning", "#deeplearning"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will provide a step-by-step guide to writing a blog post using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_blog_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_blog_post.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "3afca0fde41d0b659bad065a920c3475ddfb1367a5df0fa4d2cb7a5a32143e49", "tool": "OpenAI", "notebook": "Write a job description", "action": "", "tags": ["#openai", "#jobdescription", "#writing", "#hiring", "#recruiting", "#position"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to write a job description for a specific position for your company.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_job_description.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_job_description.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5b4533cb454ccc100d98e31d949ea6ba5d605e25d4f166a169bc1444facce745", "tool": "OpenAI", "notebook": "Write a press release", "action": "", "tags": ["#openai", "#pressrelease", "#writing", "#communication", "#publicrelations", "#journalism"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will provide a guide to write using OpenAI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_press_release.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_press_release.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "96e1ff47c1c4011d1a31e25cba022771284016208eec7cdb625e49d2a326f65e", "tool": "OpenAI", "notebook": "Write a social media post", "action": "", "tags": ["#openai", "#socialmedia", "#post", "#prompt", "#tone", "#platform"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will create a prompt to write a social media post and be able to set the topic, the tone and the platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_social_media_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_social_media_post.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "77e886f6f04a14ced07e702a5722295c4ad6dd3ce080c11e25dd2f7d5cbc5874", "tool": "OpenAI", "notebook": "Write an outline", "action": "", "tags": ["#openai", "#outline", "#writing", "#topic", "#structure", "#organize"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will provide an outline for writing a specific topic. An outline is a structured plan or framework that serves as a blueprint for organizing and presenting information in a clear and logical way. Outlines can be used for a variety of purposes, such as organizing an essay or research paper, preparing a speech or presentation, or planning a project.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_an_outline.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_an_outline.ipynb", "imports": ["openai", "openai", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "4aba3ab8d023730a829408b7fa52a3ae14366326c9e47fa801a2384e5569c73d", "tool": "OpenBB", "notebook": "Create an kernel on Naas", "action": "", "tags": ["#openbb", "#naas", "#ipython", "#conda", "#kernel"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This Jupyter Notebook will enable you to establish a new IPython Kernel that you can customize, allowing you to install any desired tools, here OpenBB. This kernel, once created, can be selected to run your notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "bdebeee1fe5060091a5671ca9ea02112b9539ad2f8e26b584f668c3339c30745", "tool": "OpenPIV", "notebook": "Openpiv-python-template", "action": "", "tags": ["#piv", "#openpiv", "#fluidmechanics", "#openpiv-python"], "author": "Alex Liberzon", "author_url": "https://www.linkedin.com/in/alexliberzon/", "description": "This notebook provides a template for using the open source Python library OpenPIV to analyze particle image velocimetry data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenPIV/openpiv-python-template.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenPIV/openpiv-python-template.ipynb", "imports": ["openpiv.tools, validation, filters, scaling, pyprocess", "numpy", "matplotlib.pyplot", "IPython.display.display", "ipywidgets.interact_manual, interactive, fixed, IntSlider, HBox, VBox, Layout", "openpiv.piv, tools", "ipywidgets.interact, interactive, fixed, interact_manual", "IPython.display.Image", "imageio", "skimage.img_as_uint"], "updated_at": "", "image_url": ""}, {"objectID": "84c4cccf44f66d7957f7c938252f5b5582637a13eed6818af52b2dbd038d582c", "tool": "OpenWeatherMap", "notebook": "Get City Weather", "action": "", "tags": ["#openweathermap", "#opendata", "#snippet", "#dataframe"], "author": "Christophe Blefari", "author_url": "https://www.linkedin.com/in/christopheblefari/", "description": "This notebook provides an easy way to access current weather data for any city using the OpenWeatherMap API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "f4d4d561d540e27d1820edc3f73ffc5d3cffab1fb7d280c1c6fb8780c3804056", "tool": "OpenWeatherMap", "notebook": "Get City temperature weather-type wind-speed", "action": "", "tags": ["#openweathermap", "#opendata", "#snippet", "#dataframe"], "author": "Kanishk Pareek", "author_url": "https://in.linkedin.com/in/kanishkpareek", "description": "This notebook helps to get the temperature and wind speed of your city by only giving the city as input.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "7ed1b4da0f14ddd2edc45c590983df0307cbbfe311cd4289de3e9d39765c6a41", "tool": "OpenWeatherMap", "notebook": "Send daily email with predictions", "action": "", "tags": ["#openweathermap", "#weather", "#plotly", "#prediction", "#email", "#naas_drivers", "#automation", "#opendata", "#analytics", "#ai", "#image", "#html", "#text"], "author": "Gautier Vivard", "author_url": "https://www.linkedin.com/in/gautier-vivard-1811b877/", "description": "This notebook sends a daily email with weather predictions from OpenWeatherMap.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb", "imports": ["requests", "markdown2", "time", "pandas", "naas", "naas_drivers.plotly, prediction"], "updated_at": "", "image_url": ""}, {"objectID": "a01f17dcdd69a089120f8effd220d3a92241221e9c143270fe441934be4d8e67", "tool": "OwnCloud", "notebook": "Download file", "action": "", "tags": ["#owncloud", "#cloud", "#storage", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to download files from their OwnCloud account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OwnCloud/OwnCloud_Download_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OwnCloud/OwnCloud_Download_file.ipynb", "imports": ["naas", "owncloud"], "updated_at": "", "image_url": ""}, {"objectID": "80e640b22b8ac5254779988dbd2db06195ea2efa222ca5076c6cd225b76fb848", "tool": "OwnCloud", "notebook": "Upload file", "action": "", "tags": ["#owncloud", "#cloud", "#storage", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to securely upload files to their own personal cloud storage.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OwnCloud/OwnCloud_Upload_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OwnCloud/OwnCloud_Upload_file.ipynb", "imports": ["naas", "owncloud"], "updated_at": "", "image_url": ""}, {"objectID": "f81564fd7ebeb27586545d1b327b3a26e45945b221d00b270fcdcce50d75930c", "tool": "PDF", "notebook": "Extract Text from", "action": "", "tags": ["#pdf", "#extract", "#snippet", "#operations", "#text"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook provides a way to extract text from PDF files.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PDF/PDF_Extract_Text_from_PDF.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Extract_Text_from_PDF.ipynb", "imports": ["io", "requests", "urllib.parse.urlparse", "PyPDF2.PdfFileReader, PdfFileWriter", "PyPDF2.PdfFileReader, PdfFileWriter"], "updated_at": "", "image_url": ""}, {"objectID": "8bb6225a686349e47e170097cd65d15a077192613a84eeadafb1747d28342177", "tool": "PDF", "notebook": "Merge multiple documents", "action": "", "tags": ["#pdf", "#extract", "#snippet", "#operations", "#text"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook allows users to combine multiple PDF documents into a single file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PDF/PDF_Merge_multiple_PDF_documents.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Merge_multiple_PDF_documents.ipynb", "imports": ["io", "requests", "urllib.parse.urlparse", "PyPDF2.PdfFileReader, PdfFileWriter", "PyPDF2.PdfFileReader, PdfFileWriter"], "updated_at": "", "image_url": ""}, {"objectID": "260f8c6ceef5c7c165c4591bc6db22389b0eb540c849af035040ff3f31230c28", "tool": "PDF", "notebook": "Transform to MP3", "action": "", "tags": ["#pdf", "#text2audio", "#snippet", "#operations", "#mp3"], "author": "Sanjay Sabu", "author_url": "https://www.linkedin.com/in/sanjay-sabu-4205/", "description": "This notebook converts PDF documents into MP3 audio files.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PDF/PDF_Transform_to_MP3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Transform_to_MP3.ipynb", "imports": ["io.StringIO", "pdfminer.converter.TextConverter", "pdfminer.layout.LAParams", "pdfminer.pdfdocument.PDFDocument", "pdfminer.pdfinterp.PDFResourceManager, PDFPageInterpreter", "pdfminer.pdfpage.PDFPage", "pdfminer.pdfparser.PDFParser", "gtts.gTTS"], "updated_at": "", "image_url": ""}, {"objectID": "3f4e8e954fbc8a7f0e0ef3c8d8fc7e2296a180433067b08baee8d3258699f2fc", "tool": "Pandas", "notebook": "Check Columns type", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook checks columns in a dataframe. It could be very usefull to apply specific rules regarding columns format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Check_Columns_type.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Check_Columns_type.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "01ec5aa3d067f1b4fe7b0e50d1a69fbffe59bb202fb9162ccdada4e82ef1174b", "tool": "Pandas", "notebook": "Concatenate dataframes", "action": "", "tags": ["#pandas", "#concatenate", "#dataframe", "#snippet", "#operations"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook demonstrates how to concatenate dataframes across rows or columns using the Pandas library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Concatenate_dataframes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Concatenate_dataframes.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "3747b1ba5d9239ad75873c8918a7988f1253b0d87fe30db99b29078203d3fd2f", "tool": "Pandas", "notebook": "Convert datetime series", "action": "", "tags": ["#pandas", "#python", "#date", "#conversion", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions on how to use the Pandas library to convert a datetime series into a usable format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Convert_datetime_series.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Convert_datetime_series.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "9af61c9bfbaa205ab7a89d08fd076daa97551b36e768b0e2e388f71702a8d4e4", "tool": "Pandas", "notebook": "Create Pivot Table", "action": "", "tags": ["#pandas", "#pivot", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an example of how to use the Pandas library to create a pivot table.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Create_Pivot_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_Pivot_Table.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "5dea1727d2325c2d39e0c97291eaad55fbaac39738b6f9870fcc25d9994de449", "tool": "Pandas", "notebook": "Create conditional column enrichment using DataFrame.loc", "action": "", "tags": ["#pandas", "#snippet", "#datenrichment", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook demonstrates the practical application of `DataFrame.loc` for implementing conditions, enabling users to seamlessly enrich a DataFrame by generating new columns based on conditions derived from existing ones. Its versatility makes it an invaluable tool for DataFrame manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "08aa6d5c2fcc85a4d1298f7c041485ceae994f6a8646b16f49dc3a1dd2c737c6", "tool": "Pandas", "notebook": "Create dataframe from dict", "action": "", "tags": ["#pandas", "#dict", "#snippet", "#dataframe", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a step-by-step guide to creating a dataframe from a dictionary using the Pandas library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Create_dataframe_from_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_dataframe_from_dict.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "3b5664bbc6d912853acf24f4abd081bf5d0f7be6dc03b6c64adb8d2a0ef347af", "tool": "Pandas", "notebook": "Drop Columns By Index", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Sunny Chugh", "author_url": "https://www.linkedin.com/in/sunny-chugh-ab1630177/", "description": "This notebook shows how to drop columns in Pandas DataFrame by index.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_Columns_By_Index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_Columns_By_Index.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "9dc849f238938acd6d80c65a1dc602684a11c7650ba75ad919d1f36e183ceca1", "tool": "Pandas", "notebook": "Drop First column", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to drop First Column in Pandas DataFrame (3 Methods).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_First_column.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_First_column.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "10766514d077aaf045278657b7690bc7719fc6962cd9a47afe2312f1c3e9b91a", "tool": "Pandas", "notebook": "Drop columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to define a new DataFrame that drops columns defined in Input section.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "d6fb1e632b01ef9b6537987e8a40f196a59dbe2dc049961dbfaeeea7833d9f17", "tool": "Pandas", "notebook": "Drop duplicates", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Sunny Chugh", "author_url": "https://www.linkedin.com/in/sunny-chugh-ab1630177/", "description": "This notebook shows how to drop duplicates in a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_duplicates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_duplicates.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "24261058569d9db319d5a70d1be2371ff1cc19b5b47bf391fdc996437e3d2506", "tool": "Pandas", "notebook": "Enforce data types to columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook enforces specific data types to columns using Pandas, elevating your data consistency and accuracy. Availables types:\n- Numeric types: int, float, complex\n- Textual types: str\n- Date and time types: datetime, timedelta\n- Categorical types: category\n- Boolean type: bool\n- Object type: object", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Enforce_data_types_to_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Enforce_data_types_to_columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "b412dd6032e5b39b130a8a012daaa8edda669ca6a9ff60187cdd86e1a8140a35", "tool": "Pandas", "notebook": "Fill emtpy values", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook fill empty values in dataframe columns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Fill_emtpy_values.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Fill_emtpy_values.ipynb", "imports": ["pandas", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "314b97f33ad0926c9bcdc4dd545c9bee424e648c6e041e35454f084d140fa51f", "tool": "Pandas", "notebook": "Filter DataFrame", "action": "", "tags": ["#pandas", "#dataframe", "#filter", "#python", "#dataanalysis"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to filter a DataFrame using Pandas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Filter_DataFrame.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Filter_DataFrame.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "17af8c0029b88a375ce0ca2eada983c97f6d6c0f4bab83a36a524026cc5e74d4", "tool": "Pandas", "notebook": "Flatten MultiIndex Columns", "action": "", "tags": ["#pandas", "#dataframe", "#multiindex", "#flatten", "#columns"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook explains how to flatten a MultiIndex column in a Pandas DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "2ddb6eb54c1253c857cef66aeec26ee3d1fe3c61864951d3b23ca2dfda2f3cf6", "tool": "Pandas", "notebook": "Format number to string", "action": "", "tags": ["#pandas", "#dataframe", "#format", "#snippet", "#yahoofinance", "#naas_drivers", "#operations", "#jupyternotebooks"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an example of how to convert numerical values to strings using the Pandas library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Format_number_to_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Format_number_to_string.ipynb", "imports": ["naas_drivers.yahoofinance"], "updated_at": "", "image_url": ""}, {"objectID": "15c411f00d45474fa8f6c3e97c526d6e56dfd00b2dbebacafc15823ff5ea5618", "tool": "Pandas", "notebook": "Get n largest", "action": "", "tags": ["#pandas", "#dataframe", "#nlargest", "#python", "#data", "#analysis"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook will demonstrate how to use the `nlargest` function in Pandas to get the n largest values from a DataFrame. This is useful for data analysis and data manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Get_n_largest.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Get_n_largest.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "11148b2df16b8fc1df13c6aaa2928e94e1335bda5e3cb7410191d4772db14fc1", "tool": "Pandas", "notebook": "Get n smallest", "action": "", "tags": ["#pandas", "#dataframe", "#nsmallest", "#python", "#data", "#analysis"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook explains how to use the `nsmallest` function from the Pandas library to get the n smallest values from column in a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Get_n_smallest.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Get_n_smallest.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "2f781b99d1e3e490fc5110f16be03119b1ab962d2b8ec93cfaf384332518ec74", "tool": "Pandas", "notebook": "Groupby and Aggregate", "action": "", "tags": ["#pandas", "#snippet", "#datamining", "#dataaggragation", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook groups and perform aggregation on columns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Groupby_and_Aggregate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Groupby_and_Aggregate.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "bbc337a0d36c172e2e37ae7f50ffe79583936213893f036e3e538450012a1a46", "tool": "Pandas", "notebook": "ISO Date Conversion", "action": "", "tags": ["#pandas", "#python", "#date", "#conversion", "#isoformat", "#dateconversion", "#operations", "#snippet", "#dataframe"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook provides a guide to converting ISO dates into Pandas-compatible formats.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_ISO_Date_Conversion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_ISO_Date_Conversion.ipynb", "imports": ["pandas", "dateutil.parser.parse"], "updated_at": "", "image_url": ""}, {"objectID": "dff9d7790f99b4c6981061774c7fcfc49b0814bc0b161ec88d96f69c857a6af2", "tool": "Pandas", "notebook": "Insert column", "action": "", "tags": ["#pandas", "#column", "#insert", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook show how to insert column into DataFrame at specified location.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Insert_column.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Insert_column.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "c27a3508278911a39eefd92d7cbd38a4a34ff68c0ca048ad6a5871647f86af3d", "tool": "Pandas", "notebook": "Iterate over DataFrame rows", "action": "", "tags": ["#pandas", "#python", "#loops", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook demonstrates how to iterate over DataFrame rows as (index, Series) pairs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb", "imports": ["pandas", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "56f61acbe2bb3fb0a64d18a0d1d86efe024967f9d0f7640c21efbc6fab85d961", "tool": "Pandas", "notebook": "Iterate over DataFrame rows as namedtuples", "action": "", "tags": ["#pandas", "#python", "#loops", "#snippet", "#operations", "#namedtuples", "#dataframe"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook demonstrates how to iterate over DataFrame rows as namedtuples", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb", "imports": ["pandas", "numpy", "collections.namedtuple"], "updated_at": "", "image_url": ""}, {"objectID": "66637c0e78b1cafa7d6ad81906a679a160528a45efad2fc436c804d12b40ca49", "tool": "Pandas", "notebook": "Keep columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to define a new DataFrame that only keeps columns defined in Input section.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Keep_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Keep_columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "0b45752d1f47b9ea195133d22bb8a86066c2eb1baad4a0308a994c5a424e9fbc", "tool": "Pandas", "notebook": "Looping Over Dataframe", "action": "", "tags": ["#pandas", "#python", "#loops", "#dataframes", "#forloop", "#loop", "#snippet", "#operations"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook provides an overview of multiples ways to use loops to iterate over a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Looping_Over_Dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Looping_Over_Dataframe.ipynb", "imports": ["pandas", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "4ad864c7c502f13639fafe2b968aa7346943bb6330ba7557259e9e431848adcc", "tool": "Pandas", "notebook": "Map column with values in dict", "action": "", "tags": ["#pandas", "#dict", "#map", "#series"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook shows how to map a column of a Pandas DataFrame with values from a dictionary.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Map_column_with_values_in_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Map_column_with_values_in_dict.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "ea957a5f2454415ccc337c1c056b1e7a9e2cb345f786c1938a3ef0b4a434955e", "tool": "Pandas", "notebook": "Merge Dataframes", "action": "", "tags": ["#pandas", "#python", "#merging", "#merge", "#dataframes", "#consolidate", "#operations", "#snippet", "#dataframe"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook provides an overview of how to use the Pandas library to merge two or more dataframes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Merge_Dataframes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Merge_Dataframes.ipynb", "imports": ["pandas", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "dfd4c9e70e3517613da38637dc496216b24dd65e6305d5edc6f1eae5d0172d6c", "tool": "Pandas", "notebook": "Pivot rows to columns", "action": "", "tags": ["#pandas", "#pivot", "#snippet", "#operations", "#utils", "#data"], "author": "Ismail Chihab", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "description": "This notebook demonstrates how to use the Pandas library to transform data by pivoting rows into columns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Pivot_rows_to_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Pivot_rows_to_columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "4932d57368797cb77d7866263669d24705499a09d49a57e4c15f334eba2cf2a1", "tool": "Pandas", "notebook": "Read CSV", "action": "", "tags": ["#pandas", "#csv", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook show how to read a CSV file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Read_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Read_CSV.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "de43d3c8b9aa8a86b8179624cf2d7dc2cfeb49e5c922858f7419de9daa6b2dc2", "tool": "Pandas", "notebook": "Read Excel", "action": "", "tags": ["#pandas", "#excel", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook show how to read a Excel file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Read_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Read_Excel.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "846a0b00f4ab77df51ec9a47797b3a4440bb682426600b7a7a3b7b5fbdf0c652", "tool": "Pandas", "notebook": "Rename columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook renames columns in a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Rename_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Rename_columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "5af9dafa2814c72a3b62ec58dbe2de6fc94c096c7cf3ec68e341701bed102914", "tool": "Pandas", "notebook": "Save dataframe to CSV", "action": "", "tags": ["#pandas", "#csv", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook show how to save a dataframe to a CSV file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Save_dataframe_to_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Save_dataframe_to_CSV.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "c2f8f6055e4d62602616107e3d9098ce962d1a64c169978495b1ffe2b51ac751", "tool": "Pandas", "notebook": "Save dataframe to Excel", "action": "", "tags": ["#pandas", "#excel", "#snippet", "#operation", "#dataframe", "#save"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook show how to save a dataframe to Excel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Save_dataframe_to_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Save_dataframe_to_Excel.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "1d2d1155e7b45a7959095737ba4ecd08e96ffc02a72d097d5271eae4b71902a5", "tool": "Pandas", "notebook": "Sort values by multiples columns", "action": "", "tags": ["#pandas", "#dataframe", "#sort", "#columns", "#values", "#multiples"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook will show how to sort values by multiples columns in Pandas. It is usefull for data analysis and data manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "b27675b70ee0475d12381be158a83a7888089de73a76f6f28e4f4d3c1088bfad", "tool": "Pandas", "notebook": "Transform DataFrame to json file", "action": "", "tags": ["#pandas", "#dataframe", "#json", "#transform", "#file", "#dict", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to transform a DataFrame into a json file. It is usefull for organizations that need to store data in a json format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb", "imports": ["pandas", "json"], "updated_at": "", "image_url": ""}, {"objectID": "1961a79a86f4ee0ee0e0b29f136404431cb29587979223fe04ef6dec574cbc69", "tool": "Pandas", "notebook": "Transform Dataframe to dict", "action": "", "tags": ["#pandas", "#dataframe", "#dict", "#snippet", "#yahoofinance", "#naas_drivers", "#operations", "#jupyternotebooks"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an example of how to use the Pandas library to convert a dataframe into a dictionary.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb", "imports": ["naas_drivers.yahoofinance"], "updated_at": "", "image_url": ""}, {"objectID": "76ce3d48a02d92cc6ef4e068ea8883a5381c4583f32d993f672106b1f295be90", "tool": "Pandasql", "notebook": "Query CSV Using SQL", "action": "", "tags": ["#pandas", "#csv", "#snippet", "#read", "#dataframe", "#sql", "#pandasql", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to use Pandasql to query CSV files as if they were relational databases, using SQL syntax. The aim is to provide an alternative to traditional Pandas methods for filtering, grouping, and aggregating data, and make it easier for users who are familiar with SQL to perform these tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb", "imports": ["pandas", "pandasql.sqldf", "pandasql.sqldf"], "updated_at": "", "image_url": ""}, {"objectID": "bb199c1091a4a9f5a538365d093d290b3d47e406206122d2fbe8fec17af8ab0a", "tool": "Pandasql", "notebook": "Query Excel Using SQL", "action": "", "tags": ["#pandas", "#excel", "#snippet", "#read", "#dataframe", "#sql", "#pandasql", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to use Pandasql to query Excel files as if they were relational databases, using SQL syntax. The aim is to provide an alternative to traditional Pandas methods for filtering, grouping, and aggregating data, and make it easier for users who are familiar with SQL to perform these tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb", "imports": ["pandas", "pandasql.sqldf", "pandasql.sqldf"], "updated_at": "", "image_url": ""}, {"objectID": "6a9d3147aa50285ac5a92cd7539565be2378fdb41aea7a36da585c2187e03632", "tool": "Pandasql", "notebook": "Query Parquet Using SQL", "action": "", "tags": ["#pandas", "#parquet", "#snippet", "#read", "#dataframe", "#sql", "#pandasql", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to use Pandasql to query Parquet files as if they were relational databases, using SQL syntax. The aim is to provide an alternative to traditional Pandas methods for filtering, grouping, and aggregating data, and make it easier for users who are familiar with SQL to perform these tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb", "imports": ["pandas", "pandasql.sqldf", "pandasql.sqldf"], "updated_at": "", "image_url": ""}, {"objectID": "1f5b6f5d2d919274a737d5b13f4427d7cc779367fb8efffbd61ea6c7d767a2b0", "tool": "Panel", "notebook": "Create a kernel on Naas", "action": "", "tags": ["#panel", "#ipython", "#conda", "#naas", "#kernel"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This Jupyter Notebook will enable you to establish a new IPython Kernel that you can customize, allowing you to install any desired tools. This kernel, once created, can be selected to run your notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "43a2d5488f55091c2a69c598836fe3680e4003c3117c71b687912fc67b7611c0", "tool": "Pillow", "notebook": "Add data to image", "action": "", "tags": ["#pillow", "#opendata", "#snippet", "#data", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook demonstrates how to use the Pillow library to add data to an existing image.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Add_data_to_image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Add_data_to_image.ipynb", "imports": ["PIL.Image, ImageDraw, ImageFont", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5ac6df900da4dc00365e842c34cceb80b361d19e824618b4b49ddc8275d355cf", "tool": "Pillow", "notebook": "Create indicator", "action": "", "tags": ["#pillow", "#opendata", "#snippet", "#data", "#image", "#indicator", "#kpi"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates an indicator with title and kpi using Pillow.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Create_indicator.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Create_indicator.ipynb", "imports": ["PIL.Image, ImageDraw, ImageFont", "urllib"], "updated_at": "", "image_url": ""}, {"objectID": "36a46b8dea31448e6c96ce86e134eb3596ca9606f23ba38d98c952a3bc8246b4", "tool": "Pillow", "notebook": "Create new image", "action": "", "tags": ["#pillow", "#opendata", "#snippet", "#data", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates and saves an image using Pillow. You can setup its width, height and background color.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Create_new_image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Create_new_image.ipynb", "imports": ["PIL.Image"], "updated_at": "", "image_url": ""}, {"objectID": "ed2a0acd5f746906d09577c801960c8a21014484ac59e04b2875b57fad351e2c", "tool": "Pillow", "notebook": "Generate A Certificate Template", "action": "", "tags": ["#Pillow", "#Python", "#certificate-template", "#naas"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "description": "This notebook provides a template for generating a personalized certificate using the Pillow library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Generate_A_Certificate_Template.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Generate_A_Certificate_Template.ipynb", "imports": ["PIL.Image, ImageDraw, ImageFont", "requests", "io.BytesIO", "bs4.BeautifulSoup"], "updated_at": "", "image_url": ""}, {"objectID": "f67f0e92ee4940e9983e194e6375686842a22bcbc68eec6f4066e69b528aeaf0", "tool": "Pipedrive", "notebook": "Get contact", "action": "", "tags": ["#pipedrive", "#crm", "#contact", "#sales", "#snippet", "#dataframe"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This notebook provides a way to quickly and easily get contact information from Pipedrive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pipedrive/Pipedrive_Get_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pipedrive/Pipedrive_Get_contact.ipynb", "imports": ["pipedrive.client.Client", "pipedrive.client.Client", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "d6e7f95dbe41f7777d676406ded33033d8f4320cf952759eb61fc8638a3f7f28", "tool": "Plaid", "notebook": "Get accounts", "action": "", "tags": ["#plaid", "#bank", "#accounts", "#snippet", "#finance", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook provides an easy way to access financial accounts and transactions through Plaid's API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plaid/Plaid_Get_accounts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plaid/Plaid_Get_accounts.ipynb", "imports": ["os", "plaid", "IPython.core.display", "uuid", "naas", "json", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "1c0a3c221963dae426dec4dcc8f110df19362ac20b1950d88159dcc05db17305", "tool": "Plaid", "notebook": "Get transactions", "action": "", "tags": ["#plaid", "#bank", "#transactions", "#snippet", "#finance", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook provides a guide to retrieving financial transaction data from Plaid.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plaid/Plaid_Get_transactions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plaid/Plaid_Get_transactions.ipynb", "imports": ["os", "plaid", "naas", "IPython.core.display", "uuid", "json"], "updated_at": "", "image_url": ""}, {"objectID": "8c98be6f5ca47cc8237544ca1fd6637230bb0e9ec0d7d55da7e49d0aa05cbe82", "tool": "Plotly", "notebook": "Create Balance Sheet Treemaps", "action": "", "tags": ["#plotly", "#treemap", "#snippet", "#dataviz", "#balancesheet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook displays Balance Sheet items into treemap graphs. In a balance sheet, treemap templates can be used to show the distribution of assets and liabilities. The assets can be divided into smaller categories such as cash, marketable securities, accounts receivable, and inventory, while the liabilities can be separated into categories like loans payable, bonds payable, and accounts payable. With a treemap, it is easy to see the relative proportions of each category, making it easier to identify any trends or patterns in the data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c484ebf9f234ef9eee9185595ec6d6d402641b76aade153dd892444ef3b299c9", "tool": "Plotly", "notebook": "Create Barline chart", "action": "", "tags": ["#plotly", "#naas", "#snippet", "#operations", "#barline"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook provides instructions on how to create a barline chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Barline_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Barline_chart.ipynb", "imports": ["pandas", "plotly.graph_objects", "plotly.subplots.make_subplots", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f6d7102dbaeec65604e69539224a108362eacf8079a71cc0dbd46bf166fc0062", "tool": "Plotly", "notebook": "Create Bubblechart", "action": "", "tags": ["#plotly", "#chart", "#bubblechart", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to create a bubble chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Bubblechart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Bubblechart.ipynb", "imports": ["naas", "plotly.express", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "662519b80629a12be69f987f9d8875dddf515b461d05e9055158e24ff7fc2207", "tool": "Plotly", "notebook": "Create Bubblemap by City", "action": "", "tags": ["#plotly", "#bubblemap", "#city", "#python", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to creates a bubblemap with values by city using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Bubblemap_by_City.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Bubblemap_by_City.ipynb", "imports": ["pandas", "plotly.express", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "517e1dc7f83b92be09f8be6d565dc49f1b608178f833c7e3aa8b30f5b4687c7f", "tool": "Plotly", "notebook": "Create Candlestick", "action": "", "tags": ["#plotly", "#chart", "#candlestick", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an example of how to create a candlestick chart using the Plotly library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Candlestick.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Candlestick.ipynb", "imports": ["naas", "naas_drivers.yahoofinance", "plotly.graph_objects", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "d4631b09503ea4ffa69803e63b11d3c51800ee8a8468c962406c93f0398abbde", "tool": "Plotly", "notebook": "Create Gantt chart", "action": "", "tags": ["#plotly", "#chart", "#gant", "#project", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to create a Gantt chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Gantt_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Gantt_chart.ipynb", "imports": ["plotly.express", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "38ddb9935318bf5698eae5b352037f790c225ef788173972b6896f6f028a0814", "tool": "Plotly", "notebook": "Create Heatmap", "action": "", "tags": ["#plotly", "#chart", "#heatmap", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides an example of how to create a heatmap using the Plotly library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Heatmap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Heatmap.ipynb", "imports": ["naas", "plotly.graph_objects", "plotly.express", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "f71d07001cfdc2d67718ef0fd91d6bcab1b1c98e043fdbf770d52276f6449f3b", "tool": "Plotly", "notebook": "Create Horizontal Barchart", "action": "", "tags": ["#plotly", "#chart", "#horizontalbar", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to create a horizontal bar chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Horizontal_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Horizontal_Barchart.ipynb", "imports": ["plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "363d1b3f489a134479cfec35ff780e213e571c9d2356959cc5daff21d5dea34a", "tool": "Plotly", "notebook": "Create Leaderboard", "action": "", "tags": ["#plotly", "#chart", "#horizontalbar", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides an interactive way to visualize and compare data using Plotly to create a leaderboard.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Leaderboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Leaderboard.ipynb", "imports": ["plotly.express", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "a64b46ba602d154f700f434315aea461c9170c8f939d1062ae9277dd131941c8", "tool": "Plotly", "notebook": "Create Leaderboard stacked", "action": "", "tags": ["#plotly", "#chart", "#horizontalbar", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides an example of how to create a leaderboard using Plotly's stacked bar chart visualization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Leaderboard_stacked.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Leaderboard_stacked.ipynb", "imports": ["plotly.express", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "e83171a9bd64008af6a5ea1e0510c738dc249f6741a28092160b5e3f3e8a68a9", "tool": "Plotly", "notebook": "Create Linechart", "action": "", "tags": ["#plotly", "#chart", "#linechart", "#trend", "#dataviz", "#yahoofinance", "#naas_drivers", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to create a line chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Linechart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Linechart.ipynb", "imports": ["naas", "naas_drivers.yahoofinance, plotly"], "updated_at": "", "image_url": ""}, {"objectID": "ae9899cd48c331274221a68cb0007765c4f1f79dbb8a197ffc9e19729393b3ff", "tool": "Plotly", "notebook": "Create Mapchart world", "action": "", "tags": ["#plotly", "#chart", "#worldmap", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a step-by-step guide to creating an interactive mapchart of the world using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Mapchart_world.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Mapchart_world.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "77b1042719f22bd7aec139151ff411e84fa83863e854fddce69e34042a4b90fa", "tool": "Plotly", "notebook": "Create Treemaps with plotly.express", "action": "", "tags": ["#plotly", "#treemap", "#snippet", "#dataviz", "#plotly.express", "#px"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates Treemaps with plotly.express. Plotly Express is the easy-to-use, high-level interface to Plotly, which operates on a variety of types of data and produces easy-to-style figures.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb", "imports": ["plotly.express", "numpy", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "33642dbaa758ab80c8d181a5e069bbd51c833d71d3f5b8802bd45cd6f7062ff9", "tool": "Plotly", "notebook": "Create Treemaps with plotly.graph objects", "action": "", "tags": ["#plotly", "#treemap", "#snippet", "#dataviz", "#plotly.graph_objects", "#go"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates Treemaps with plotly.graph_objects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "numpy", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "63c55ffff60a0fc449fa140924c522ce65f38ad178f439c9bdd11f61817b50aa", "tool": "Plotly", "notebook": "Create Vertical Barchart", "action": "", "tags": ["#plotly", "#chart", "#verticalbarchart", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to create a vertical barchart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Vertical_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Vertical_Barchart.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "f71af3953b75a90bc666f15072437705826d17bad8625bdc8561353a683b6931", "tool": "Plotly", "notebook": "Create Vertical Barchart group", "action": "", "tags": ["#plotly", "#chart", "#verticalbarchart", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to create a vertical barchart group using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "ad519db0908de78d9d45a66e5b96a2682fe6b2a85fc2ea9410841cae78e0247a", "tool": "Plotly", "notebook": "Create Vertical Barchart stacked", "action": "", "tags": ["#plotly", "#chart", "#verticalbarchart", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to create a vertical barchart with stacked bars using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "e90ce80fa0c56a2714a58552d3ca00e07d35d53d5d2a89216f1449170e347e6d", "tool": "Plotly", "notebook": "Create Waterfall chart", "action": "", "tags": ["#plotly", "#chart", "#warterfall", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides instructions on how to create a Waterfall chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Waterfall_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Waterfall_chart.ipynb", "imports": ["naas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "5ad976a4ad2a8c89054f8c2676b823083a4ffa05d5d8803d3ad6164a6649f777", "tool": "Polars", "notebook": "Read CSV", "action": "", "tags": ["#polars", "#dataframe", "#read", "#python", "#library", "#data", "#csv"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook will demonstrate how to read a csv using the Polars library.\n\nAbout Polars:\n- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Read_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Read_CSV.ipynb", "imports": ["polars", "polars"], "updated_at": "", "image_url": ""}, {"objectID": "228a81ed357d309e1ec921bcacf182615172dd1fabda1a70ac76cc2403589444", "tool": "PostgresSQL", "notebook": "Get data from database", "action": "", "tags": ["#postgressql", "#database", "#operations", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "description": "This notebook provides instructions on how to query a PostgreSQL database and retrieve data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb", "imports": ["psycopg2", "psycopg2", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d407f6c7c08a81f0c5871257274d21d6b1ca36d44fdb2483cc0caab78c998412", "tool": "PowerPoint", "notebook": "Add Slide With Image", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions on how to add an image to a PowerPoint slide.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches"], "updated_at": "", "image_url": ""}, {"objectID": "85d11fb04a9f5d15ba18c7cad27cc4241d0cbb163c4d27551bec621c5896932d", "tool": "PowerPoint", "notebook": "Add Slide With Textbox", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to create a new slide in PowerPoint with a textbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches, Pt"], "updated_at": "", "image_url": ""}, {"objectID": "e3d8e2acd0d06ddfb9d30c2f126b22ec639ec52fb578e2bf890674239ab7e4b6", "tool": "PowerPoint", "notebook": "Add Slide With Title Subtitle", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows users to quickly and easily create a new slide in PowerPoint with a title and subtitle.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches"], "updated_at": "", "image_url": ""}, {"objectID": "f8ca7d5fbaed2f83b5a5b90bfd54a5d9965f635427725abef04601fc7c340129", "tool": "PowerPoint", "notebook": "Add title + line in presentation", "action": "", "tags": ["#powerpoint", "#naas", "#python", "#python_pptx"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/in/ayoub-berdeddouch", "description": "This notebook Adds a title + Line to a presentation in PowerPoint", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_title_%2B_line_in_presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_title_%2B_line_in_presentation.ipynb", "imports": ["pptx.Presentation", "pptx.enum.shapes.MSO_CONNECTOR", "pptx.util.Inches"], "updated_at": "", "image_url": ""}, {"objectID": "4944a903bfe77005932df44840be3cc20f84adb51aa8fc7a18eb411e04aef75a", "tool": "PowerPoint", "notebook": "Create Presentation", "action": "", "tags": ["#powerpoint", "#naas", "#python", "#pythonpptx", "#asset", "#snippet", "#operations", "#slide", "#microsoft"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/in/ayoub-berdeddouch", "description": "This notebook creates a PowerPoint presentation with a cover page, 3 pages with graphs and text and a last page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Create_Presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Create_Presentation.ipynb", "imports": ["pptx.Presentation", "pptx.enum.shapes.MSO_SHAPE", "pptx.dml.color.RGBColor", "pptx.util.Inches, Pt", "pptx.enum.dml.MSO_THEME_COLOR", "pptx.chart.data.CategoryChartData", "pptx.enum.chart.XL_CHART_TYPE", "pptx.chart.data.ChartData", "pptx.util.Inches", "numpy", "datetime", "requests", "plotly.graph_objects", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "87b9a5c96c8ceccefe39e7dbb996c586cdd15f07b0317200b63be92aeb8d3281", "tool": "PowerPoint", "notebook": "Set portrait format", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to easily set the portrait format for your PowerPoint presentation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Set_portrait_format.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Set_portrait_format.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches"], "updated_at": "", "image_url": ""}, {"objectID": "6dc53ab8a25919a7cd0c364aec804a3e259bce5341b0ac2694bc44c4cc19ff65", "tool": "PyCaret", "notebook": "Automl classification", "action": "", "tags": ["#automl", "#pandas", "#snippet", "#classification", "#dataframe", "#visualize", "#pycaret", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to use PyCaret to quickly and easily build and evaluate machine learning models for classification tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyCaret/PyCaret_automl_classification.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyCaret/PyCaret_automl_classification.ipynb", "imports": ["pandas", "pycaret.classification.setup, compare_models, evaluate_model, predict_model, finalize_model, \\", "pycaret.classification.setup, compare_models, evaluate_model, predict_model, finalize_model, \\"], "updated_at": "", "image_url": ""}, {"objectID": "7836b18a1acc436173deeed60d42ff7bd8ddf36559c8275931e2ec346a0b7087", "tool": "PyCaret", "notebook": "Automl regression", "action": "", "tags": ["#automl", "#pandas", "#snippet", "#regression", "#dataframe", "#visualize", "#pycaret", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook demonstrates how to use PyCaret's automated machine learning capabilities to perform regression tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyCaret/PyCaret_automl_regression.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyCaret/PyCaret_automl_regression.ipynb", "imports": ["pandas", "pycaret.regression.setup, compare_models, evaluate_model, predict_model, finalize_model, \\", "pycaret.regression.setup, compare_models, evaluate_model, predict_model, finalize_model, \\"], "updated_at": "", "image_url": ""}, {"objectID": "47b1d63eba6e37dd5d1ed7fe4be46bb37f6914de53819f21fadae86a6f19acdf", "tool": "PyGWalker", "notebook": "Analyze Pandas dataframe", "action": "", "tags": ["#pandas", "#dataframe", "#tableau", "#pygwalker", "#analyze", "#jupyter"], "author": "Abraham Israel", "author_url": "https://www.linkedin.com/in/abraham-israel/", "description": "This notebook will demonstrate how to analyze a Pandas dataframe in Jupyter using a Tableau-style interface.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb", "imports": ["pandas", "numpy", "pygwalker", "pygwalker"], "updated_at": "", "image_url": ""}, {"objectID": "fa50c9d253fcfbd8653f19e1fbf6a7f10da5081eac5214aa2f132875b030a8fd", "tool": "PyPI", "notebook": "- Get number of downloads any package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to retrieve the download count of any package from the Python Package Index (PyPI).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyPI/PyPI%20-%20Get_number_of_downloads_any_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyPI/PyPI%20-%20Get_number_of_downloads_any_package.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "6abd8f37687cff0c3d7f985474fbc88aed362bc588a2f82ad4a77b5488ccfb32", "tool": "Python", "notebook": "Calculate relative time delta between two dates", "action": "", "tags": ["#python", "#datetime", "#relativedelta", "#calculate", "#date", "#time", "#dateutil"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook calculates the relative time delta between two dates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Calculate_relative_time_delta_between_two_dates.ipynb", "imports": ["datetime.datetime", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "3e9d2c55229b2a7b7f787f226854d421c8381f80dc8f3e272b04a5fd459515a3", "tool": "Python", "notebook": "Calculate time delta between two dates", "action": "", "tags": ["#python", "#datetime", "#timedelta", "#calculate", "#date", "#time"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook calculates the time delta between two dates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Calculate_time_delta_between_two_dates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Calculate_time_delta_between_two_dates.ipynb", "imports": ["datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "03bc3ba50473a4aff2cfca6b15c26f19dd51443a7e99da17d33864435520c19e", "tool": "Python", "notebook": "Clean your download folder", "action": "", "tags": ["#python", "#automation", "#clean_folder"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook will go through your given folder and check each file last modification time, and if it's been more than 30 days it will move those file to new folder 'files_to_delete'", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Clean_your_download_folder.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Clean_your_download_folder.ipynb", "imports": ["os", "shutil", "datetime.datetime, timedelta"], "updated_at": "", "image_url": ""}, {"objectID": "6803ffcd1c5475d13f4ef26dd7761f41d317f9a20677f2e8e30352537c2c9cf5", "tool": "Python", "notebook": "Compress images", "action": "", "tags": ["#python", "#PIL", "#images", "#compress"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook uses PIL library to compress the image.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Compress_images.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Compress_images.ipynb", "imports": ["PIL.Image", "PIL.Image", "os", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "ccf490cb6569994548b9c95421373ae1e94bb10fa7fb61dadd3576a073277f1d", "tool": "Python", "notebook": "Consolidate Excel files", "action": "", "tags": ["#python", "#consolidate", "#files", "#productivity", "#snippet", "#operations", "#excel"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "The objective of this notebook is to consolidate multiple Excel files (.xlsx) into one.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Consolidate_Excel_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Consolidate_Excel_files.ipynb", "imports": ["os", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "d41e9d952be285475cb26b5226195474cd7ba62ace4f711fe492d5f79b7ba97c", "tool": "Python", "notebook": "Convert CSV to Excel", "action": "", "tags": ["#python", "#csv", "#excel", "#pandas", "#file"], "author": "Sophia Iroegbu", "author_url": "www.linkedin.com/in/sophia-iroegbu", "description": "This notebook provides a step-by-step guide to converting CSV files to Excel spreadsheets using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_CSV_to_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_CSV_to_Excel.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "6ecbcc24aa72ffcd4dba78168b4bfc05f46a697de728b9192a9c21743b9fe43d", "tool": "Python", "notebook": "Convert Datetime with Timezone to ISO 8601 date string", "action": "", "tags": ["#python", "#datetime", "#timezone", "#iso8601", "#string", "#conversion"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to convert a datetime with timezone to an ISO 8601 date string.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_Datetime_with_Timezone_to_ISO_8601_date_string.ipynb", "imports": ["datetime.datetime", "pytz"], "updated_at": "", "image_url": ""}, {"objectID": "0069c1c7add214fdd2655b1fa2238a2f17d761feb5403f7dfeb95c27114911eb", "tool": "Python", "notebook": "Convert PNG Images To JPG", "action": "", "tags": ["#jpg", "#png", "#to", "#image", "#images", "#convert"], "author": "Ahmed Mousa", "author_url": "https://www.linkedin.com/in/akmousa/", "description": "This notebook converts png images to jpg images.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_PNG_Images_To_JPG.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_PNG_Images_To_JPG.ipynb", "imports": ["PIL.Image"], "updated_at": "", "image_url": ""}, {"objectID": "ea5c6ad4046dea2b3a2e3f412203b3899b9f88cffa458917a9b828ee0b6dd11b", "tool": "Python", "notebook": "Convert URL to string", "action": "", "tags": ["#python", "#urllib", "#string", "#url", "#convert", "#library"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to convert a URL to a string using urllib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_URL_to_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_URL_to_string.ipynb", "imports": ["urllib.parse"], "updated_at": "", "image_url": ""}, {"objectID": "bb57377a72ad818450b8065fe617392e959e8c11b27e830a1548a57af32e054c", "tool": "Python", "notebook": "Convert audiofile from wav to mp3", "action": "", "tags": ["#python", "#audio", "#wavtomp3", "#pydub"], "author": "Mohit Singh", "author_url": "", "description": "This notebook uses the Pydub library to convert audio file from wav to mp3.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb", "imports": ["os", "pydub.AudioSegment", "pydub.AudioSegment", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "1b0f742b14019f6471df8b63da4b92c06192acbe92d849987e62afafb2dac907", "tool": "Python", "notebook": "Convert currency", "action": "", "tags": ["#python", "#exchange", "#currency", "#converter", "#convert", "#snippet", "#operations"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This workbook shows you how to convert any currency into any other currency in real time using `forex_python` library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_currency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_currency.ipynb", "imports": ["forex_python.converter.CurrencyRates", "forex_python.converter.CurrencyRates"], "updated_at": "", "image_url": ""}, {"objectID": "067c20cbc754f3ea3f89b0109bb3942740458d14538a441fc71cbe86ccafd826", "tool": "Python", "notebook": "Convert relative time delta to months", "action": "", "tags": ["#python", "#datetime", "#relativedelta", "#calculate", "#date", "#time", "#dateutil"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook is designed to convert the relative time delta between two dates into months. By utilizing the `relativedelta` function, the conversion becomes more accurate compared to using `timedelta`, as `relativedelta` considers the varying number of days in each month.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_relative_time_delta_to_months.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_relative_time_delta_to_months.ipynb", "imports": ["datetime.datetime", "dateutil.relativedelta.relativedelta"], "updated_at": "", "image_url": ""}, {"objectID": "8dacf09e80d19c288d77ccdf43ba69339901ed23a093c040857e1e6abdc05eee", "tool": "Python", "notebook": "Convert string to URL", "action": "", "tags": ["#python", "#urllib", "#string", "#url", "#convert", "#library"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to convert a string to a URL using urllib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_string_to_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_string_to_URL.ipynb", "imports": ["urllib.parse"], "updated_at": "", "image_url": ""}, {"objectID": "03791db2779f73d9044c86f3b1f51a2f2c9b4343f9717fd1e2ccf0aa65da85c6", "tool": "Python", "notebook": "Convert time delta to months", "action": "", "tags": ["#python", "#datetime", "#timedelta", "#calculate", "#date", "#time"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook convert the time delta between two dates to months.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_time_delta_to_months.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_time_delta_to_months.ipynb", "imports": ["datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "e124d5cbb19b3fbe5b868dcf46bb16fa5e5b8c2d1caf34e712fd11ce10360bf5", "tool": "Python", "notebook": "Convert units", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#length", "#temperature", "#weight", "#time", "#volume", "#speed"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook shows you how to convert units (length, temperature, weight, time, volume, speed) using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_units.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_units.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "8b78cb9c1482a8aa5d796c3cb0084b2af3a3e9efaeebeb65de5a5c82143af234", "tool": "Python", "notebook": "Copy files and subdir from directory to another directory", "action": "", "tags": ["#python", "#os", "#shutil", "#operations", "#snippet"], "author": "Parth Panchal", "author_url": "https://www.linkedin.com/in/parthpanchal8401/", "description": "This notebook provides a Python script to copy files and subdirectories from one directory to another.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb", "imports": ["shutil", "os"], "updated_at": "", "image_url": ""}, {"objectID": "7a22581a89abec8e9064d61cbe041eb2714389315534606904bb777e73f3eb7b", "tool": "Python", "notebook": "Create Email Combination with Firstname Lastname Domain address", "action": "", "tags": ["#python", "#email", "#combination", "#firstname", "#lastname", "#domain", "#sales", "#prospect"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will create a list of emails combination with firstname, lastname and domain address. This notebook can be used to find and test an email address for a prospect.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "287f76fafc85efc85412756d89bbbcfe44730e5f2bb38149ac0374522f23c2dd", "tool": "Python", "notebook": "Create Strong Random Password", "action": "", "tags": ["#python", "#password", "#random", "#snippet", "#operations"], "author": "Sunny", "author_url": "https://www.linkedin.com/in/sunny-chugh-ab1630177/", "description": "The objective of this notebook is to Create Strong random password.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_Strong_Random_Password.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_Strong_Random_Password.ipynb", "imports": ["random", "string"], "updated_at": "", "image_url": ""}, {"objectID": "dc2e29332347a26e140e365029573d514acb1dae172eb15ce21ad5c557bba2c6", "tool": "Python", "notebook": "Create dataframe from lists", "action": "", "tags": ["#python", "#list", "#dataframe", "#snippet", "#pandas", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to use Python to create a dataframe from lists.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_dataframe_from_lists.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_dataframe_from_lists.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "d7d863424921d5fede902600607bd28d9bf4753d1c27af768c5b35cc1d1abe0c", "tool": "Python", "notebook": "Create dict from lists", "action": "", "tags": ["#python", "#list", "#dict", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides instructions on how to create a dictionary from two lists in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_dict_from_lists.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_dict_from_lists.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "03afcf02c7e061c5c2deb5f4d6cd7467b149399644cb1bba64ea2e36dd15f196", "tool": "Python", "notebook": "Delete entire directory tree", "action": "", "tags": ["#python", "#shutil", "#delete", "#folder", "#file", "#directory"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will show how to delete an entire directory tree using the shutil library. \n\nShutil module in Python provides many functions of high-level operations on files and collections of files. It comes under Python\u2019s standard utility modules. This module helps in automating the process of copying and removal of files and directories. \n\n`shutil.rmtree()` is used to delete an entire directory tree, path must point to a directory (but not a symbolic link to a directory).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Delete_entire_directory_tree.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Delete_entire_directory_tree.ipynb", "imports": ["shutil"], "updated_at": "", "image_url": ""}, {"objectID": "7a281dea954ab667015391ddacef8e3c6f808fa79c747bb70d288124ffbdd5cb", "tool": "Python", "notebook": "Download Image from URL", "action": "", "tags": ["#python", "#image", "#url", "#naas", "#snippet"], "author": "Abraham Israel", "author_url": "https://www.linkedin.com/in/abraham-israel/", "description": "This notebook provides a step-by-step guide to downloading an image from a URL using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_Image_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_Image_from_URL.ipynb", "imports": ["wget", "wget", "IPython.display.Image"], "updated_at": "", "image_url": ""}, {"objectID": "872420f12cee8df45fe4b26b0fd0b0626f804e3babb46767478343b72b8a9577", "tool": "Python", "notebook": "Download PDF from URL", "action": "", "tags": ["#python", "#pdf", "#snippet", "#url", "#naas", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a step-by-step guide to downloading a PDF file from a URL using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_PDF_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_PDF_from_URL.ipynb", "imports": ["urllib"], "updated_at": "", "image_url": ""}, {"objectID": "957c6b7099115e2ae404fdeea269f27e570a97ae941a603faad6a55502ce016f", "tool": "Python", "notebook": "Download ZIP from URL", "action": "", "tags": ["#python", "#urllib", "#download", "#zip", "#url", "#request"], "author": "Hamid Mukhtar", "author_url": "https://www.linkedin.com/in/mukhtar-hamid/", "description": "This notebook will show how to download a ZIP file from a URL using urllib.request.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_ZIP_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_ZIP_from_URL.ipynb", "imports": ["os", "shutil", "urllib"], "updated_at": "", "image_url": ""}, {"objectID": "aed246dedce0dfc3440f08d081ff16e62e1dda1fd1cc0b6c5f39b88ea8617e89", "tool": "Python", "notebook": "Explore Dataset with Pivot Table", "action": "", "tags": ["#python", "#dataset", "#pivottable", "#dataexploration"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook allows you to interactively explore and analyze a dataset using a pivot table. It uses the `pivottablejs` library to generate a dynamic pivot table in your web browser, giving you the ability to sort, filter, and aggregate data in real-time. This template provides a simple and intuitive way to explore and gain insights from your dataset, making it a valuable tool for data analysis and visualization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb", "imports": ["pandas", "pivottablejs.pivot_ui", "pivottablejs.pivot_ui"], "updated_at": "", "image_url": ""}, {"objectID": "4d33b51aeb8bff0d6e56610f53de035ed263c78d3f2399eaee3990e4ccac4b85", "tool": "Python", "notebook": "Extract characters from string", "action": "", "tags": ["#python", "#extract", "#string", "#character"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook will show how to extract characters from a string.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Extract_characters_from_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Extract_characters_from_string.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "f0ed397656db4d35042f2e3dba5ca56a23ab02a7d4a4642cccc077086eaf0e1f", "tool": "Python", "notebook": "Find Phone Number in string", "action": "", "tags": ["#python", "#string", "#number", "#naas", "#operations", "#snippet"], "author": "Anas Tazir", "author_url": "https://github.com/anastazir", "description": "This notebook provides a Python script to identify and extract phone numbers from a given string.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Find_Phone_Number_in_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Find_Phone_Number_in_string.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "c53dc95597572e013944cf90ff5480eabd8f4deb4a7d116fcb2ef26ad5e76181", "tool": "Python", "notebook": "Find differences between strings", "action": "", "tags": ["#python", "#strings", "#differences", "#compare", "#find", "#string"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook will compare two strings and find the differences between them. It is useful for users to quickly identify the differences between two strings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Find_differences_between_strings.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Find_differences_between_strings.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "c481bc8d4efd4aff05e1577eb197f2cfeed1834b5fd496a8438a190c5684c9f8", "tool": "Python", "notebook": "Flatten nested dict", "action": "", "tags": ["#python", "#dict", "#flatten", "#nested", "#data", "#structure"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to flatten a nested dict in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Flatten_nested_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Flatten_nested_dict.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "333b5d2d5a8adf1385cca957efd4e1193793c91593fdb4ba7eae7593fe88d64f", "tool": "Python", "notebook": "Get Word Definition and Translation", "action": "", "tags": ["#python", "#dictionary", "#project", "#word", "#snippet"], "author": "Sriniketh Jayasendil", "author_url": "https://twitter.com/srini047/", "description": "This notebook get world definition and translation from English using PyDictionary.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_Word_Definition_and_Translation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_Word_Definition_and_Translation.ipynb", "imports": ["PyDictionary.PyDictionary", "PyDictionary.PyDictionary"], "updated_at": "", "image_url": ""}, {"objectID": "712b3b28a79e451c9bcce99b1cfd032a25416ce695e3c59f9f455df31523b8da", "tool": "Python", "notebook": "Get all files from directory", "action": "", "tags": ["#python", "#naas", "#glob", "#pprint", "#snippet"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/ayoub-berdeddouch", "description": "This notebook gives you the ability to get all files from a directory even in a sub-directory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_all_files_from_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_all_files_from_directory.ipynb", "imports": ["glob", "os.path"], "updated_at": "", "image_url": ""}, {"objectID": "99b7889c02066945ea9978b756ab4b00c081c15b2f18dc3f7161b8a4f08923d8", "tool": "Python", "notebook": "Get coordinates from address", "action": "", "tags": ["#python", "#snippet", "#naas", "#geocoder"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "description": "This notebook get coordinates from a given address.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_coordinates_from_address.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_coordinates_from_address.ipynb", "imports": ["geocoder", "geocoder"], "updated_at": "", "image_url": ""}, {"objectID": "8a57a4125fe02a9041a6723a3e80eea843fe2a5efb705b899c2558c8bbd5248e", "tool": "Python", "notebook": "Get last file modified from directy", "action": "", "tags": ["#python", "#os", "#library", "#file", "#modified", "#directory"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get the last file modified from a directory using the os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_last_file_modified_from_directy.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_last_file_modified_from_directy.ipynb", "imports": ["os"], "updated_at": "", "image_url": ""}, {"objectID": "ebc58d505f37c456cff8fedcc2252596d0f3957a268f00d45856b1231f12e98e", "tool": "Python", "notebook": "Get next occurrences of a cron job", "action": "", "tags": ["#python", "#cron", "#croniter", "#job", "#occurrences", "#scheduling"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get the next x occurrences of your cron job using croniter. It is usefull for organizations to schedule tasks and jobs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb", "imports": ["croniter", "croniter", "pytz", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "273a29ff310403095ebba2c30813413cdbea48f497eb114a7224762e8ae1ebf3", "tool": "Python", "notebook": "Get random number", "action": "", "tags": ["#python", "#number", "#generation", "#random", "#snippet", "#operation"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook demonstrates how to get random numbers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_random_number.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_random_number.ipynb", "imports": ["random"], "updated_at": "", "image_url": ""}, {"objectID": "528d537bbac178bf8781873b2a2aad8e0496c9e1536508e3585d6ad24f41addc", "tool": "Python", "notebook": "Get a random word", "action": "", "tags": ["#python", "#word", "#random", "#snippet"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook show how to get a random word.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_random_word.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_random_word.ipynb", "imports": ["random", "nltk.corpus.wordnet", "nltk.corpus.wordnet", "nltk"], "updated_at": "", "image_url": ""}, {"objectID": "381a06edafb0d844bae219bab0e7cd6772d3ed58bbb597161a0ffecce70fff53", "tool": "Python", "notebook": "List specific files from directory and subdirectories", "action": "", "tags": ["#python", "#glob", "#os", "#files", "#directory", "#subdirectories"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook list all specific files from a directory and its subdirectories using glob and os libraries. It is usefull to quickly list all files from a directory and its subdirectories.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb", "imports": ["glob", "os"], "updated_at": "", "image_url": ""}, {"objectID": "34facbf13a7e56bfaa689c8351e1f7980a5b0ac0c6818da5b29d7930907d14fd", "tool": "Python", "notebook": "Locate address on map", "action": "", "tags": ["#python", "#geocoding", "#city", "#coordinates", "#location", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get coordinates from an address using Python and display it on a map.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Locate_address_on_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Locate_address_on_map.ipynb", "imports": ["geocoder", "geocoder", "pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "f6bac2f96a6ae10b5e54f83f2ed151f5c4094bee0516f3ee795de50c02c95791", "tool": "Python", "notebook": "Locate city on map", "action": "", "tags": ["#python", "#geocoding", "#city", "#coordinates", "#location", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to get coordinates from a city name using Python and display it on a map.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Locate_city_on_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Locate_city_on_map.ipynb", "imports": ["geocoder", "geocoder", "pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "d55e369e1ac2a640e4019f281f7944654c06cb9f2b0c27c0f1f2f129dd5fa099", "tool": "Python", "notebook": "Locate coordinates", "action": "", "tags": ["#python", "#snippet", "#naas", "#geocoder"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "description": "This notebook provides a way to find the geographic coordinates of a given location using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Locate_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Locate_coordinates.ipynb", "imports": ["geocoder", "geocoder"], "updated_at": "", "image_url": ""}, {"objectID": "0d30d21161d2fb93660e3177f2620431276c202a1814b1913273755b86468e8a", "tool": "Python", "notebook": "Looping Over Dataframe", "action": "", "tags": ["#python", "#pandas", "#python", "#loops", "#dataframes", "#forloop", "#loop", "#snippet", "#operations"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "description": "This notebook provides an overview of how to use loops to iterate over a dataframe in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Looping_Over_Dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Looping_Over_Dataframe.ipynb", "imports": ["pandas", "numpy"], "updated_at": "", "image_url": ""}, {"objectID": "b3250febe49c96eaa6b828a7d7db8ea79a7be078466bf984f7e3d0495291d190", "tool": "Python", "notebook": "Manage code error with try except", "action": "", "tags": ["#python", "#error", "#try", "#exception", "#snippet"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook will demonstrate how to manage code error using try except. \nThe `try` block lets you test a block of code for errors.\nThe `except` block lets you handle the error. You can specify the type of exception to manage error.\nThe `else` block lets you execute code when there is no error.\nThe `finally` block lets you execute code, regardless of the result of the try- and except blocks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Manage_exception_with_try_except.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Manage_exception_with_try_except.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "0ab9494e481d7f7c2fdead13ca4b8a0d8c8caca6cc43f1c1386eeaa60915720b", "tool": "Python", "notebook": "Organize Directories based on file types", "action": "", "tags": ["#organize", "#files", "#directories"], "author": "Ahmed Mousa", "author_url": "https://www.linkedin.com/in/akmousa/", "description": "This notebook organizes your files based on their extensions to directories for data scientists", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Organize_Directories_based_on_file_types.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Organize_Directories_based_on_file_types.ipynb", "imports": ["shutil.move", "os.path", "os", "glob", "pathlib"], "updated_at": "", "image_url": ""}, {"objectID": "6b201a517cee73c048da83f5eeea5a372c37d868c68b1ba958a7eb3723778014", "tool": "Python", "notebook": "Pseudonym generator", "action": "", "tags": ["#python", "#pseudonym", "#generation", "#random", "#snippet", "#operation"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook demonstrates how to get random pseudonym.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Pseudonym_generator.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Pseudonym_generator.ipynb", "imports": ["random"], "updated_at": "", "image_url": ""}, {"objectID": "545dd6c2277d307b19ba67772aeaf03f101cd8f7997e5de53569d2e07f98988a", "tool": "Python", "notebook": "Read json file", "action": "", "tags": ["#python", "#json", "#read", "#file", "#data", "#parse"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook will demonstrate how to read a json file in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Read_json_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Read_json_file.ipynb", "imports": ["json"], "updated_at": "", "image_url": ""}, {"objectID": "764a61ccadd589be64a9953b0c2f0ae854335e74fb7dd944ed5585051a031eb8", "tool": "Python", "notebook": "Read pickle file", "action": "", "tags": ["#python", "#pickle", "#file", "#load", "#data", "#io"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153/", "description": "This notebook loads a dictionary from pickle object. Loading a dictionary using pickle is a quick and easy process. With just a few lines of code, you can store your dictionary data from a pickle file. \n\nPickle can cause critical security vulnerabilities in code, you should never unpickle data you don\u2019t trust. If you must accept data from an untrusted client, you should use the safer JSON format. And, if you transfer pickled data between trusted applications but need extra measures to prevent tampering, you should generate an HMAC signature you can verify before unpickling.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Read_pickle_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Read_pickle_file.ipynb", "imports": ["pickle"], "updated_at": "", "image_url": ""}, {"objectID": "0d78a6b4a629c2de8f39bc5862abe5d91077ed048c9ae5b3df5277f419395f72", "tool": "Python", "notebook": "Remove all spaces on string", "action": "", "tags": ["#python", "#remove", "#string", "#space"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook shows how to remove all spaces from a string using two different methods", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Remove_all_spaces_on_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Remove_all_spaces_on_string.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "2420ecf7c6601531c93fcf5bd3fd74ae7584c3b666889d872cecdd186ac28502", "tool": "Python", "notebook": "Save dict to pickle", "action": "", "tags": ["#python", "#pickle", "#file", "#save", "#data", "#io"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153/", "description": "This notebook saves a dictionary to pickle object. Saving a dictionary using pickle is a quick and easy process. With just a few lines of code, you can store your dictionary data in a binary format that can be easily loaded later on.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Save_dict_to_pickle.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Save_dict_to_pickle.ipynb", "imports": ["pickle"], "updated_at": "", "image_url": ""}, {"objectID": "3d275411df57748c1f0b36c1b0f71a229c7856e2fcc01d7a1f55eaa771d387ed", "tool": "Python", "notebook": "Save json file", "action": "", "tags": ["#python", "#json", "#file", "#save", "#data", "#io"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook will demonstrate how to save a json file using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Save_json_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Save_json_file.ipynb", "imports": ["json"], "updated_at": "", "image_url": ""}, {"objectID": "cd0eb2047f4ba6ff6d26c2a2842f93e989014f5a4902b69592fd075bbb6859e4", "tool": "Python", "notebook": "Split string", "action": "", "tags": ["#python", "#file", "#string", "#url", "#split", "#snippet", "#operations"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook shows you how to split a string object. The `split()` function in Python is useful for dividing a string into smaller parts based on a specified delimiter. It enables efficient string parsing, data cleaning, user input processing, and tokenization in natural language processing tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Split_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Split_string.ipynb", "imports": [], "updated_at": "", "image_url": ""}, {"objectID": "51927e37f1c930d38501a5524f66df6a3305327b1f73da29f93de18680b7b723", "tool": "Python", "notebook": "Transform String to Secure Hash Algorithm", "action": "", "tags": ["#python", "#security", "#hash", "#algorithm", "#encryption", "#sha"], "author": "Firstname LastName", "author_url": "https://www.linkedin.com/in/xxxxxx/", "description": "This notebook will demonstrate how to create a secure hash algorithm using Python. It is useful for organizations to ensure data security and integrity.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb", "imports": ["hashlib", "hashlib"], "updated_at": "", "image_url": ""}, {"objectID": "bc5e5a53dce086157760c18fbdfec9e5ac3def16134edf36a04e4f7eeaafb3a8", "tool": "Python", "notebook": "Using datetime library", "action": "", "tags": ["#python", "#datetime", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an introduction to using the Python datetime library to work with dates and times.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Using_datetime_library.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Using_datetime_library.ipynb", "imports": ["datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "6de9c1a35eb23d9d9f9c7f42401106d9b96ac0cfc31c95f41ee0fa4190b8ed10", "tool": "Python", "notebook": "Validate email and phone numbers", "action": "", "tags": ["#python", "#twilio", "#project", "#call", "#mobile", "#snippet"], "author": "Sriniketh Jayasendil", "author_url": "https://twitter.com/srini047/", "description": "This notebook validates a given email address and phone number using `re` and `phonenumbers` modules.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Validate_email_and_phone_numbers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Validate_email_and_phone_numbers.ipynb", "imports": ["re", "phonenumbers", "phonenumbers"], "updated_at": "", "image_url": ""}, {"objectID": "2df55afca82f21837a817a57c842dcf4460d0908883b76b3c64576ef8f09f864", "tool": "Pyvis", "notebook": "Create a network visualization", "action": "", "tags": ["#python", "#naas", "#scheduler", "#network", "#snippet", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "With this notebook, you can create a network graph to visualize the relations between different elements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pyvis/Pyvis_Create_a_network_visualization.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pyvis/Pyvis_Create_a_network_visualization.ipynb", "imports": ["naas", "pyvis.network.Network"], "updated_at": "", "image_url": ""}, {"objectID": "a7d100e0889cb14f5c824f377c6a44885ee52aa18f9155282c1d08bd2c642f26", "tool": "Qonto", "notebook": "Get cash position trend", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#plotly", "#linechart", "#finance", "#analytics", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an overview of cash position trends for Qonto customers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_cash_position_trend.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_cash_position_trend.ipynb", "imports": ["naas_drivers.qonto", "datetime.datetime", "pandas", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "31964e4e6eb09f073ef7878131675b687729a27f0a488f0186e6666b735b861e", "tool": "Qonto", "notebook": "Get organizations", "action": "", "tags": ["#qonto", "#bank", "#organizations", "#positions", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Qonto is a financial service that helps organizations manage their finances and get organized.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_organizations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_organizations.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "ea9e48f2660d5e99bf7c98f34152cb079f7643c88a1cb3bbb689828118d28d35", "tool": "Qonto", "notebook": "Get positions", "action": "", "tags": ["#qonto", "#bank", "#organizations", "#positions", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides an overview of the positions available through Qonto, a digital banking service.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_positions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_positions.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "6a9ad826ce7186c78e78078a3ee167f0a0226478c26805fe708b78eed6659048", "tool": "Qonto", "notebook": "Get statement", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a convenient way to access and view your Qonto account statements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "ae25587a760343b76cd21871e8fb5a9348e957b7e89fd66c66edeaa5683a1bcc", "tool": "Qonto", "notebook": "Get statement barline", "action": "", "tags": ["#qonto", "#bank", "#statement", "#plotly", "#barline", "#naas_drivers", "#finance", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a convenient way to generate barlines for Qonto statements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement_barline.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement_barline.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "e34d7a0d1f542aed1377cf95b45f7b2ae126679533186edb3529908fe0b406c8", "tool": "Qonto", "notebook": "Get statement ranking by category", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to organize and analyze financial statements by category to gain insights into spending patterns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement_ranking_by_category.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement_ranking_by_category.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "f64cd3ab2aa93155bc8e1bf38148fb31ec7d96744518fe4426086a63de69c306", "tool": "Qonto", "notebook": "Get statement summary by operation type", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a summary of financial operations by type for Qonto users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "b79366dec95c9ac8fd048926ce03d2ce291bfc116f06d4c12182d386496c48bd", "tool": "Qonto", "notebook": "Get transactions", "action": "", "tags": ["#qonto", "#bank", "#transactions", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Qonto's notebook allows you to easily access and manage your transactions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_transactions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_transactions.ipynb", "imports": ["naas_drivers.qonto"], "updated_at": "", "image_url": ""}, {"objectID": "9cc3c79640025122d4d08f417b90e3c33382632218f192b7f91b09e0e07d7a36", "tool": "Qonto", "notebook": "Releve de compte augmente", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#notification", "#emailbuilder", "#asset", "#scheduler", "#naas", "#finance", "#automation", "#analytics", "#plotly", "#email", "#html", "#image", "#excel"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "Recevez un relev\u00e9 de compte augment\u00e9 par email gratuitement, chaque semaine, gr\u00e2ce \u00e0 un template Naas.ai (moteur de donn\u00e9es opensource, 100 cr\u00e9dits offert par mois). \n

\n-Dur\u00e9e de l'installation = 5 minutes
\n-Support d'installation = Guide vid\u00e9o
\n-Niveau = Facile
", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Releve_de_compte_augmente.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Releve_de_compte_augmente.ipynb", "imports": ["naas_drivers.qonto", "datetime.datetime, timedelta", "pandas", "naas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "b011d4cb48a9cb6019a9bf3d65607a661c3b457d783fd0a31f524e0d36d500a0", "tool": "Quandl", "notebook": "Get data from API", "action": "", "tags": ["#quandl", "#marketdata", "#opendata", "#finance", "#snippet", "#matplotlib"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a guide to retrieving data from the Quandl API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Quandl/Quandl_Get_data_from_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Quandl/Quandl_Get_data_from_API.ipynb", "imports": ["quandl", "matplotlib.pyplot"], "updated_at": "", "image_url": ""}, {"objectID": "5fc16e4d7e6415f3d4c6c3adb959707425d1e22a89f4c9ed83dce4819a6524be", "tool": "Quandl", "notebook": "Get data from CSV", "action": "", "tags": ["#quandl", "#marketdata", "#opendata", "#finance", "#snippet", "#csv"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a guide to retrieving data from CSV files using the Quandl API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Quandl/Quandl_Get_data_from_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Quandl/Quandl_Get_data_from_CSV.ipynb", "imports": ["matplotlib.pyplot", "pandas", "os"], "updated_at": "", "image_url": ""}, {"objectID": "8531d6684ed740ec2ff6fd79b946c490932a6fb0b5f8929ace7f53c543152096", "tool": "Reddit", "notebook": "Get Hot Posts From Subreddit", "action": "", "tags": ["#reddit", "#subreddit", "#data", "#hottopics", "#rss", "#information", "#opendata", "#snippet", "#dataframe"], "author": "Yaswanthkumar GOTHIREDDY", "author_url": "https://www.linkedin.com/in/yaswanthkumargothireddy/", "description": "This notebook allows users to retrieve the hottest posts from a specified subreddit on Reddit.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb", "imports": ["praw", "pandas", "numpy", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "8812c328726e145037006c5dcb182640230ec58dcb57aec562289e838e3ae409", "tool": "Redshift", "notebook": "Connect with SQL Magic and IAM Credentials", "action": "", "tags": ["#redshift", "#database", "#snippet", "#operations", "#naas", "#jupyternotebooks"], "author": "Caleb Keller", "author_url": "https://www.linkedin.com/in/calebmkeller/", "description": "## Input\n\n- ipython-sql\n- boto3\n- psycopg2\n- sqlalchemy-redshift\n\nIf you're running in NaaS, you can execute the below to install the necessary libraries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb", "imports": ["boto3", "psycopg2", "getpass", "pandas", "urllib.parse"], "updated_at": "", "image_url": ""}, {"objectID": "4f03512608dfc108d56e8bd6f0396f48d71e76adca829f5753f7ed8172a2f2de", "tool": "RegEx", "notebook": "Check email validity", "action": "", "tags": ["#regex", "#python", "#email", "#validity", "#check", "#string"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to check the validity of an email address using `re` module. \nThe `re.search()` function in Python's re module allows you to search for a specified pattern within a string. It returns a match object if the pattern is found, enabling you to extract relevant information from the string based on the given pattern.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/RegEx/RegEx_Check_email_validity.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/RegEx/RegEx_Check_email_validity.ipynb", "imports": ["re"], "updated_at": "", "image_url": ""}, {"objectID": "685a1f40f7aa4a1232db34e0359c257af7cfb943e0ababc3ce2c39cb4d53a733", "tool": "RegEx", "notebook": "Match pattern", "action": "", "tags": ["#regex", "#python", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook demonstrates how to match a pattern in a string using `re.search()` and `re.match()`. The main difference between `re.search()` and `re.match()` lies in how they apply pattern matching to the input string. `re.search()` scans the entire input string and returns the first occurrence of a pattern match, regardless of its position within the string. On the other hand, `re.match()` only checks for a pattern match at the beginning of the string.\n\nTo start, we recommand you to test your regular expression using this website: https://regex101.com/", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/RegEx/RegEx_Match_pattern.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/RegEx/RegEx_Match_pattern.ipynb", "imports": ["re"], "updated_at": "", "image_url": ""}, {"objectID": "c1fb82c7c15421cc52e119f4c0989d93fff90d185ae48e67c528a81197f697ce", "tool": "RegEx", "notebook": "Replace value in text in a specific paragraph", "action": "", "tags": ["#regex", "#re", "#python", "#string", "#replace", "#text", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to replace a value in a specific paragraph of a text using `re` module. The `re.sub()` function enables you to perform pattern-based string substitutions. It allows you to replace occurrences of a pattern in a given string with a specified replacement.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb", "imports": ["re"], "updated_at": "", "image_url": ""}, {"objectID": "305c5c190163ec3d354712a27c233a097b14c1492cd412900d9283b6cacc4424", "tool": "Remoteok", "notebook": "Get jobs from categories", "action": "", "tags": ["#remoteok", "#jobs", "#csv", "#snippet", "#opendata", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "Remoteok is a job search platform that allows users to find jobs from a variety of categories.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remoteok/Remoteok_Get_jobs_from_categories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remoteok/Remoteok_Get_jobs_from_categories.ipynb", "imports": ["pandas", "requests", "datetime.datetime", "time"], "updated_at": "", "image_url": ""}, {"objectID": "d49a83032e1012afe8025a8ee46e5eca93ea3f5212272486e2ea692bd2783590", "tool": "Remoteok", "notebook": "Post daily jobs on slack", "action": "", "tags": ["#remoteok", "#jobs", "#slack", "#gsheet", "#naas_drivers", "#automation", "#opendata", "#text"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows you to post daily jobs from Remoteok to your Slack workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb", "imports": ["pandas", "requests", "datetime.datetime", "time", "naas_drivers.gsheet, slack", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2e0a5121d38b84cc390290272eea893ea63d79e5ce7993a046e6c6f332824dfc", "tool": "Remotive", "notebook": "Get categories from job", "action": "", "tags": ["#remotive", "#categories", "#snippet", "#opendata", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a way to categorize jobs posted on Remotive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Get_categories_from_job.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Get_categories_from_job.ipynb", "imports": ["pandas", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "e141af26ebf6859a4e26fdf19cbbef08826a4a49ba12d240412d69b89f8b322b", "tool": "Remotive", "notebook": "Get jobs from categories", "action": "", "tags": ["#remotive", "#jobs", "#csv", "#snippet", "#opendata", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a comprehensive list of remote job opportunities from a variety of categories.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Get_jobs_from_categories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Get_jobs_from_categories.ipynb", "imports": ["pandas", "requests", "time", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "521ba7b3ee67b30d454150ddda5168f097b9f305cc6b56c02297e603aade0ba9", "tool": "Remotive", "notebook": "Post daily jobs on slack", "action": "", "tags": ["#remotive", "#jobs", "#slack", "#gsheet", "#naas_drivers", "#automation", "#opendata", "#text"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "description": "Remotive is a Slack app that allows users to post and find remote job opportunities on a daily basis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb", "imports": ["pandas", "bs4.BeautifulSoup", "requests", "datetime.datetime", "time", "naas_drivers.gsheet, slack", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "0bae0fd45a541ae9aa454e8fce4a5df9f94d001e54ac616de251c2cf19566aeb", "tool": "Remotive", "notebook": "Send jobs to gsheet", "action": "", "tags": ["#remotive", "#jobs", "#gsheet", "#naas_drivers", "#automation", "#opendata", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook allows users to quickly and easily send jobs to a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Send_jobs_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Send_jobs_to_gsheet.ipynb", "imports": ["pandas", "requests", "datetime.datetime", "time", "naas_drivers.gsheet", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "c760989aeb646043394a467ce2c6b687a3066f01ab69f8e63a21755361bd5fe0", "tool": "Request", "notebook": "Basic HTTP GET", "action": "", "tags": ["#request", "#http", "#get", "#library", "#python", "#api"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook provides a template for making a basic HTTP GET request using the requests library. It covers importing the library, making the request, handling the response, and displaying the retrieved data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Request/Request_Basic_HTTP_GET_Request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Basic_HTTP_GET_Request.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "9678f6e9d554c476ab1edd5e4046bdb3c55626b16b11a91767b3ef45250215d2", "tool": "Request", "notebook": "Sending POST s with Data", "action": "", "tags": ["#requests", "#post", "#data", "#python", "#library", "#api"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "description": "This notebook template demonstrates how to use the requests library to send a POST request with data. It includes importing the library, preparing the data, making the request, handling the response, and verifying the successful submission.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Request/Request_Sending_POST_Requests_with_Data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Sending_POST_Requests_with_Data.ipynb", "imports": ["requests"], "updated_at": "", "image_url": ""}, {"objectID": "1ec91cf3ea4e7bc9c5e5fe8f000bfcab76e74a221d3820500f41cb5744282f1d", "tool": "SAP-HANA", "notebook": "Query data", "action": "", "tags": ["#sap-hana", "#sap", "#saphana", "#database", "#snippet", "#operations", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an introduction to querying data in SAP HANA.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SAP-HANA/SAP-HANA_Query_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SAP-HANA/SAP-HANA_Query_data.ipynb", "imports": ["sap_hana_connector"], "updated_at": "", "image_url": ""}, {"objectID": "bc8693ec5df8d3d2c7d05271ed8f68e0aeefdcb1ae5c3fcefcf4246df9614dcd", "tool": "SEON", "notebook": "Get email info", "action": "", "tags": ["#seon", "#email", "#enrichment", "#api", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to use SEON's standalone email enrichment tool to learn about the approximate minimum age of an email address, its provider, and any connected online profiles and save it into a json file.\n\n*Good to know:*\n- You can use the Fraud API if you want to use the Email API together with any of our Phone API, IP API, and Device Fingerprinting.\n- All SEON API requests are case-sensitive. Please follow the formatting below to avoid errors.\n- Email API requests are limited to 120/minute during your SEON free trial.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SEON/SEON_Get_email_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SEON/SEON_Get_email_info.ipynb", "imports": ["requests", "naas", "pprint.pprint", "json"], "updated_at": "", "image_url": ""}, {"objectID": "dfc7aa18b61ba877af2ccc28a176b6ec5c7ae90df276085a78e8a01d116ec615", "tool": "SQLite", "notebook": "Create Database file", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates a new SQLite database file using the sqlite3 module in Python. Here's an example of how you can create a new SQLite database file called \"mydatabase.db\"", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Create_Database_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Create_Database_file.ipynb", "imports": ["sqlite3"], "updated_at": "", "image_url": ""}, {"objectID": "1bc66c95ce6020ea5e543316f2bf03a0cf0e7d41f12680f81371452e3454320d", "tool": "SQLite", "notebook": "Create Table in Database", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook creates a table called \"employees\" in a SQLite database. Please note that the new table created will erase the old one if a table already exist in the database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Create_Table_in_Database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Create_Table_in_Database.ipynb", "imports": ["sqlite3"], "updated_at": "", "image_url": ""}, {"objectID": "d9989623aa996ed0e28f3ea73630f21a11e50cc3087b3de6271505d6c59bb986", "tool": "SQLite", "notebook": "Insert data in Table", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook insert the values into a table in a SQLite database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Insert_data_in_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Insert_data_in_Table.ipynb", "imports": ["sqlite3"], "updated_at": "", "image_url": ""}, {"objectID": "7190661ad83396721f507d763dc721bf6a56ccba205c65a622153be05d637503", "tool": "SQLite", "notebook": "List Tables in Database", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook lists tables within a SQLite database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_List_Tables_in_Database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_List_Tables_in_Database.ipynb", "imports": ["sqlite3"], "updated_at": "", "image_url": ""}, {"objectID": "00e01d8540447a9f7dbc8a19ee47f55e785be0d85e821c4ce6f8912fba9b6d33", "tool": "SQLite", "notebook": "Read data in Table", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook reads data from a table called \"employees\" in a SQLite database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Read_data_in_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Read_data_in_Table.ipynb", "imports": ["sqlite3"], "updated_at": "", "image_url": ""}, {"objectID": "b2640eef0eb25e93c3717902c701273fe4f8689ec7805ec9865aa5dede072f65", "tool": "SWIFT", "notebook": "Create MT940 XML file", "action": "", "tags": ["#swift", "#mt940", "#xml", "#file", "#create", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create an MT940 XML file using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SWIFT/SWIFT_Create_MT940_XML_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SWIFT/SWIFT_Create_MT940_XML_file.ipynb", "imports": ["xml.etree.ElementTree"], "updated_at": "", "image_url": ""}, {"objectID": "d7e34a46dfdab62d55033522183e338b4bfd89523400494c9c14a7880471b1cb", "tool": "SendGrid", "notebook": "Get all messages", "action": "", "tags": ["#sendgrid", "#activity", "#snippet", "#operations", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook provides a comprehensive overview of all messages sent through SendGrid.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SendGrid/SendGrid_Get_all_messages.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SendGrid/SendGrid_Get_all_messages.ipynb", "imports": ["naas", "requests", "urllib", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "49126dfdadde535c9004cb89b3c0e4c1fea355ea72a5e9f019fc99086ba4befc", "tool": "SendGrid", "notebook": "Send message", "action": "", "tags": ["#sendgrid", "#message", "#snippet", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "description": "This notebook allows you to send messages using SendGrid's email delivery service.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SendGrid/SendGrid_Send_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SendGrid/SendGrid_Send_message.ipynb", "imports": ["requests", "sendgrid.SendGridAPIClient", "sendgrid.helpers.mail.*"], "updated_at": "", "image_url": ""}, {"objectID": "3644b28c400b814d09ab9a29811b9ce0d5c88db8b6ea7288146b12530d88e1ad", "tool": "Sendinblue", "notebook": "Get no of emails opened", "action": "", "tags": ["#sendinblue", "#emails", "#campaign", "#opened", "#emailcampaigns", "#marketing", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook provides a way to track the number of emails opened using Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb", "imports": ["requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "7dcc2250cb71fd6d7df3b877dc5168e6ee68e03beb17aeed32fb057a113f9740", "tool": "Sendinblue", "notebook": "Get no of emails sent", "action": "", "tags": ["#sendinblue", "#emails", "#campaign", "#sent", "#emailcampaigns", "#marketing", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook provides a way to track the number of emails sent through Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb", "imports": ["requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "d44b552d043fa74c9a00ca9ed43835a9acd1016434330820159f1818411b73e4", "tool": "Sendinblue", "notebook": "Get no of spam reports", "action": "", "tags": ["#sendinblue", "#emails", "#campaign", "#spam", "#emailcampaigns", "#marketing", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook provides a way to track the number of spam reports received through Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb", "imports": ["requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "dd7e259333a94870bff986f6e4f3d3e1875f6fd02fbe6c6fccacd81d7fbc1336", "tool": "Sendinblue", "notebook": "Get no of undelivered emails", "action": "", "tags": ["#emails", "#campaign", "#undelivered", "#emailcampaigns", "#marketing", "#sendinblue", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook provides a count of emails that were not successfully delivered using Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb", "imports": ["requests", "json", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "e14418219d04e28461426bee2d1dd57778c3265b9e36b8696268ad8ed0b5f0bc", "tool": "SharePoint", "notebook": "Get file", "action": "", "tags": ["#sharepoint", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to retrieving files from a SharePoint server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SharePoint/SharePoint_Get_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SharePoint/SharePoint_Get_file.ipynb", "imports": ["naas_drivers.sharepoint", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "ea00d49b6e6488a3327b37ffc55ae0498cbd875f1a50654e4298105e11fd0af2", "tool": "SharePoint", "notebook": "List folder", "action": "", "tags": ["#sharepoint", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to managing and organizing files in a SharePoint List folder.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SharePoint/SharePoint_List_folder.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SharePoint/SharePoint_List_folder.ipynb", "imports": ["naas_drivers.sharepoint", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "00f1ebf2b83dcf76e8e3264850f5e04de346e4722e102bc8a95aa553a44255fc", "tool": "SharePoint", "notebook": "Upload file", "action": "", "tags": ["#sharepoint", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides instructions on how to upload a file to a SharePoint site.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SharePoint/SharePoint_Upload_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SharePoint/SharePoint_Upload_file.ipynb", "imports": ["naas_drivers.sharepoint", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "310727059ea08d1992077ac57cb0ca54196257738cb92d852bbb2bc3af7a7251", "tool": "Shutterstock", "notebook": "Search for images", "action": "", "tags": ["#shutterstock", "#images", "#search", "#api", "#reference", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to use the Shutterstock API to search for images.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Shutterstock/Shutterstock_Search_for_images.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Shutterstock/Shutterstock_Search_for_images.ipynb", "imports": ["json", "naas", "requests", "PIL.Image", "io", "matplotlib.pyplot", "pydash"], "updated_at": "", "image_url": ""}, {"objectID": "69edbf0f3bece275b66ceff5c8dc5510c1db14429f958e7dc109afbf15f02bc2", "tool": "Slack", "notebook": "Add new user to Google Sheets", "action": "", "tags": ["#slack", "#googlesheets", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://docs.naas.ai/templates/google-sheets", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb", "imports": ["naas_drivers.gsheet", "naas", "pandas", "slack_sdk.WebClient", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "5f730f307f840b3988958c46d7d837ac5877d7294ba2e4e8c77db87521611989", "tool": "Slack", "notebook": "Follow number of users in workspace", "action": "", "tags": ["#slack", "#plotly", "#html", "#image", "#csv", "#marketing", "#automation", "#analytics"], "author": "Sanjeet Attili", "author_url": "https://github.com/slackapi/python-slack-sdk", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Follow_number_of_users_in_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Follow_number_of_users_in_workspace.ipynb", "imports": ["naas", "pandas", "plotly.graph_objects", "slack_sdk.WebClient", "datetime.datetime"], "updated_at": "", "image_url": ""}, {"objectID": "4b30e7a160a1734b2ce9ce66e80f06679064d6056e488f9658d141991a022c36", "tool": "Slack", "notebook": "Send message", "action": "", "tags": ["#slack", "#message", "#send", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to quickly and easily send messages through Slack.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Send_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Send_message.ipynb", "imports": ["naas_drivers.slack"], "updated_at": "", "image_url": ""}, {"objectID": "15defdfba3040a35be89b5bf41b6e7de4dd4317de5bff7d85d5541e1ae4487a4", "tool": "Snowflake", "notebook": "Basics and data querying", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "description": "This notebook provides an introduction to the basics of Snowflake and how to query data within it.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Basics_and_data_querying.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Basics_and_data_querying.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError"], "updated_at": "", "image_url": ""}, {"objectID": "e34aa1f49930e96ed9f8f3a829011f511890ffdde810c43f4f06637a66d85b9a", "tool": "Snowflake", "notebook": "Ingest csv data from local stage", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "description": "This notebook demonstrates how to ingest CSV data from a local stage into Snowflake.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError"], "updated_at": "", "image_url": ""}, {"objectID": "e272e6e7fcca9fb2482ff3f91eab93a951c03c36e6bf7ba1fd83d6928b88c88c", "tool": "Snowflake", "notebook": "Ingest data from AWS external stages", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "description": "This notebook demonstrates how to ingest data from AWS external stages into Snowflake.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "0dfb1e2bec528e076f9a7e599747f0b8ff34b464253c902a17b7f737791862f9", "tool": "Snowflake", "notebook": "Ingest json data from local stage", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "description": "This notebook demonstrates how to ingest JSON data from a local stage into Snowflake.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError"], "updated_at": "", "image_url": ""}, {"objectID": "996435d28247d8e9c175da10ebc3f3a3c3a7709f6ab658a453069f27629f80aa", "tool": "Societe.com", "notebook": "Get company details", "action": "", "tags": ["#societe.com", "#companies", "#opendata", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides detailed information about companies registered on Societe.com.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Societe.com/Societe.com_Get_company_details.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Societe.com/Societe.com_Get_company_details.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "44d6284d9798272ec8d8b57d4a4cc811e758e0612d0d87c9fca6bf49c2b79c75", "tool": "Societe.com", "notebook": "Get verif.com", "action": "", "tags": ["#companies", "#opendata", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides access to Societe.com's verification services through Verif.com.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Societe.com/Societe.com_Get_verif.com.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Societe.com/Societe.com_Get_verif.com.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "460cb50b6264b395c250e70db47ad5aa39b2bfcc2b406dc25e5adbce004a87dc", "tool": "Spotify", "notebook": "Create Radar Chart to analyze Playlist", "action": "", "tags": ["#spotify", "#python", "#spotipy", "#analytics", "#operations", "#image"], "author": "Akshaya Parthasarathy", "author_url": "https://github.com/iaks23", "description": "This notebook provides a step-by-step guide to creating a Radar Chart to analyze a Spotify Playlist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb", "imports": ["json", "spotipy", "pandas", "spotipy.oauth2.SpotifyClientCredentials", "sklearn.preprocessing.MinMaxScaler", "matplotlib.pyplot", "math.pi"], "updated_at": "", "image_url": ""}, {"objectID": "dca116db84f70425c4800366b46cc450713e1b39960edc929e38deed8702789b", "tool": "Stabilty AI", "notebook": "Generate Image from text", "action": "", "tags": ["#stabilityai", "#png", "#prompt", "#generate", "#file", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to execute a basic image generation call via Stability AI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stabilty%20AI/Stabilty_AI_Generate_Image_from_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stabilty%20AI/Stabilty_AI_Generate_Image_from_text.ipynb", "imports": ["os", "io", "warnings", "PIL.Image", "stability_sdk.client", "stability_sdk.client", "stability_sdk.interfaces.gooseai.generation.generation_pb2", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "832c6caba950d6fab4bf84f56f9ec0661ca43ffc478e0f39bf5ba999022a6e17", "tool": "Stable Diffusion", "notebook": "Generate image from text", "action": "", "tags": ["#stable-diffusion", "#image-generation", "#text-to-image", "#ai", "#machine-learning", "#deep-learning"], "author": "Oussama El Bahaoui", "author_url": "https://www.linkedin.com/in/oelbahaoui/", "description": "This notebook generate image from text using Stable Diffusion.\n\nIt requires a more powerful machine than the free tier we provide. You have two options to proceed:\n\n1. **Using Google Colab:** If you have a Google account, you can open this notebook in Google Colab(link is above), which provides free access to more powerful computational resources to run this notebook. To do this, click the \u201cOpen in Colab\u201d button located at the end of this paragraph. Please note that you may need to sign in with your Google account or create one if you don\u2019t have it. \"Open\n\n2. **Contacting Us for Machine Upgrade:** If you prefer to run this notebook on your own machine, you can contact us to upgrade your machine. Our team will assist you in setting up the necessary environment. Please reach out to [Jeremy Ravenel](mailto:jeremy@naas.ai) for further assistance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stable%20Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stable%20Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb", "imports": ["diffusers.DiffusionPipeline, DPMSolverMultistepScheduler", "PIL.Image", "matplotlib.pyplot", "torch"], "updated_at": "", "image_url": ""}, {"objectID": "966d01eed050cc4cb01fe7a63b108c7981a5c194867ac50e215e489fe9ef04c0", "tool": "Streamlit", "notebook": "Create prediction app", "action": "", "tags": ["#streamlit", "#app", "#ml", "#ai", "#operations", "#plotly"], "author": "Gagan Bhatia", "author_url": "https://github.com/gagan3012", "description": "This notebook provides a step-by-step guide to creating a Streamlit app that can make predictions based on user input.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Streamlit/Streamlit_Create_prediction_app.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Streamlit/Streamlit_Create_prediction_app.ipynb", "imports": ["naas_drivers.streamlit", "naas_drivers.streamlit, plotly, yahoofinance, prediction", "streamlit"], "updated_at": "", "image_url": ""}, {"objectID": "ea7c3e26461ab96b7177bdb5a53a4091ee6e0c1d59010899a52e7fdb96b41797", "tool": "Stripe", "notebook": "Create a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#create", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to create a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Create_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Create_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "80d3f6a6c98fb33c54b4e6eb95c5741adf5c5a89f6ca6c85ec149c2d1789a907", "tool": "Stripe", "notebook": "Delete a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#delete", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to delete a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Delete_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Delete_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "2e1162c3667428d176ee2dc9ae136c309599c272948339c3783e0960761b749d", "tool": "Stripe", "notebook": "Get balances", "action": "", "tags": ["#stripe", "#balances", "#snippet", "#operations", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook provides a way to view and manage Stripe account balances.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Get_balances.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Get_balances.ipynb", "imports": ["stripe", "stripe", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "e75c117c1f5c9fdbef31f27e2df13e2a6e0ff9690f98452eaa7f16e7b41ec6e7", "tool": "Stripe", "notebook": "Get charges", "action": "", "tags": ["#stripe", "#charges", "#snippet", "#operations", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "description": "This notebook provides an overview of Stripe charges and their associated data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Get_charges.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Get_charges.ipynb", "imports": ["stripe", "stripe", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "3bc32324991101e1a88858f766923d627fe005351a5a1424287302bf586dca76", "tool": "Stripe", "notebook": "List all customers", "action": "", "tags": ["#stripe", "#api", "#customers", "#list", "#python", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "description": "This notebook will list all customers from Stripe and explain how to use the Stripe API to do so. It is usefull for organizations that need to manage their customers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_List_all_customers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_List_all_customers.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "d28a5138a2cc901dc326745b136655e50ecd70b823da5cfeb35fa472d429af86", "tool": "Stripe", "notebook": "Retrieve a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#retrieve", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to retrieve a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Retrieve_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Retrieve_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "b812b9cab5dd404fcfa8a097f203dc0ddcfacd3728e8c14ed1205b11b0c2e92d", "tool": "Stripe", "notebook": "Update a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#update", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will show how to update a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Update_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Update_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "07fa9fa6090c516e8d7233c9c4aceb4dafdcbbe96c685eda8ace2314d11df2df", "tool": "Supabase", "notebook": "Email Auth", "action": "", "tags": ["#supabase", "#auth", "#email", "#signin", "#signout", "#verification"], "author": "Sriniketh Jayasendil", "author_url": "http://linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook will utilize the Supabase DB and Authentication (with email verification) to Login users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Supabase/Supabase_Email_Auth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Supabase/Supabase_Email_Auth.ipynb", "imports": ["naas", "json", "supabase.create_client", "supabase.create_client"], "updated_at": "", "image_url": ""}, {"objectID": "9aacc71819205eb5f78d216ff9a089344dc6e6d906707f7c9281232f86dde6aa", "tool": "Telegram", "notebook": "Create crypto sentiment bot", "action": "", "tags": ["#telegram", "#sentiment", "#bot", "#naas_drivers", "#ai", "#investors"], "author": "Yaswanthkumar GOTHIREDDY", "author_url": "https://www.linkedin.com/in/yaswanthkumargothireddy/", "description": "This notebook provides instructions on how to create a Telegram bot that tracks and analyzes sentiment around cryptocurrencies.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb", "imports": ["logging", "telegram.ext.*", "numpy", "naas_drivers.newsapi", "naas_drivers.sentiment", "datetime.datetime, timedelta"], "updated_at": "", "image_url": ""}, {"objectID": "87ed6f3653975a17927f01bcbe3f0385fb02c53b0860ded81236b9083dc9f890", "tool": "Text", "notebook": "Reformat Without Spaces", "action": "", "tags": ["#text", "#reformat", "#snippet", "#operations", "#spaces"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "description": "This notebook reformats text by removing all spaces.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Text/Text_Reformat_Text_Without_Spaces.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Text/Text_Reformat_Text_Without_Spaces.ipynb", "imports": ["wordninja", "wordninja", "twotransactionswhichcameearlier,andfordecadesthisstymiedthedevelopmentofdecentralized digitalcurrency.Satoshi'sblockchainwasthefirstcredibledecentralizedsolution.Andnow,attentionis rapidlystartingtoshifttowardthissecondpartofBitcoin'stechnology,andhowtheblockchainconceptcanbe used for more than just money. Commonlycitedapplicationsincludeusingon-blockchaindigitalassetstorepresentcustomcurrenciesand financialinstruments(\"coloredcoins\"),theownershipofanunderlyingphysicaldevice(\"smartproperty\"), non-fungibleassetssuchasdomainnames(\"Namecoin\")aswellasmoreadvancedapplicationssuchas decentralizedexchange,financialderivatives,peer-to-peergamblingandon-blockchainidentityand reputationsystems.Another.antareaofinquiryis\"smartcontracts\"-systemswhichautomatically movedigitalassetsaccordingtoarbitrarypre-specifiedrules.Forexample,onemighthaveatreasurycontract oftheform\"AcanwithdrawuptoXcurrencyunitsperday,BcanwithdrawuptoYperday,AandBtogether canwithdrawanything,andAcanshutoffB'sabilitytowithdraw\".Thelogicalextensionofthisis decentralizedautonomousorganizations(DAOs)-long-termsmartcontractsthatcontaintheassetsand encodethebylawsofanentireorganization.WhatEthereumintendstoprovideisablockchainwithabuilt-in fullyfledgedTuring-completeprogramminglanguagethatcanbeusedtocreate\"contracts\"thatcanbeused toencodearbitrarystatetransitionfunctions,allowinguserstocreateanyofthesystemsdescribedabove,as well"], "updated_at": "", "image_url": ""}, {"objectID": "c547876f0d475350ad796940faaba28ebd0b65165eddb1123ebfb19116a70d35", "tool": "Thinkific", "notebook": "Get users", "action": "", "tags": ["#thinkific", "#education", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a guide to acquiring and engaging users for the Thinkific platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Thinkific/Thinkific_Get_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Thinkific/Thinkific_Get_users.ipynb", "imports": ["naas_drivers.thinkific"], "updated_at": "", "image_url": ""}, {"objectID": "5b7aab31600212c5c3c1ebe3bde329691ef5e075e26bfad83e30b96a27406539", "tool": "Thinkific", "notebook": "Send users", "action": "", "tags": ["#thinkific", "#education", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook allows you to send users automated emails from Thinkific.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Thinkific/Thinkific_Send_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Thinkific/Thinkific_Send_users.ipynb", "imports": ["naas_drivers.thinkific"], "updated_at": "", "image_url": ""}, {"objectID": "6e6ff26e13b5d362629eda7e97f100403c4263682ce83cd402f3e0fc0352fb3b", "tool": "TikTok", "notebook": "Get user stats", "action": "", "tags": ["#tiktok", "#user", "#stats", "#snippet", "#content"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This notebook provides an analysis of user statistics on the popular social media platform, TikTok.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/TikTok/TikTok_Get_user_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/TikTok/TikTok_Get_user_stats.ipynb", "imports": ["TikTokAPI.TikTokAPI", "TikTokAPI.TikTokAPI", "nest_asyncio", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "35f614b16e2f264d1d38670c7ca5c0fe010e4c1cd828f2812e8a58faaeaee557", "tool": "TikTok", "notebook": "Get videos stats", "action": "", "tags": ["#tiktok", "#videos", "#stats", "#snippet", "#content"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This notebook provides an analysis of video statistics on the popular social media platform, TikTok.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/TikTok/TikTok_Get_videos_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/TikTok/TikTok_Get_videos_stats.ipynb", "imports": ["TikTokAPI.TikTokAPI", "TikTokAPI.TikTokAPI", "nest_asyncio", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "236ba6113e6987e489a54a8297398d0e66d2b9ee47911ef73dc0ad23a15df7c1", "tool": "Trello", "notebook": "Get board data", "action": "", "tags": ["#trello", "#project", "#board", "#snippet", "#operations", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a way to access and analyze data from Trello boards.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Trello/Trello_Get_board_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_board_data.ipynb", "imports": ["trello_connector"], "updated_at": "", "image_url": ""}, {"objectID": "2eddf7c217470a6be61c299b0cd813d63d1c4f4786016a3b897ffcf20e36f628", "tool": "Twilio", "notebook": "Add SMS to Google Sheets spreadsheet", "action": "", "tags": ["#twilio", "#google", "#sheets", "#googlesheets", "#send"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook allows you to log all the messages sent through your Twilio Account into a Google Sheets document. Each new message will be added as a new row, along with the date, time, message ID, and message content. It's a convenient way to keep track of your Twilio activity and make sure you never miss an important message.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb", "imports": ["datetime.datetime", "naas", "gspread", "gspread", "oauth2client.service_account.ServiceAccountCredentials", "oauth2client.service_account.ServiceAccountCredentials", "twilio.rest.Client", "twilio.rest.Client"], "updated_at": "", "image_url": ""}, {"objectID": "84f71a020625f18300825bd684ac0985e2fc5b45f88839cfd9c176d5271a0f8a", "tool": "Twilio", "notebook": "Make Call", "action": "", "tags": ["#twilio", "#project", "#call", "#mobile"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook allows us to make a phone call to a verified twilio number. It also has different parameters to customize the output of the voice call.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Make_Call.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Make_Call.ipynb", "imports": ["time", "naas", "twilio.rest.Client", "twilio.rest.Client"], "updated_at": "", "image_url": ""}, {"objectID": "cf796abab887f0c032b38c2ac5c95b86f4245e69d66aea9a8d7b7e5cc5dac186", "tool": "Twilio", "notebook": "Send SMS", "action": "", "tags": ["#twilio", "#project", "#send", "#sms", "#snippet", "#operations", "#dataframe"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook allows you to send SMS messages using the Twilio API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Send_SMS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Send_SMS.ipynb", "imports": ["twilio.rest.Client", "twilio.rest.Client"], "updated_at": "", "image_url": ""}, {"objectID": "9a33bfd7731b24971b0629ffb86419d5e7e45605566c208ce2e82a5e93b81b10", "tool": "Twilio", "notebook": "Send SMS messages for Google Calendar Events", "action": "", "tags": ["#googlecalendar", "#twilio", "#notification", "#event"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "description": "This notebook sends an SMS notification for upcoming the next event you're attending in your Google Calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb", "imports": ["naas", "datetime.datetime", "pytz", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "twilio.rest.Client", "twilio.rest.Client", "pickle"], "updated_at": "", "image_url": ""}, {"objectID": "b83bc56ec2d52348e7769a349a95cffeda2100c29daae44ab84d3b54744bedfa", "tool": "Twitter", "notebook": "Add member to list", "action": "", "tags": ["#twitter", "#tweepy", "#pandas", "#twitterautomation", "#twitterlistmembers", "#snippet"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153", "description": "This notebook adds a member to the list of a particular user.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Add_member_to_list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Add_member_to_list.ipynb", "imports": ["tweepy", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "ac4829f37f52f9554372ffdc6920da0099d83854bdd4d6e8e18efcc86af6fa37", "tool": "Twitter", "notebook": "Get followers list", "action": "", "tags": ["#twitter", "#api", "#followers", "#list", "#get", "#developer"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook will demonstrate how to get a list of followers from Twitter using the API. This feature is only available on paid plan.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_followers_list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_followers_list.ipynb", "imports": ["naas", "tweepy", "tweepy.Stream", "json", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "871bb71e3870638a5e7cbe6c68554487b055d3eadc0653cc0d229d556e7d6438", "tool": "Twitter", "notebook": "Get members of list", "action": "", "tags": ["#twitter", "#tweepy", "#pandas", "#twitterautomation", "#twitterlistmembers", "#snippet"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153", "description": "This notebook gets the members of a list of a particular user. Private list members will only be shown if the authenticated user owns the specified list. It can be used to enable people to curate and organize new Lists based on the membership information", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_members_of%20list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_members_of%20list.ipynb", "imports": ["tweepy", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2cfc5fc37a64737391240ba4c7ccac0fbee076d183decdeeec6480f97ec8ec20", "tool": "Twitter", "notebook": "Get posts stats", "action": "", "tags": ["#twitter", "#post", "#comments", "#naas_drivers", "#snippet", "#content"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "description": "This notebook provides an analysis of Twitter posts, including statistics on user engagement and post performance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_posts_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_posts_stats.ipynb", "imports": ["naas_drivers.linkedin, hubspot", "pandas", "numpy", "naas", "datetime.datetime, timedelta", "requests", "json", "tweepy"], "updated_at": "", "image_url": ""}, {"objectID": "d50dc5991bf4fe05f69298b0b37857587e63f47d21cab0b07fbf0c4f6d4bf0b7", "tool": "Twitter", "notebook": "Get tweets from search", "action": "", "tags": ["#twitter", "#ifttt", "#naas_drivers", "#snippet", "#content", "#dataframe"], "author": "Dineshkumar Sundaram", "author_url": "https://github.com/dineshh912", "description": "This notebook allows users to search and retrieve tweets from Twitter.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_tweets_from_search.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_tweets_from_search.ipynb", "imports": ["tweepy", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "4414785952831aae6f4b0f2ac5664a5fe233cf83950b1b06ed30e869c59efbfb", "tool": "Twitter", "notebook": "Get tweets stats from profile", "action": "", "tags": ["#twitter", "#tweets", "#scrap", "#snippet", "#content", "#dataframe"], "author": "Tannia Dubon", "author_url": "https://www.linkedin.com/in/tanniadubon/", "description": "This notebook allows users to retrieve and analyze statistics from a Twitter profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb", "imports": ["os", "re", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "ebea8c3910c8f62394c5ff6901940b5e54a520d9531e84a90d22b61c23a8be00", "tool": "Twitter", "notebook": "Get user data", "action": "", "tags": ["#twitter", "#ifttt", "#naas_drivers", "#snippet", "#content", "#dataframe"], "author": "Dineshkumar Sundaram", "author_url": "https://github.com/dineshh912", "description": "This notebook provides a way to access and analyze data from Twitter users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_user_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_user_data.ipynb", "imports": ["tweepy", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "dfd78b97b964be28292a8cf054deb633939e1af86deb1831414ef29b59722f8f", "tool": "Twitter", "notebook": "Post text and image", "action": "", "tags": ["#twitter", "#ifttt", "#naas_drivers", "#snippet", "#content"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to post text and images to their Twitter account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Post_text_and_image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Post_text_and_image.ipynb", "imports": ["naas", "naas_drivers"], "updated_at": "", "image_url": ""}, {"objectID": "d3bc43603e97ccc16cae1bc8045699ce7340ce42c481cd1502c91450da209673", "tool": "Twitter", "notebook": "Remove member from list", "action": "", "tags": ["#twitter", "#tweepy", "#pandas", "#twitterautomation", "#twitterlistmembers", "#snippet"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153", "description": "This notebook removes a single member from member list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Remove_member_from_list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Remove_member_from_list.ipynb", "imports": ["tweepy", "pandas", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "f613ea52f869a50913e79cc1bf1af68d3f31d6ca2f3cd5af1c1d77cdaa48ba50", "tool": "Twitter", "notebook": "Schedule posts", "action": "", "tags": ["#twitter", "#automation", "#ifttt", "#naas_drivers", "#gsheet", "#content"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows you to plan and schedule posts to your Twitter account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Schedule_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Schedule_posts.ipynb", "imports": ["datetime.datetime", "naas_drivers", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "49bb50d18a5fbfeb26b133b99b0f52e247e3ff104935fe78c1b7aad18334c7ff", "tool": "Twitter", "notebook": "Send posts stats to Notion", "action": "", "tags": ["#twitter", "#post", "#comments", "#naas_drivers", "#snippet", "#content", "#notion"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maixmejublou", "description": "This notebook allows you to track and analyze your Twitter posts and send the stats to Notion for further analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb", "imports": ["naas", "naas_drivers.notion", "re", "regex", "numpy.inf", "emoji", "emoji", "tweepy", "pandas", "json", "typing.List", "datetime", "pydash"], "updated_at": "", "image_url": ""}, {"objectID": "a02d4dd206c67190a9b400df37c1a99e3f8213b2108561f054f3d2707589f920", "tool": "Typeform", "notebook": "Log New Entries In Notion Databases", "action": "", "tags": ["#typeform", "#notion", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://billowy-lemming-95e.notion.site/f8e44ff261564c76b3bb80e6edb171a9?v=1d2a506563fe4082b71e78695185962e, which has all the questions asked in the typeform as column names and their responses as entries.\n\nThis output database consists of only 5 responses collected over the sample typeform.", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb", "imports": ["naas_drivers.notion", "typeform.Typeform", "naas, pandas", "requests", "datetime.datetime", "pydash"], "updated_at": "", "image_url": ""}, {"objectID": "34d7d038a426cecb7dc11a0dbedab7b790e8494adc94264826f3259f8979e919", "tool": "US Bureau of Labor Statistics", "notebook": "Follow CPI", "action": "", "tags": ["#inflation", "#us", "#BLS", "#naas", "#scheduler", "#asset", "#snippet", "#automation", "#ai", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/j%C3%A9r%C3%A9my-ravenel-8a396910/", "description": "This notebook provides an analysis of the US Bureau of Labor Statistics Consumer Price Index (CPI) over time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/US%20Bureau%20of%20Labor%20Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/US%20Bureau%20of%20Labor%20Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb", "imports": ["pandas", "cpi", "seaborn", "matplotlib.pyplot", "naas", "naas_drivers.plotly"], "updated_at": "", "image_url": ""}, {"objectID": "a83d4ed0c1d03a2da02745a16b4d98f9d5cc99d5c0130126ecd8d4f24961496f", "tool": "Vizzu", "notebook": "Create Animated Bar Chart", "action": "", "tags": ["#vizzu", "#animation", "#bar-chart", "#data-visualization", "#data-science", "#python"], "author": "Alexandre Petit", "author_url": "https://www.linkedin.com/in/alexandre-petit-24a87a219/", "description": "This notebook would allow you to create an animated bar chart. It will show the oil production evolution by country year after year.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget"], "updated_at": "", "image_url": ""}, {"objectID": "6a458ee798291f3b3f7887e81b2068fe7be5b41fb8db37d7dcffcef94f1bb500", "tool": "Vizzu", "notebook": "Create Animated Pie Chart", "action": "", "tags": ["#vizzu", "#animation", "#piechart", "#data", "#visualization", "#python"], "author": "Alexandre Petit", "author_url": "https://www.linkedin.com/in/alexandre-petit-24a87a219/", "description": "This notebook will show how to create an animated pie chart with Vizzu. An animated pie chart can be useful for visualizing changes or transitions in categorical data over time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget"], "updated_at": "", "image_url": ""}, {"objectID": "830f9c8e609c3df8a57c70b327d9eb459a1082c8a588947645d08c7b6b1b6868", "tool": "Vizzu", "notebook": "Create Column Chart", "action": "", "tags": ["#vizzu", "#analytics", "#dataviz", "#chart", "#graph", "#columnchart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook template on Vizzu is designed to help users create visually appealing column charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Column_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Column_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "updated_at": "", "image_url": ""}, {"objectID": "34436bb48b9455e15c60d687a2bb79c6e277c4a938966a5d87c5be2467bb22b2", "tool": "Vizzu", "notebook": "Create Grouped Column Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#groupedbarchart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook template on Vizzu is designed to help users create visually appealing grouped column charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "updated_at": "", "image_url": ""}, {"objectID": "9f4adb5f22c3959ac5b2c8004c963c98ea745b2d837e59960fc685f3844ca005", "tool": "Vizzu", "notebook": "Create Line Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#waterfallChart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook template on Vizzu is designed to help users create visually appealing line charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Line_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Line_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "updated_at": "", "image_url": ""}, {"objectID": "cc379f1a45e8d669d37d8156179c77eb989a3aad869dae103093651aedb99c62", "tool": "Vizzu", "notebook": "Create Stacked Column Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#stackedbarchart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook template on Vizzu is designed to help users create visually appealing stacked column charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "updated_at": "", "image_url": ""}, {"objectID": "c7522a696b863bf686badace2757c296a18d213491ddc905ae5edd1c2c547da6", "tool": "Vizzu", "notebook": "Create Waterfall Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#waterfallChart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook template on Vizzu is designed to help users create visually appealing waterfall charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "updated_at": "", "image_url": ""}, {"objectID": "78e0951d9b24d4a7bccd167a4af767b31a9916c4adbbdba076453909d87a7484", "tool": "WAQI", "notebook": "Display AQI on worldmap", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#stations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook displays AQI on worldmap.
\n\nAir Quality Index Scale:\n- 0 - 50: Good - Air quality is considered satisfactory, and air pollution poses little or no risk\n- 51 - 100: Moderate - Air quality is acceptable; however, for some pollutants there may be a moderate health concern for a very small number of people who are unusually sensitive to air pollution.\n- 101-150: Unhealthy for Sensitive Groups - Members of sensitive groups may experience health effects. The general public is not likely to be affected.\n- 151-200: Unhealthy - Everyone may begin to experience health effects; members of sensitive groups may experience more serious health effects.\n- 201-300: Very Unhealthy - Health warnings of emergency conditions. The entire population is more likely to be affected.\n- 300+: Hazardous - Health alert: everyone may experience more serious health effects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Display_AQI_on_worldmap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Display_AQI_on_worldmap.ipynb", "imports": ["requests", "naas", "pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "1b1d23da1ea44c9fb55dfe63eddcbee38236d37467a51606381cfd20353906f4", "tool": "WAQI", "notebook": "Get daily air quality data by coordinates", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to use the WAQI API to get daily air quality data for a city.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb", "imports": ["requests", "naas", "pydash", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "71f15185e22b83a858312830275117c8f7e91e307ceb5b7d28a70d0629d73c63", "tool": "WAQI", "notebook": "Get daily air quality data for a city", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#python"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "description": "This notebook will demonstrate how to use the WAQI API to get daily air quality data for a city.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb", "imports": ["requests", "naas", "pydash", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "17d2397824593cc21b5d523eadcb2da7822e926c5cc0a4109deae7542ff97df7", "tool": "WAQI", "notebook": "Get stations by coordinates", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#stations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to get stations within a given lat/lng bounds.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Get_stations_by_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Get_stations_by_coordinates.ipynb", "imports": ["requests", "naas", "pandas", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "3d0747d79e0168df75adfc3ed3b500e5308bda1d114f932c5972004833cef961", "tool": "WAQI", "notebook": "Search station by name", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#python", "#stations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to search stations by name using AQI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Search_station_by_name.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Search_station_by_name.ipynb", "imports": ["requests", "naas", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "7c5471bb20ca17ba8b8ca70d01df4a2b65aa88a1e0c7810949b9ae13d5735662", "tool": "WSR", "notebook": "WHI Create indicator", "action": "", "tags": ["#wsr", "#whi", "#indicators", "#opendata", "#worldsituationroom", "#analytics", "#dataframe", "#image"], "author": "Peter Turner", "author_url": "https://www.linkedin.com/in/peter-turner-0839aa116/", "description": "This notebook creates an indicator to measure the performance of the WSR-WHI portfolio.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WSR/WHI_Create_indicator.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WSR/WHI_Create_indicator.ipynb", "imports": ["pandas", "PIL.Image, ImageDraw, ImageFont", "datetime.date"], "updated_at": "", "image_url": ""}, {"objectID": "cc4d4bf571af50f16896b07354de0083ff3fb16b3b12963460441fda9ea72ffe", "tool": "WSR", "notebook": "Get daily Covid19 active cases trend JHU", "action": "", "tags": ["#wsr", "#covid", "#active-cases", "#plotly", "#opendata", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a daily trend of Covid19 active cases from the Johns Hopkins University (JHU) dataset.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb", "imports": ["pandas", "datetime.datetime", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "aab90eca5a5dad874fdf39c39fe60d29d579c385566f7156bea44d68c7d6f84b", "tool": "WSR", "notebook": "Get daily Covid19 active cases worldmap JHU", "action": "", "tags": ["#wsr", "#covid", "#active-cases", "#analytics", "#plotly", "#automation", "#naas", "#opendata", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a daily world map of active Covid-19 cases based on data from the Johns Hopkins University.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb", "imports": ["pandas", "datetime.datetime", "dataprep.clean.clean_country", "dataprep.clean.clean_country", "plotly.graph_objects", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "20d2d1915c03323426f0cc05b016a752a34555d15cd4f08ab70992b5c1b93ec4", "tool": "WhatsApp", "notebook": "Create heatmap of activities", "action": "", "tags": ["#whatsapp", "#naas_drivers", "#naas", "#visualisation", "#chatminers", "#heatmap"], "author": "Hamid Mukhtar", "author_url": "https://www.linkedin.com/in/mukhtar-hamid/", "description": "This notebook creates a heatmap of your chat activities.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb", "imports": ["chatminer", "chatminer.chatparsers.WhatsAppParser", "chatminer.visualizations", "matplotlib.pyplot"], "updated_at": "", "image_url": ""}, {"objectID": "ec40932392f591f65891e1b562c477459f79dd9c603a6fec6aeb8a299504ba47", "tool": "WhatsApp", "notebook": "Transform chat txt to dataframe", "action": "", "tags": ["#python", "#pandas", "#regex", "#whatsapp", "#chats"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "description": "This notebook transforms your WhatsApp chat export from txt to a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb", "imports": ["re", "pandas"], "updated_at": "", "image_url": ""}, {"objectID": "cbe5b94b80eae61d57207cec803c67f81a0575afcaed7275c80fc9d075f96727", "tool": "Wikipedia", "notebook": "List largest cities in the world", "action": "", "tags": ["#wikipedia", "#list", "#cities", "#largest", "#world", "#data"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "description": "This notebook will show how to extract the list of the largest cities in the world using pandas.read_html() on Wikipedia.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb", "imports": ["pandas"], "updated_at": "", "image_url": ""}, {"objectID": "4db4cd15f329e1e7b0c097969fed6832b0cb73eb417217b92a97760ed9346872", "tool": "WindsorAI", "notebook": "Create Dash app to query AP", "action": "", "tags": ["#tool", "#naas_drivers", "#naas", "#dash", "#marketing", "#automation", "#ai", "#analytics"], "author": "Elia Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "description": "This notebook enable anyone with a [Windsor.ai](https://windsor.ai/) account to visualy query the API with a Dash app.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb", "imports": ["json", "os", "requests", "pandas", "plotly.express", "dash.Dash, html, dcc, Input, Output, State, callback", "dash.dash_table.DataTable", "dash.exceptions.PreventUpdate", "jupyter_dash.JupyterDash", "dash_bootstrap_components", "dash_bootstrap_templates.load_figure_template"], "updated_at": "", "image_url": ""}, {"objectID": "193771e0df5a14495539f0f8a08b45fd29dedf23a589f38b21a52cda9ef2c528", "tool": "WorldBank", "notebook": "GDP contributors", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an analysis of the countries and sectors that contribute the most to the World Bank's Gross Domestic Product (GDP).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_GDP_contributors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_GDP_contributors.ipynb", "imports": ["pandas", "pandas_datareader.wb", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "24fff5750f4dca229fa7019f91ec0b2298e646b23ee6db1ee2cbafc7ee510970", "tool": "WorldBank", "notebook": "GDP per capita and growth", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an analysis of GDP per capita and growth data from the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb", "imports": ["pandas", "numpy", "plotly.graph_objects", "pandas_datareader.wb", "naas_drivers.plotly"], "updated_at": "", "image_url": ""}, {"objectID": "56e6d83b1d5575e03cc57cf51cadc47b507a8be1e7159034e124b79ed8d3484d", "tool": "WorldBank", "notebook": "GDP per country and evolution", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "Objective : allows to visualize the distribution of GDP per capita and the GDP growth in the world. Click on the country on the map or select it to see the details info\n\nData :\nGDP PER CAPITA (CURRENT US$)\nGDP GROWTH (ANNUAL %)\n\nby countries, agregated by region\n\nSources:\n\nWorld Bank national accounts data,\nOECD National Accounts data files.\n\n\nProduction : Team Denver 2020/04/20 (MyDigitalSchool)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb", "imports": ["pandas", "numpy", "plotly.graph_objects", "pandas_datareader.wb"], "updated_at": "", "image_url": ""}, {"objectID": "5bcd4bf5d4a562d15a90cc3079592749caa8cee07e3fc286953f7852b80f2daf", "tool": "WorldBank", "notebook": "Gini index", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an analysis of the Gini index, a measure of income inequality, from the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_Gini_index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_Gini_index.ipynb", "imports": ["pandas", "pandas_datareader.wb", "plotly.graph_objects", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "9eff7cf860c115ac4cd5b982a41c4d7b8702252d797d1a3b2f40c5a45d1f01ab", "tool": "WorldBank", "notebook": "Most populated countries", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly", "#matplotlib"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "**Notebook d'exemple pour classer les pays les plus peupl\u00e9s**", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_Most_populated_countries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_Most_populated_countries.ipynb", "imports": ["pandas", "matplotlib.pyplot", "requests", "io", "numpy", "plotly.graph_objects", "plotly.express", "pydrive.auth.GoogleAuth", "pydrive.drive.GoogleDrive", "google.colab.auth", "oauth2client.client.GoogleCredentials", "pandas.DataFrame", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "8b8c44156453589069394ba1341397036c04752815f24e4b25755a89994eefd5", "tool": "WorldBank", "notebook": "Richest countries top10", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides a comparison of the top 10 wealthiest countries in the world according to the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_Richest_countries_top10.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_Richest_countries_top10.ipynb", "imports": ["pandas", "pandas_datareader.wb", "plotly.graph_objects"], "updated_at": "", "image_url": ""}, {"objectID": "a21ffefc3ea5fbec9b0555ed60b73a5fc6e516ff98c5bb53dcf085114f512c6b", "tool": "WorldBank", "notebook": "World employment by sector", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "**Objective**\n\nThis graph compares the world distribution of employment by sector with the country distribution. Select the country to visualize which sector is dominant.\n\nData\nby countries, by region\n\nSource\nInternational Labour Organization, ILOSTAT database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_World_employment_by_sector.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_World_employment_by_sector.ipynb", "imports": ["math", "pandas", "datetime.datetime", "plotly.offline.iplot, plot, download_plotlyjs, init_notebook_mode", "plotly.graph_objects", "plotly.subplots.make_subplots"], "updated_at": "", "image_url": ""}, {"objectID": "115506753040f989d986e2a3e2f5e36b8bbe12f26be33950b4f3fd46d6334ab7", "tool": "WorldBank", "notebook": "World population and density", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an analysis of the world population and population density data from the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_World_population_and_density.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_World_population_and_density.ipynb", "imports": ["pandas", "numpy", "plotly.express"], "updated_at": "", "image_url": ""}, {"objectID": "0483468fa84c29572e8b9a896e59fad9278a3d1b600646b604c19328fde51ea1", "tool": "Worldometer", "notebook": "World population evolution and projections", "action": "", "tags": ["#worldometer", "#opendata", "#population", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook provides an overview of the current and projected population of the world, as tracked by Worldometer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb", "imports": ["pandas", "plotly.express", "bs4.BeautifulSoup", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "d53fcc695712505d6f768a768aaafc0bd1e79a5046278e1248620ddf40433a96", "tool": "XGBoost", "notebook": "Binary classification example with hyper-parameters optimization", "action": "", "tags": ["#xgboost", "#snippet", "#classification", "#tabular", "#cross-validation", "#optimization", "#modeling"], "author": "Oussama El Bahaoui", "author_url": "https://www.linkedin.com/in/oelbahaoui/", "description": "This notebook provides an example of using XGBoost to perform binary classification with hyper-parameter optimization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb", "imports": ["pandas", "sklearn.datasets.load_breast_cancer", "sklearn.model_selection.train_test_split", "sklearn.model_selection.GridSearchCV", "sklearn.metrics.accuracy_score", "xgboost.XGBClassifier", "xgboost.Booster, DMatrix"], "updated_at": "", "image_url": ""}, {"objectID": "495b6a709d9e2db6eca221adee7ec474d35a3b288156890ae1de6f6ee4a07f92", "tool": "XML", "notebook": "Transform sitemap to dataframe", "action": "", "tags": ["#xml", "#file", "#tool", "#operations", "#automation", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook demonstrates how to convert an XML sitemap into a dataframe for further analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/XML/XML_Transform_sitemap_to_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/XML/XML_Transform_sitemap_to_dataframe.ipynb", "imports": ["naas", "json", "xmltodict", "xmltodict", "pandas", "requests"], "updated_at": "", "image_url": ""}, {"objectID": "a898dc1a3589c789666fbcc6e4c8c13fbabeba4972e66345fa8ce99f66167ca4", "tool": "YahooFinance", "notebook": "Candlestick chart", "action": "", "tags": ["#yahoofinance", "#trading", "#yfin", "#investors", "#snippet", "#plotly"], "author": "Carlo Occhiena", "author_url": "https://www.linkedin.com/in/carloocchiena/", "description": "This notebook provides a visual representation of stock market data using a candlestick chart from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Candlestick_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Candlestick_chart.ipynb", "imports": ["datetime", "pandas_datareader", "mplfinance", "mplfinance", "yfinance", "yfinance"], "updated_at": "", "image_url": ""}, {"objectID": "dbcda358b6ff27edb6f4b4b3a38e00714efe3a2137bf3e9210e0d24d0b8629d5", "tool": "YahooFinance", "notebook": "Cryptocurrencies heatmap correlation graph", "action": "", "tags": ["#yahoofinance", "#cryptocurrency", "#eth", "#btc", "#heatmap", "#finance", "#trading", "#investors", "#snippet", "#matplotlib"], "author": "Carlo Occhiena", "author_url": "https://www.linkedin.com/in/carloocchiena/", "description": "This notebook provides a graphical representation of the correlation between different cryptocurrencies using a heatmap from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb", "imports": ["datetime", "matplotlib.pyplot", "seaborn", "seaborn", "yfinance", "yfinance"], "updated_at": "", "image_url": ""}, {"objectID": "7c08faa1a4fa6c75084204d90c6879159bb412b0ce01e9b97d266d2ecacbac6a", "tool": "YahooFinance", "notebook": "Display chart from ticker", "action": "", "tags": ["#yahoofinance", "#trading", "#plotly", "#naas_drivers", "#investors", "#snippet", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a graphical representation of stock market data from a given ticker symbol using the YahooFinance API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb", "imports": ["naas_drivers.yahoofinance, plotly"], "updated_at": "", "image_url": ""}, {"objectID": "1f6fb2f8e71d845ac2e577bfd652de2c88017889251c387d91c687840505a839", "tool": "YahooFinance", "notebook": "Find the stock with closest performance using KNN", "action": "", "tags": ["#tool", "#naas_drivers", "#naas", "#scheduler", "#asset", "#snippet", "#automation", "#ai", "#analytics", "#yahoo", "#clustering", "#stocks"], "author": "Abhinav Lakhani", "author_url": "https://www.linkedin.com/in/abhinav-lakhani/", "description": "This notebook uses KNN to find the stock with the most similar performance to a given stock from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb", "imports": ["naas_drivers.yahoofinance", "naas", "pylab.plot, show", "numpy.vstack, array", "numpy.random.rand", "numpy", "scipy.cluster.vq.kmeans, vq", "pandas", "math.sqrt", "sklearn.cluster.KMeans", "matplotlib.pyplot"], "updated_at": "", "image_url": ""}, {"objectID": "e4faa959f82ec8398c2290f27c0a1297a4d02d32981e982ced4d1aa2fa89efc7", "tool": "YahooFinance", "notebook": "Get Brent Crude Oil trend and predictions", "action": "", "tags": ["#commodities", "#energy", "#petrol", "#oil", "#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#naas_drivers", "#notification", "#naas", "#investors", "#automation", "#analytics", "#ai", "#html", "#image"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/in/ayoub-berdeddouch/", "description": "This notebook provides an analysis of the current trend and predictions for Brent Crude Oil prices using data from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly", "plotly.graph_objects", "markdown2", "datetime.datetime", "IPython.core.display.display, HTML"], "updated_at": "", "image_url": ""}, {"objectID": "9452ee3b76b3da57b58787412419b2f1bb939f7830d1114e8e84a9ea739da137", "tool": "YahooFinance", "notebook": "Get Stock Update", "action": "", "tags": ["#yahoofinance", "#usdinr", "#plotly", "#investors", "#analytics", "#automation"], "author": "Megha Gupta", "author_url": "https://github.com/megha2907", "description": "This notebook provides a convenient way to access up-to-date stock information from Yahoo Finance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_Stock_Update.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_Stock_Update.ipynb", "imports": ["naas", "naas_drivers.yahoofinance, plotly", "markdown2", "IPython.display.Markdown", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "5296f754c8c0b510e03f2bff45b3f988f676c51e6e82fe4b042cb712b99ae73c", "tool": "YahooFinance", "notebook": "Get USDEUR data and chart", "action": "", "tags": ["#yahoofinance", "#trading", "#plotly", "#naas_drivers", "#investors", "#analytics"], "author": "Carlo Occhiena", "author_url": "https://www.linkedin.com/in/carloocchiena/", "description": "This notebook provides a way to access and visualize the current exchange rate between the US Dollar and the Euro.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb", "imports": ["naas_drivers.yahoofinance, plotly"], "updated_at": "", "image_url": ""}, {"objectID": "c56ffadc687c98b7845b537fb4fffb768d7e122a3fee299688159595acda7bf3", "tool": "YahooFinance", "notebook": "Get data from ticker", "action": "", "tags": ["#yahoofinance", "#trading", "#naas_drivers", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook provides a way to access financial data from a given ticker symbol using the YahooFinance API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb", "imports": ["naas_drivers.yahoofinance"], "updated_at": "", "image_url": ""}, {"objectID": "705946d5a30b03afbb6b0aa8cafddce513528727663b25c55d30c2870407c02c", "tool": "YahooFinance", "notebook": "Send daily prediction to Email", "action": "", "tags": ["#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#slack", "#naas_drivers", "#notification", "#naas", "#investors", "#automation", "#analytics", "#email", "#html", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook sends daily predictions from YahooFinance to an email address.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly", "markdown2", "datetime.datetime", "IPython.core.display.display, HTML"], "updated_at": "", "image_url": ""}, {"objectID": "ec092922ecd04f252b65058b599ac56f50a0cc7abccc6cb2b8942b9a3fba465b", "tool": "YahooFinance", "notebook": "Send daily prediction to Notion", "action": "", "tags": ["#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#slack", "#naas_drivers", "#scheduler", "#notification", "#asset", "#webhook", "#dependency", "#naas", "#investors", "#automation", "#analytics", "#html", "#image", "#notion"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook sends daily stock market predictions from YahooFinance to Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly, notion", "datetime.datetime", "naas_drivers.tools.notion.Link, BlockEmbed", "pytz"], "updated_at": "", "image_url": ""}, {"objectID": "e56f3194ca88ec903b95cb38754d2c16cce3da81e9a7583bd206ff177083020c", "tool": "YahooFinance", "notebook": "Send daily prediction to Slack", "action": "", "tags": ["#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#slack", "#naas_drivers", "#scheduler", "#naas", "#investors", "#automation", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook sends daily stock market predictions from YahooFinance to Slack.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly, slack", "markdown2", "datetime.datetime", "naas"], "updated_at": "", "image_url": ""}, {"objectID": "2ded78b09046383b0f26f14bae6ea2b48834e06dc5f192d334ad9a604a24ac2f", "tool": "YouTube", "notebook": "Download video", "action": "", "tags": ["#youtube", "#download", "#video", "#content", "#snippet", "#naas"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows users to download videos from YouTube.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Download_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Download_video.ipynb", "imports": ["pytube.YouTube", "pytube.YouTube"], "updated_at": "", "image_url": ""}, {"objectID": "da5c2903e57893dad62f8502805f51e26481cd2488d6c8dbd122e2db4b23f38e", "tool": "YouTube", "notebook": "Extract and summarize transcript", "action": "", "tags": ["#youtube", "#transcript", "#video", "#summarize", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a method to extract and summarize the transcript of a YouTube video.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Extract_and_summarize_transcript.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Extract_and_summarize_transcript.ipynb", "imports": ["youtube_transcript_api.YouTubeTranscriptApi", "naas_drivers.huggingface"], "updated_at": "", "image_url": ""}, {"objectID": "dee84b001ccaccc3f883887549c5cd1c875c53528fac1004ffc8fbdcf0fb6c03", "tool": "YouTube", "notebook": "Extract transcript from video", "action": "", "tags": ["#youtube", "#transcript", "#video", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a guide to extracting transcripts from YouTube videos.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Extract_transcript_from_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Extract_transcript_from_video.ipynb", "imports": ["pandas", "naas_drivers.youtube"], "updated_at": "", "image_url": ""}, {"objectID": "429ba3a376300f201bef648d8098ded0e3912f0d2c893732c709dea771746cca", "tool": "YouTube", "notebook": "Get statistics from channel", "action": "", "tags": ["#youtube", "#channel", "#statistics", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to access and analyze data from a YouTube channel to gain insights into its performance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Get_statistics_from_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Get_statistics_from_channel.ipynb", "imports": ["naas", "naas_drivers.youtube"], "updated_at": "", "image_url": ""}, {"objectID": "0aa4588cbaaf7815d2de3c8fcec9b1bb0641760a255998dc86a3c5e8e4c9739f", "tool": "YouTube", "notebook": "Get statistics from video", "action": "", "tags": ["#youtube", "#video", "#statistics", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a way to get detailed statistics from YouTube videos.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Get_statistics_from_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Get_statistics_from_video.ipynb", "imports": ["naas", "naas_drivers.youtube"], "updated_at": "", "image_url": ""}, {"objectID": "8776b7a1311600362f191c19e9610009af2567a3a84141c76365b95eadef593d", "tool": "YouTube", "notebook": "Get uploads from channel", "action": "", "tags": ["#youtube", "#channel", "#videos", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook allows you to retrieve all the videos uploaded to a specific YouTube channel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Get_uploads_from_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Get_uploads_from_channel.ipynb", "imports": ["naas", "naas_drivers.youtube"], "updated_at": "", "image_url": ""}, {"objectID": "6d4cc03eb6e8b18900cb63af0ab5a97cd17be85547cff41eb2a6e32d95a78b8f", "tool": "YouTube", "notebook": "Send track to Spotify", "action": "", "tags": ["#youtube", "#spotify", "#snippet"], "author": "Josef", "author_url": "https://www.linkedin.com/in/joseftrchalik/", "description": "This notebook allows users to easily send tracks from YouTube to their Spotify account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Send_track_to_Spotify.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Send_track_to_Spotify.ipynb", "imports": ["spotipy", "spotipy", "spotipy.util", "spotipy.oauth2.SpotifyClientCredentials", "spotipy.SpotifyOAuth", "youtube_dl", "youtube_dl", "google_auth_oauthlib.flow", "google_auth_oauthlib.flow", "googleapiclient.discovery", "googleapiclient.errors", "googleapiclient.discovery", "googleapiclient.errors", "requests, json, os, re, time", "urllib.parse.parse_qs, urlparse", "subprocess.Popen, PIPE", "signal.SIGTERM, SIGKILL", "ant information"], "updated_at": "", "image_url": ""}, {"objectID": "fd09a21e12b5b8e8d4792169756d6cedf4d8dcc08c7c317062acdadd85f545a8", "tool": "YouTube", "notebook": "Send video stats to Notion", "action": "", "tags": ["#youtube", "#video", "#statistics", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows you to easily track and analyze your YouTube video performance by automatically sending video stats to Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Send_video_stats_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Send_video_stats_to_Notion.ipynb", "imports": ["naas", "naas_drivers.youtube, notion", "pandas", "pydash", "re", "regex", "emoji", "emoji"], "updated_at": "", "image_url": ""}, {"objectID": "b451c356f8536123376b8e3ed3e9841ff3ad49a0ad1eb9577952270b63e6e15b", "tool": "YouTube", "notebook": "Summarize video", "action": "", "tags": ["#youtube", "#transcript", "#video", "#npl", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "description": "This notebook provides a summary of a YouTube video, allowing users to quickly understand the content of the video.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Summarize_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Summarize_video.ipynb", "imports": ["naas_drivers.youtube"], "updated_at": "", "image_url": ""}, {"objectID": "e62887290cc7a4c0b82ec67c82df44f9f6236be9992da26426b64649630170c0", "tool": "ZIP", "notebook": "Extract files", "action": "", "tags": ["#zip", "#extract", "#file", "#operations", "#snippet", "#naas"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "description": "This notebook allows users to extract files from a ZIP archive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/ZIP/ZIP_Extract_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/ZIP/ZIP_Extract_files.ipynb", "imports": ["zipfile", "os", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "86607d1e05a7be9ceac61f0f3b044a650e57614b93b448afc38002e40ae92ade", "tool": "Zapier", "notebook": "Trigger workflow", "action": "", "tags": ["#zapier", "#nocode", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "description": "This notebook allows you to create automated workflows that are triggered by specific events.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Zapier/Zapier_Trigger_workflow.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Zapier/Zapier_Trigger_workflow.ipynb", "imports": ["naas_drivers"], "updated_at": "", "image_url": ""}, {"objectID": "1a4862f36ffb7a7c2766294894d690900fe245a354ba9b805fde9d40460f92c9", "tool": "ZeroBounce", "notebook": "Validate Single Email", "action": "", "tags": ["#zerobounce", "#email", "#validation", "#java", "#sdk", "#setup"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "description": "This notebook will demonstrate how to validate a single email address using ZeroBounce API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "updated_at": "", "image_url": ""}, {"objectID": "9393d951ab135f69cd1aadae8c73b1974891c6586136f3e62aa631501ed53fab", "tool": "gTTS", "notebook": "Save Text to Speech to MP3", "action": "", "tags": ["#gTTS", "#texttospeech", "#mp3", "#python", "#library", "#audio"], "author": "Sriniketh Jayasendil", "author_url": "http://linkedin.com/in/sriniketh-jayasendil/", "description": "This notebook will demonstrate how to use the gTTS library to save text to speech as an MP3 file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb", "imports": ["gtts.gTTS", "gtts.gTTS"], "updated_at": "", "image_url": ""}, {"objectID": "b296fdda5aa3884bc9a78e50364dd2532992013a7fb54012c2d9751aa4a5b15f", "tool": "spaCy", "notebook": "SpaCy Build a sentiment analysis model using Twitter", "action": "", "tags": ["#twitter", "#spaCy", "#data", "#nlp", "#sentiment", "#classification"], "author": "Tannia Dubon", "author_url": "https://www.linkedin.com/in/tanniadubon/", "description": "This notebook demonstrates how to use spaCy to build a sentiment analysis model using Twitter data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb", "imports": ["os", "requests", "pandas", "json", "ast", "yaml", "numpy", "datetime.datetime, date", "matplotlib.pyplot", "matplotlib", "wordcloud.WordCloud, STOPWORDS, ImageColorGenerator", "re", "seaborn", "string", "warnings", "random", "spacy", "spacy.training.Example", "spacy.pipeline.textcat.DEFAULT_SINGLE_TEXTCAT_MODEL", "spacy.matcher.PhraseMatcher", "pathlib.Path"], "updated_at": "", "image_url": ""}] \ No newline at end of file +[{"objectID": "3e342697d70a5fc4884c84d82b7b2d1efc9f8dde26b142ec2e63c2246dbfd05b", "tool": "AWS", "notebook": "Daily biling notification to slack", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#slack", "#operations", "#automation"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2021-09-14", "description": "This notebook sends a daily notification to a Slack channel with the billing information from an AWS account. It allows users to easily keep track of their AWS spending.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Daily_biling_notification_to_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Daily_biling_notification_to_slack.ipynb", "imports": ["datetime", "boto3", "naas", "dateutil.relativedelta", "pandas", "naas_drivers"], "image_url": ""}, {"objectID": "e5cc5c59cca0de48fbaf2a7d65708d416a50968635cadc60e18a669fd52c075a", "tool": "AWS", "notebook": "Get files from S3 bucket", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#operations", "#snippet", "#url"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2021-09-20", "description": "This notebook provides a step-by-step guide to retrieving files from an Amazon Web Services (AWS) S3 bucket, allowing users to easily access their data stored in the cloud.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Get_files_from_S3_bucket.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Get_files_from_S3_bucket.ipynb", "imports": ["boto3"], "image_url": ""}, {"objectID": "db1e517c78d01b715869cb9f08c6c818cd09715bf0134dd92c4440869d176e77", "tool": "AWS", "notebook": "Read dataframe from S3", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#operations", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2022-04-28", "description": "This notebook demonstrates how to read a dataframe from an Amazon Web Services (AWS) Simple Storage Service (S3) bucket.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Read_dataframe_from_S3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Read_dataframe_from_S3.ipynb", "imports": ["awswrangler", "awswrangler"], "image_url": ""}, {"objectID": "0d5fe4330975af3c53c528f914bd8d0124c25dea14afe09df1119b430a9bb2b2", "tool": "AWS", "notebook": "Send dataframe to S3", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#operations", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2022-04-28", "description": "This notebook demonstrates how to use AWS to send a dataframe to an S3 bucket.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Send_dataframe_to_S3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Send_dataframe_to_S3.ipynb", "imports": ["awswrangler", "awswrangler", "pandas", "datetime.date"], "image_url": ""}, {"objectID": "f5955b1a7c1209b77d470bfeb5eb20bcdf6ecf7fcba22a304dd0ea03164a0539", "tool": "AWS", "notebook": "Upload file to S3 bucket", "action": "", "tags": ["#aws", "#cloud", "#storage", "#S3bucket", "#snippet", "#operations", "#AWS - Upload file to S3 bucket"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2021-08-03", "description": "This notebook provides instructions on how to upload a file to an Amazon Web Services (AWS) S3 bucket, allowing for secure storage and easy access to the file. It is a simple and efficient way to store and manage data in the cloud.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AWS/AWS_Upload_file_to_S3_bucket.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AWS/AWS_Upload_file_to_S3_bucket.ipynb", "imports": ["boto3", "boto3"], "image_url": ""}, {"objectID": "5916af637e577797931145d971b180db20f2a1d595fec71b99bc547da2ee8dbd", "tool": "Abstract API", "notebook": "Check Email Validation", "action": "", "tags": ["#abstractapi", "#email", "#validation", "#api", "#check", "#tester"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-23", "description": "This notebook will demonstrate how to use Abstract API to check if an email is valid.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Abstract%20API/Abstract_API_Check_Email_Validation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Abstract%20API/Abstract_API_Check_Email_Validation.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "8d77689e05cc016ea0eed7a995b0ef55adc9998684802cc44b3cccf702baed41", "tool": "Abstract API", "notebook": "Get IP Geolocation", "action": "", "tags": ["#api", "#abstract-api", "#ip", "#geolocation", "#stream", "#multithread", "#queues", "#operations", "#dataprocessing", "#automation"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook provides a way to get the geolocation of an IP address using the AbstractAPI service.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Abstract%20API/Abstract_API_Get_IP_Geolocation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Abstract%20API/Abstract_API_Get_IP_Geolocation.ipynb", "imports": ["threading", "queue", "time", "requests", "pandas", "json", "ratelimiter.RateLimiter", "ratelimiter.RateLimiter"], "image_url": ""}, {"objectID": "1fc79d1caf15ef3a1adf0874fa85f6a8b05e172f5e45f0fc6ce7ee40e5c54cae", "tool": "Advertools", "notebook": "Analyze website content using XML sitemap", "action": "", "tags": ["#advertools", "#xml", "#sitemap", "#website", "#analyze", "#seo"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-05-23", "created_at": "2023-05-09", "description": "This notebook helps you get an overview of a website's content by analyzing and visualizing its XML sitemap. It's also an important SEO audit process that can uncover some potential issues that might affect the website.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Analyze_website_content_using_XML_sitemap.ipynb", "imports": ["advertools", "adviz", "urllib.parse.urlsplit", "IPython.display.display"], "image_url": ""}, {"objectID": "2733269de8aa4a8a013af03ae7af3ac21d9d860849af4b06adb3b31fbfc13ad2", "tool": "Advertools", "notebook": "Audit robots txt and xml sitemap issues", "action": "", "tags": ["#advertools", "#xml", "#sitemap", "#website", "#audit", "#seo", "#robots.txt", "#google"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-05-30", "created_at": "2023-05-29", "description": "This notebook helps you check if there are any conflicts between robots.txt rules and your XML sitemap.\n\n* Are you disallowing URLs that you shouldn't?\n* Test and make sure you don't publish new pages with such conflicts.\n* Do this in bulk: for all URL/rule/user-agent combinations run all tests with one command.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Audit_robots_txt_and_xml_sitemap_issues.ipynb", "imports": ["advertools"], "image_url": ""}, {"objectID": "65fcbc3f91ea08c6a2feb69f5b9f702c91e1da37e5faa0f20f1b1d19f85ade58", "tool": "Advertools", "notebook": "Check status code and Send report by email", "action": "", "tags": ["#advertools", "#website", "#analyze", "#audit", "#seo", "#status_code", "#response_headers", "#naas", "#notification", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook runs an automated status code checker with response headers using the HTTP `HEAD` method and send a report by email.\n\nNB:\n* Bulk and concurrent checking of status codes for a known list of URLs\n* Get all available response headers from all URLs\n* Set speed, number of concurent request and various other crawling options\n* Does NOT download the full HTML of a page, saving a lot of time, energy, and resources, and enabling an extreemely fast and light process", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Check_status_code_and_Send_notifications.ipynb", "imports": ["advertools", "advertools", "datetime.datetime", "naas", "naas_drivers.emailbuilder", "plotly.express", "pandas"], "image_url": ""}, {"objectID": "3c5612a68165853c27d59d0068f4ee37bc3ca2172bb0a1383abe8544664b9524", "tool": "Advertools", "notebook": "Check status code in bulk", "action": "", "tags": ["#advertools", "#adviz", "#website", "#analyze", "#audit", "#seo", "#status_code", "#response_headers"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook runs an automated status code checker with response headers using the HTTP `HEAD` method.\n\n* Bulk and concurrent checking of status codes for a known list of URLs\n* Get all available response headers from all URLs\n* Set speed, number of concurent request and various other crawling options\n* Does NOT download the full HTML of a page, saving a lot of time, energy, and resources, and enabling an extreemely fast and light process", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Check_status_code_in_bulk.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Check_status_code_in_bulk.ipynb", "imports": ["adviz", "adviz", "advertools", "advertools", "datetime.datetime", "plotly.express", "pandas", "IPython.display.display"], "image_url": ""}, {"objectID": "09c6603c1e23892e966a1e1a19a577d94d56c38695e3e2ca640728e81024f848", "tool": "Advertools", "notebook": "Check website pages status code", "action": "", "tags": ["#advertools", "#website", "#status", "#code", "#check", "#pages"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-04", "created_at": "2023-08-04", "description": "This notebook crawls your website and checks the status code of all pages. It starts from the home page and discovers URLs by following links within the website. It is a useful tool for quickly checking the status of your website and generating a report to take necessary actions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Check_website_pages_status_code.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Check_website_pages_status_code.ipynb", "imports": ["advertools", "advertools", "datetime.datetime", "naas", "naas_drivers.emailbuilder, naasauth", "plotly.express", "pandas", "adviz", "adviz", "os"], "image_url": ""}, {"objectID": "1b68edcb30da94c5c5b1f9eece671a36a1cc832aa557bd6302f2b647aac96ba7", "tool": "Advertools", "notebook": "Crawling a website", "action": "", "tags": ["#advertools", "#adviz", "#crawling", "#website", "#analyze", "#seo", "#URL", "#audit", "#scraping", "#scrapy"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-07-20", "created_at": "2023-07-20", "description": "This notebook demonstrates how to crawl a website, starting with one of its pages, and discover and follow all links as well.\n\n* Convert a website to a CSV file\n* Follow links with certain conditions:\n * Whether or not a link matches a certain regex\n * Whether or not a link contains a certain query parameter(s)\n* Extract special elements from pages using CSS/XPath selectors\n* Manage your crawling process with advanced settings (number of concurrent requests, when to stop crawling, proxies, and much more)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Crawl_a_website.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Crawl_a_website.ipynb", "imports": ["advertools", "advertools", "pandas"], "image_url": ""}, {"objectID": "5fc4529ca8156fe747658753b23728aa1f18141cf3f39703276b7fa6f028e7a6", "tool": "Advertools", "notebook": "Visualize status codes OK and KO", "action": "", "tags": ["#advertools", "#adviz", "#status_code", "#asset", "#plotly", "#naas"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-07-20", "created_at": "2023-07-20", "description": "This notebook creates a plotly treemap to visualize status code OK and KO from list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Visualize_status_codes_OK_KO.ipynb", "imports": ["adviz", "adviz", "naas"], "image_url": ""}, {"objectID": "b81f17379adfb8f806c07e73b25c89b733a11511e8fbf04be7cd54b6faa5ceac", "tool": "Advertools", "notebook": "Visualize status codes count", "action": "", "tags": ["#advertools", "#adviz", "#status_code", "#asset", "#plotly", "#naas"], "author": "Elias Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-07-20", "created_at": "2023-07-20", "description": "This notebook creates a chat to visualize status code count.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Advertools/Advertools_Visualize_status_codes_count.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Advertools/Advertools_Visualize_status_codes_count.ipynb", "imports": ["adviz", "adviz", "naas"], "image_url": ""}, {"objectID": "3d3224a30d88e19593b49386c00bef0933deb4e3cbc16d8e9da64a102989a235", "tool": "Affinity", "notebook": "Sync with Notion database", "action": "", "tags": ["#automation", "#notification", "#Affinity", "#Notion"], "author": "Maxime Jublou", "author_url": "https://linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-05-18", "description": "This notebook allows users to easily sync their Notion database with their Affinity account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Affinity/Affinity_Sync_with_Notion_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Affinity/Affinity_Sync_with_Notion_database.ipynb", "imports": ["naas", "rich.print", "pandas", "pandas.DataFrame", "naas_drivers.notion", "notion_client.APIResponseError", "requests", "pydash", "requests.auth.HTTPBasicAuth", "string.Template"], "image_url": ""}, {"objectID": "fde19b055488d7f318ec541fd38a5195fe025974bb22c1cb2fbf869fbb2ac7c6", "tool": "Agicap", "notebook": "Export treasury plan", "action": "", "tags": ["#agicap", "#treasury", "#export", "#plan", "#finance", "#data", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-27", "created_at": "2023-04-26", "description": "This notebook will export the Excel treasury plan consolidated by month from Agicap and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Export_treasury_plan.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Export_treasury_plan.ipynb", "imports": ["requests", "naas", "pandas", "datetime.datetime", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "6e8192ab022b4bd38167bcad47bf5361f21f97d197b712c9c324fbc22e34c1a3", "tool": "Agicap", "notebook": "Export treasury plan by account", "action": "", "tags": ["#agicap", "#treasury", "#export", "#plan", "#finance", "#data", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-27", "created_at": "2023-04-27", "description": "This notebook will export the Excel treasury plan by account by month from Agicap and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Export_treasury_plan_by_account.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Export_treasury_plan_by_account.ipynb", "imports": ["requests", "naas", "pandas", "datetime.datetime", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "60ccdeaf932ef6f8fca9165c7451786434f49f667476e71971ae5eec00a549ea", "tool": "Agicap", "notebook": "Get banks accounts from company", "action": "", "tags": ["#agicap", "#bankaccount", "#company", "#finance", "#data", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-12", "created_at": "2023-07-12", "description": "This notebook will show how to get bank account from a company using Agicap API. It is usefull for organizations to quickly get the bank account of a company.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Get_banks_accounts_from_company.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Get_banks_accounts_from_company.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "71d55f60d4a6651a4020659b3bfa10cdbb7140d2eecf5287e21df984c3870670", "tool": "Agicap", "notebook": "Get inflow categories from company", "action": "", "tags": ["#agicap", "#categories", "#company", "#data", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-12", "created_at": "2023-07-12", "description": "This notebook will get inflow categories from a company in Agicap and return a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Get_inflow_categories_from_company.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Get_inflow_categories_from_company.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "00feab61f04c827086dcafd75d0532814272be3ecbef5608861024364dd1d02a", "tool": "Agicap", "notebook": "Get outflow categories from company", "action": "", "tags": ["#agicap", "#categories", "#company", "#data", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-12", "created_at": "2023-07-12", "description": "This notebook will get outflow categories from a company in Agicap and return a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_Get_outflow_categories_from_company.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_Get_outflow_categories_from_company.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "5b0eeb327eb1d95fe850ad247b10ac8fb597a92887acf64a29dc564086e889e4", "tool": "Agicap", "notebook": "List companies", "action": "", "tags": ["#agicap", "#companies", "#accountingsoftware", "#financialmanagement", "#businessmanagement", "#financetracking", "#budgetplanning", "#invoicing", "#expensetracking", "#businessinsights", "#dataanalysis"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-10", "description": "This notebook lists all the companies within Agicap with their IDs. Agicap is a powerful accounting software for managing your company's finances. It offers features such as expense tracking, budget planning, invoicing, and data analysis to help you make informed business decisions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Agicap/Agicap_List_companies.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Agicap/Agicap_List_companies.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "32269a4228bf817ab1b2d51b7a5771d41e0381627b8e07487e9c7afa0ee0bf37", "tool": "Airtable", "notebook": "Delete data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides instructions on how to delete data from an Airtable database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Delete_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Delete_data.ipynb", "imports": ["naas_drivers.airtable"], "image_url": ""}, {"objectID": "f93453cccd04f72d5ec42afc790f102a05e6695c5b7d46347e25d1ac9bd3e67c", "tool": "Airtable", "notebook": "Get data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides an introduction to Airtable, a cloud-based database platform that allows users to easily access and manage data. It provides step-by-step instructions on how to get data from Airtable into a notebook for further analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Get_data.ipynb", "imports": ["naas_drivers.airtable"], "image_url": ""}, {"objectID": "718782ca423ea8e69fc7a4d05b5a28ebecc61ce558bff968d6466fe6279c0e3a", "tool": "Airtable", "notebook": "Insert data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides a step-by-step guide on how to insert data into an Airtable database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Insert_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Insert_data.ipynb", "imports": ["naas_drivers.airtable"], "image_url": ""}, {"objectID": "8f01544918dbd4ddadf8d4079fc2e2b7eee3af9b45a3baa3af433f2404df5bb2", "tool": "Airtable", "notebook": "Search data", "action": "", "tags": ["#airtable", "#database", "#productivity", "#spreadsheet", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook allows users to search through data stored in Airtable, making it easy to find the information they need quickly and efficiently.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Airtable/Airtable_Search_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Airtable/Airtable_Search_data.ipynb", "imports": ["naas_drivers.airtable"], "image_url": ""}, {"objectID": "f529085c0f2d4f78142501e664c14ab66edf02fb933d2d7c8bd49721d43a90df", "tool": "Algolia", "notebook": "Add or Replace all attributes in existing records", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#save", "#update", "#add"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-15", "description": "This notebook shows how to add new records (objects) to an index or replace existing records with an updated set of attributes.\nThis method redefines all of a record\u2019s attributes (except its objectID). In other words, it fully replaces an existing record.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_existing_records.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "image_url": ""}, {"objectID": "5d2df023819411f69ec17f94b0bfde745eb6a1292e39f5cded170e4c053333f6", "tool": "Algolia", "notebook": "Add or Replace all attributes in a single record", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#save", "#update", "#add"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-15", "description": "This notebook shows how to add new record (object) to an index or replace existing record with an updated set of attributes.\nThis method redefines all of a record\u2019s attributes (except its objectID). In other words, it fully replaces an existing record.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Add_or_Replace_all_attributes_in_single_record.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "image_url": ""}, {"objectID": "bb72a24111a186d70f016c346ba1f037125524cba143537d2c214a354f1d3308", "tool": "Algolia", "notebook": "Delete multiples objects", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-15", "description": "This notebook shows how to delete multiples objects from an Algolia index using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Delete_multiples_objects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Delete_multiples_objects.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "image_url": ""}, {"objectID": "8d7294cbf8b3918f28680d17d1a9bb6465e72fb8129f2c7d2ff91b571a2de4d7", "tool": "Algolia", "notebook": "Delete a single object", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#object", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-15", "description": "This notebook shows how to delete a single object from an Algolia index using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Delete_single_object.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Delete_single_object.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "image_url": ""}, {"objectID": "815211fb3ee83348a3785424987de3ef51856933b6fddbd4c2beea49609ffbe2", "tool": "Algolia", "notebook": "Get all records from an index", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#records", "#browse"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-14", "description": "This notebook shows how to get all records from an Algolia index using Python. It is usefull for organizations that need to access and manipulate data stored in Algolia.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_Get_all_records_from_an_index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_Get_all_records_from_an_index.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "image_url": ""}, {"objectID": "f5ee3a4a99ee8df9d2b7751ff23b22e1813c83a7c0eb3aae1d3ea0995563ccf2", "tool": "Algolia", "notebook": "List indices", "action": "", "tags": ["#algolia", "#python", "#api", "#index", "#list"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-15", "description": "This notebook shows how to get a list of indices with their associated metadata from Algolia using Python. This method retrieves a list of all indices associated with a given Application ID.\nThe returned list includes the names of the indices as well as their associated metadata, such as the number of records, size, and last build time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Algolia/Algolia_List%20indices.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Algolia/Algolia_List%20indices.ipynb", "imports": ["algoliasearch.search_client.SearchClient", "algoliasearch.search_client.SearchClient", "naas"], "image_url": ""}, {"objectID": "d18163bf41ff8dd85cbae1e18aa4d976a3244f48089b3cd6c9058b1fd3523720", "tool": "AlphaVantage", "notebook": "Get balance sheet", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides a way to access financial data from AlphaVantage, specifically balance sheet information for a given company. It allows users to quickly and easily access up-to-date financial information for their analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_balance_sheet.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "44205360daf5879c2a0eeecd80a0dfc2f4c502dd671b5247ce5234287cddadff", "tool": "AlphaVantage", "notebook": "Get cashflow statement", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides a way to access financial data from AlphaVantage, including cashflow statements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_cashflow_statement.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "03196420b0ecd1331f5511875ff18643e432128254644221a0b139019b1c42cd", "tool": "AlphaVantage", "notebook": "Get company overview", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides an overview of the AlphaVantage API, which allows users to access real-time and historical financial data for global equities, commodities, and currencies. It provides a comprehensive set of tools to analyze and visualize financial data for a variety of purposes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_company_overview.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_company_overview.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "759fbfe0ce1a7a0c043f30bf8ba8539d3a446058a8f88dee12063444ac6ba3c4", "tool": "AlphaVantage", "notebook": "Get income statement", "action": "", "tags": ["#alphavantage", "#trading", "#market_data", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook provides a way to access income statement data from AlphaVantage, a financial data provider. It allows users to quickly and easily access financial information to make informed decisions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/AlphaVantage/AlphaVantage_Get_income_statement.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/AlphaVantage/AlphaVantage_Get_income_statement.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "e51bed9276f9ce9924e82646245d4ed0e8815cd7992187fdf8715a68a7bb8a46", "tool": "Azure Blob Storage", "notebook": "List blobs", "action": "", "tags": ["#azure", "#blob", "#storage", "#list", "#blobs"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-14", "created_at": "2023-07-14", "description": "This notebook will demonstrate how to use the List Blobs operation to return a list of the blobs under the specified container. This is usefull for organizations that need to store and access large amounts of data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Azure%20Blob%20Storage/Azure_Blob_Storage_List_blobs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Blob%20Storage/Azure_Blob_Storage_List_blobs.ipynb", "imports": ["azure.storage.blob.BlobServiceClient", "azure.storage.blob.BlobServiceClient", "naas"], "image_url": ""}, {"objectID": "5211f802b4119d49640d75844e0de08b997cd5ec85ee5d76e9af6fa027925578", "tool": "Azure Blob Storage", "notebook": "Upload files", "action": "", "tags": ["#azure", "#datalake", "#naas", "#snippet"], "author": "Alexandre Stevens", "author_url": "https://www.linkedin.com/in/
", "updated_at": "2023-04-12", "created_at": "2023-02-06", "description": "This notebook explains how to upload files to Azure Blob Storage using the Azure Python SDK.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Azure%20Blob%20Storage/Azure_Blob_Storage_Upload_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Blob%20Storage/Azure_Blob_Storage_Upload_files.ipynb", "imports": ["azure.storage.blob.BlobServiceClient", "azure.storage.blob.ContentSettings", "azure.storage.blob.BlobServiceClient", "azure.storage.blob.ContentSettings"], "image_url": ""}, {"objectID": "94f5a9a6634caea4d03c1756a001a4f834c1fd06920b6183b034b0b60c449401", "tool": "Azure Machine Learning", "notebook": "Univariate Timeseries Inference", "action": "", "tags": ["#azure", "#machinelearning", "#univariate", "#timeseries", "#inference", "#ml"], "author": "Tobias Zwingmann", "author_url": "https://www.linkedin.com/in/tobias-zwingmann/", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook provides an example of how to use Azure Machine Learning to perform univariate timeseries inference. It is useful for organizations that need to analyze and predict future trends in their data. It requires a timeseries forecasting model hosted on Microsoft Azure and deployed as a web service. (See references below).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Azure%20Machine%20Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Azure%20Machine%20Learning/Azure_Machine_Learning_Univariate_Timeseries_Inference.ipynb", "imports": ["pandas", "requests", "json", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "70cdbff79ec94526b10df7cf0dde2e985f5507c53ef94d0f3c7dd5a925a1c454", "tool": "Bazimo", "notebook": "Get export Actifs", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-02", "description": "This notebook provides an easy way to export active assets from Bazimo, allowing users to quickly and efficiently manage their assets. It is a great tool for keeping track of assets and ensuring that they are up to date.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Actifs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Actifs.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "image_url": ""}, {"objectID": "57013d1c1890e25d5d71579c29c5fd1136a0f99afd6c302de27830221b68f816", "tool": "Bazimo", "notebook": "Get export Baux", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-02", "description": "This notebook provides an easy way to export data from Baux, allowing users to quickly and efficiently access their data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Baux.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Baux.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "image_url": ""}, {"objectID": "f427f26405a8fcd2677cd6850508051cbfae87c2590c8d8f6932f742c88c0e73", "tool": "Bazimo", "notebook": "Get export Factures", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-02", "description": "This notebook allows you to easily export invoices from Bazimo, making it easy to keep track of your finances.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Factures.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Factures.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "image_url": ""}, {"objectID": "075f91fbf86042edf26814810f71ebdf1ce1f37dcd9cd8ebf960c548f0d87f64", "tool": "Bazimo", "notebook": "Get export Locataires", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-02", "description": "This notebook provides an easy way to export tenant information from Bazimo.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Locataires.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Locataires.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "image_url": ""}, {"objectID": "fec0b2c09dbb0faa29db645a2802320abbfadc22f77dea4fac1a5c75d7b6cb30", "tool": "Bazimo", "notebook": "Get export Lots", "action": "", "tags": ["#bazimo", "#pm", "#naas_drivers", "#asset", "#scheduler", "#naas", "#csv", "#operations", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-02", "description": "This notebook allows you to quickly and easily export large amounts of data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bazimo/Bazimo_Get_export_Lots.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bazimo/Bazimo_Get_export_Lots.ipynb", "imports": ["naas_drivers.bazimo", "naas"], "image_url": ""}, {"objectID": "200a5dcebfc9ff32f08e84aaba44cb6125fbc8bbde5f686f467b8626c7ef5f78", "tool": "BeautifulSoup", "notebook": "List social network links from website", "action": "", "tags": ["#beautifulsoup", "#webscraping", "#python", "#html", "#css", "#url"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-02", "created_at": "2023-05-02", "description": "This notebook will use BeautifulSoup to list all the social network links from a website. It is usefull for organizations to quickly get a list of all the social networks they are present on.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BeautifulSoup/BeautifulSoup_List_social_network_links_from_website.ipynb", "imports": ["requests", "bs4.BeautifulSoup"], "image_url": ""}, {"objectID": "12ef03c9788da13b430b0d23171c6c0949ff23c86a70281d36e19d8a6237b135", "tool": "BeautifulSoup", "notebook": "Scrape emails from URL", "action": "", "tags": ["#beautifulsoup", "#python", "#scraping", "#emails", "#url", "#webscraping", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-16", "description": "This notebook will show how to scrape emails stored in HTML webpage using BeautifulSoup.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BeautifulSoup/BeautifulSoup_Scrape_emails_from_URL.ipynb", "imports": ["re", "requests", "urllib.parse.urlsplit", "collections.deque", "bs4.BeautifulSoup", "pandas"], "image_url": ""}, {"objectID": "b8dae3c0c48ff11cf99e98ae8c12001027c397f0898d06da9154692ec1a16e62", "tool": "BigQuery", "notebook": "Create table from csv", "action": "", "tags": ["#bigquery", "#database", "#snippet", "#operations", "#dataframe"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-08-08", "description": "This notebook demonstrates how to create a BigQuery table from a CSV file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BigQuery/BigQuery_Create_table_from_csv.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BigQuery/BigQuery_Create_table_from_csv.ipynb", "imports": ["naas_drivers.bigquery"], "image_url": ""}, {"objectID": "752be3434483e20df49126952868c6537832491976d513a39ebaa74913771f35", "tool": "BigQuery", "notebook": "Read Table", "action": "", "tags": ["#bigquery", "#database", "#snippet", "#operations", "#dataframe"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-08-08", "description": "This notebook provides an example of how to read data from a BigQuery table.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/BigQuery/BigQuery_Read_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/BigQuery/BigQuery_Read_Table.ipynb", "imports": ["naas_drivers.bigquery"], "image_url": ""}, {"objectID": "9f9713992be8f9af16d3e66e5ea4486c72b84576fa7353df24f29f45ca8331aa", "tool": "Bitly", "notebook": "Create Links", "action": "", "tags": ["#bitly", "#link", "#shorten", "#url", "#create", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-16", "description": "This notebook will show how to create short links with Bitly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Create_Links.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Create_Links.ipynb", "imports": ["requests", "json"], "image_url": ""}, {"objectID": "cd555eb47a32680c309420899038ccaaf7d29a82018a807210599465b6a69fdd", "tool": "Bitly", "notebook": "Delete a Bitlink", "action": "", "tags": ["#bitly", "#api", "#delete", "#bitlink", "#hash", "#unedited"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will show how to delete an unedited hash Bitlink.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Delete_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Delete_a_Bitlink.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "3eabe9ed9dcfdcd75e1a510995d981dfc8bd4c2b98f24591b46f59ef5b7a9e18", "tool": "Bitly", "notebook": "Get Clicks for a Bitlink", "action": "", "tags": ["#bitly", "#api", "#getclicks", "#bitlink", "#python", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will show how to use the Bitly API to get the click counts for a specified link in an array based on a date.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Clicks_for_a_Bitlink.ipynb", "imports": ["requests", "naas", "json"], "image_url": ""}, {"objectID": "d4eda72f6942beabed764b0411c2d70a3d2841d82e9d26386ee0e3b185c99186", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by City", "action": "", "tags": ["#bitly", "#api", "#metrics", "#city", "#bitlink", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will return the city origins of click traffic for the specified link. This feature is only available for paid account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_City.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "59334b21ea4228991b77a580a1aaae1c1630d7f1386a8c933d06ca7ac3c459d9", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by Country", "action": "", "tags": ["#bitly", "#api", "#metrics", "#bitlink", "#country", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-23", "description": "This notebook will demonstrate how to use the Bitly API to get metrics for a Bitlink by Country.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Country.ipynb", "imports": ["requests", "naas", "pandas", "plotly.graph_objects", "dataprep.clean.clean_country", "dataprep.clean.clean_country", "json", "warnings"], "image_url": ""}, {"objectID": "495e8ac289e12e30a84012c1ce626f510ef6a88551618416ab311a12ddd18040", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by Devices", "action": "", "tags": ["#bitly", "#api", "#metrics", "#devices"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-28", "description": "This notebook will show how to use the Bitly API to get metrics for a Bitlink by devices. This endpoint is only available for paid account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Devices.ipynb", "imports": ["requests", "pprint.pprint", "naas"], "image_url": ""}, {"objectID": "27fe513fb49fdd22a120381d7c1a4f927b39395cf488ecce01bedb545a23f099", "tool": "Bitly", "notebook": "Get Metrics for a Bitlink by Referrers", "action": "", "tags": ["#bitly", "#api", "#metrics", "#bitlink", "#referrers", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will show how to use the Bitly API to get metrics for a Bitlink by Referrers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_Metrics_for_a_Bitlink_by_Referrers.ipynb", "imports": ["requests", "pprint.pprint", "naas"], "image_url": ""}, {"objectID": "b3fa30866ed0675034945aa524ab4cf0cdd9935b491ef7df58d789a7aa1717c4", "tool": "Bitly", "notebook": "Get a Clicks Summary for a Bitlink", "action": "", "tags": ["#bitly", "#api", "#clicks", "#summary", "#bitlink", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-23", "description": "This notebook will show how to get a Clicks Summary for a Bitlink using the Bitly API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Get_a_Clicks_Summary_for_a_Bitlink.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "40ce36dc1641790e5117bdab22021f520604f1c26bee66d5fe6d6fd685ed8ee3", "tool": "Bitly", "notebook": "Retrieve Bitlink", "action": "", "tags": ["#bitly", "#api", "#list", "#active", "#links", "#python", "#bitlink"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-23", "description": "This notebook will return information for a specified bitlink using the Bitly API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Retrieve_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Retrieve_Bitlink.ipynb", "imports": ["requests", "json", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "aa9e096cfaf039d08eaa4194d361639e661083ff97b300d6fd2d9d4749c60eef", "tool": "Bitly", "notebook": "Update a Bitlink", "action": "", "tags": ["#bitly", "#api", "#update", "#bitlink", "#reference", "#dev"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will show how to update fields in the specified link using Bitly API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bitly/Bitly_Update_a_Bitlink.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bitly/Bitly_Update_a_Bitlink.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "bfc8dd18a5cb62ba07ffe255ff507cbb6e7d09de0f14feab596ad7718e28b7f1", "tool": "Boursorama", "notebook": "Get CDS", "action": "", "tags": ["#boursorama", "#finance", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-09", "description": "This notebook provides a way to access and analyze CDS data from Boursorama.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Boursorama/Boursorama_Get_CDS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Boursorama/Boursorama_Get_CDS.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "916217867d00e933791e4bd89337ec26ce052f7e856663b80b8707fb16257d4e", "tool": "Boursorama", "notebook": "Get EURIBOR 3 MOIS", "action": "", "tags": ["#boursorama", "#euribor", "#pandas", "#read_html", "#finance", "#data"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook will show how to get EURIBOR 3 MOIS using pandas.read_html().", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Boursorama/Boursorama_Get_EURIBOR_3_MOIS.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "f969028b22c1a3a446445dd979298e843d9b00e67cfcdc6d9f0e0ca94ed9e8fa", "tool": "Bubble", "notebook": "Send data", "action": "", "tags": ["#bubble", "#naas_drivers", "#operations", "#snippet"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2022-03-20", "description": "This notebook allows users to easily send data through a secure, cloud-based platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Bubble/Bubble_Send_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Bubble/Bubble_Send_data.ipynb", "imports": ["naas_drivers.bubble"], "image_url": ""}, {"objectID": "d32e84a4975bcf6f6343720e6e7ab190036193ef0512dd09ce63387dcee3bfce", "tool": "CCXT", "notebook": "Calculate Support and Resistance", "action": "", "tags": ["#ccxt", "#bitcoin", "#trading", "#investors", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides a guide to using the CCXT library to calculate support and resistance levels for cryptocurrency trading.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/CCXT/CCXT_Calculate_Support_and_Resistance.ipynb", "imports": ["naas", "ccxt", "pandas", "datetime.datetime", "naas_drivers", "trendln", "plotly.tools", "plotly.graph_objects"], "image_url": ""}, {"objectID": "f91ca561288c0eb0c1d84e6a165300ce2af7db52fca7389f551767b209a2de24", "tool": "CCXT", "notebook": "Predict Bitcoin from Binance", "action": "", "tags": ["#ccxt", "#bitcoin", "#trading", "#investors", "#ai", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook uses the CCXT library to predict Bitcoin prices on the Binance exchange.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/CCXT/CCXT_Predict_Bitcoin_from_Binance.ipynb", "imports": ["naas", "ccxt", "pandas", "datetime.datetime", "naas_drivers.plotly, prediction"], "image_url": ""}, {"objectID": "2fac04a0e47274af3af50087ce42c66a7c88cdc4d2187f530ae968310c7cefe9", "tool": "Canny", "notebook": "Create", "action": "", "tags": ["#canny", "#product", "#operations", "#snippet"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "updated_at": "2023-04-12", "created_at": "2021-01-26", "description": "This notebook provides an easy-to-use interface for creating custom Canny edge detection filters.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Canny/Canny_Create.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Create.ipynb", "imports": ["requests", "json", "pandas"], "image_url": ""}, {"objectID": "e99b960cfb98cd5fe1eefc5ab9734d32cd7328846af6b8258321e40463768645", "tool": "Canny", "notebook": "Github issue update", "action": "", "tags": ["#canny", "#product", "#operations", "#snippet", "#github"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "updated_at": "2023-04-12", "created_at": "2021-01-26", "description": "This notebook provides an automated way to keep track of Github issues and their updates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Canny/Canny_Github_issue_update.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Github_issue_update.ipynb", "imports": ["requests", "json", "github.Github", "pandas"], "image_url": ""}, {"objectID": "5f7c655a1a23609d607d4d123f44853440b27a11ac985de645279ef85c92db1a", "tool": "Canny", "notebook": "Read", "action": "", "tags": ["#canny", "#product", "#operations", "#snippet"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "updated_at": "2023-04-12", "created_at": "2021-01-26", "description": "This notebook is a comprehensive guide to understanding and applying the Canny edge detection algorithm.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Canny/Canny_Read.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Canny/Canny_Read.ipynb", "imports": ["requests", "json", "pandas"], "image_url": ""}, {"objectID": "b5d3fc12c82fbcc5bfc6f310e38b0d4fd5270da588df0c8926fbacb000c99f54", "tool": "Celestrak", "notebook": "Satellites over time", "action": "", "tags": ["#celestrak", "#opendata", "#satellites", "#analytics", "#plotly"], "author": "Dumorya", "author_url": "https://github.com/Dumorya", "updated_at": "2023-04-12", "created_at": "2021-06-11", "description": "This notebook provides a visual representation of the changing number of satellites in Earth's orbit over time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Celestrak/Celestrak_Satellites_over_time.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Celestrak/Celestrak_Satellites_over_time.ipynb", "imports": ["pandas", "plotly.express", "plotly.graph_objects", "numpy"], "image_url": ""}, {"objectID": "688e1d955c26c14cf79153c9ba1bfaf124451cc614bd2e48229eb64ef5534683", "tool": "Cityfalcon", "notebook": "Get data from API", "action": "", "tags": ["#cityfalcon", "#news", "#opendata", "#snippet", "#investors", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-23", "description": "This notebook provides a guide to using the Cityfalcon API to access data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Cityfalcon/Cityfalcon_Get_data_from_API.ipynb", "imports": ["naas_drivers.cityfalcon"], "image_url": ""}, {"objectID": "0aa8bc599e4d5c5ed18242a663e9bddbcb379065d173c33908fa9d29cf0d7085", "tool": "Clockify", "notebook": "Add a new client", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to add a new client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Add_a_new_client.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Add_a_new_client.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "e1eded982d49f9a550f7db5cfbf935d98e51bfed0d93c90121ddc84e4dac2b03", "tool": "Clockify", "notebook": "Add a new project", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-17", "created_at": "2023-05-17", "description": "This notebook will show how to add a new project using Clockify API to a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Add_a_new_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Add_a_new_project.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "77854836bd7b25aefc0458b51b50db3432c4fffbeb389be924bb4df7ef2ecd0f", "tool": "Clockify", "notebook": "Create time entries database on a workspace", "action": "", "tags": ["#clockify", "#timeentry", "#database", "#workspace", "#user", "#create"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-26", "created_at": "2023-07-26", "description": "This notebook creates a time entries database on a specific timeframe, adding client, project and task name. It is usefull for organizations to track time entries and optimize their workflow.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Create_time_entries_database_on_workspace.ipynb", "imports": ["requests", "naas", "pandas", "datetime.datetime"], "image_url": ""}, {"objectID": "fb1e32f0bf0dae62327dfc4282ebd8b8b3102727e3484a5ac9ec5c47cb78e959", "tool": "Clockify", "notebook": "Delete client", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to delete an existing client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Delete_client.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Delete_client.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "d57352246f90d2636fbe59bbd56770cd15f64252f8f7f9d0495f907809369af8", "tool": "Clockify", "notebook": "Delete project", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-17", "created_at": "2023-05-17", "description": "This notebook will show how to delete an existing project using Clockify API from a specific workspace. You can only delete archived project. Active project can not be deleted.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Delete_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Delete_project.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "889fc1d9060a7d6797b56f68349eabd2bedb1e4e9627fcb1ebac0236ceca3330", "tool": "Clockify", "notebook": "Find all users on workspace", "action": "", "tags": ["#clockify", "#workspace", "#users", "#find", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to find all users on a workspace using Clockify API.\nIt will return a dataframe with columns as follow:\n- id: This column stores an identifier or unique identifier associated with a user. It likely contains alphanumeric values that uniquely identify each user in the DataFrame.\n- email: This column stores the email addresses associated with the users in the DataFrame. It likely contains text values representing the email addresses of the users.\n- name: This column stores the names or titles associated with the users in the DataFrame. It likely contains text values representing the names of the users.\n- memberships: This column represents the memberships or group affiliations of the users. It likely contains a list or nested data structure that indicates the groups or memberships the users belong to.\n- profilePicture: This column stores the URLs or paths to the profile pictures of the users. It likely contains text values representing the image URLs or file paths.\n- activeWorkspace: This column represents the identifier or unique identifier of the active workspace for each user. It likely contains alphanumeric values that uniquely identify the active workspace.\n- defaultWorkspace: This column stores the identifier or unique identifier of the default workspace for each user. It likely contains alphanumeric values that uniquely identify the default workspace.\n- settings: This column stores user-specific settings or configurations. It likely contains nested data structures or dictionaries that hold various settings related to the user, such as the week start day and timezone.\n- status: This column indicates the status of the users, whether they are active or inactive. It likely contains text values such as \"ACTIVE\" or \"INACTIVE\".\n- customFields: This column stores custom fields or additional information specific to each user. It may contain nested data structures or lists that hold user-specific custom field values.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Find_all_users_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_all_users_on_workspace.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "27f82b7d0a5b14067a0ddf876dab8649394f189567eecf8a87d260783e7b44d8", "tool": "Clockify", "notebook": "Find clients on workspace", "action": "", "tags": ["#clockify", "#workspace", "#client", "#api", "#python", "#find"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to find clients on a workspace using the Clockify API. It will return a dataframe with columns as follow:\n- id: This column represents an identifier or unique identifier associated with a record or entity. It contains alphanumeric values that uniquely identify each row in the DataFrame.\n- name: This column stores the name or title associated with a particular record or entity. It likely contains text values representing the name of a person, object, or entity.\n- email: This column stores email addresses associated with the records in the DataFrame. It likely contains text values representing the email addresses of individuals or entities.\n- workspaceId: This column represents an identifier or unique identifier associated with a workspace. It likely contains alphanumeric values that uniquely identify each workspace.\n- archived: This column indicates whether a record or entity is archived or not. It likely contains boolean values (True or False), with True indicating that the record is archived and False indicating that it is not.\n- address: This column stores addresses associated with the records in the DataFrame. It likely contains text values representing physical or postal addresses.\n- note: This column stores additional notes or comments related to the records in the DataFrame. It may contain text values providing extra information or details about a particular record or entity.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Find_clients_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_clients_on_workspace.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "78681e3bc7de22fcb89133eb27fcb13afb59ba5dc01a777f4b0fafb2fda819de", "tool": "Clockify", "notebook": "Find tasks on project", "action": "", "tags": ["#clockify", "#task", "#project", "#find", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will help you find tasks on a project using Clockify API. It will return a dataframe with columns as follow:\n- id: This column stores an identifier or unique identifier associated with a task. It likely contains alphanumeric values that uniquely identify each task in the DataFrame.\n- name: This column stores the names or titles associated with the tasks. It likely contains text values representing the names or titles of the tasks.\n- projectId: This column represents the identifier or unique identifier of the project to which each task belongs. It likely contains alphanumeric values that uniquely identify the project.\n- assigneeIds: This column stores the identifiers or unique identifiers of the assignees assigned to the tasks. It likely contains a list or nested data structure that indicates the assignees associated with each task.\n- assigneeId: This column stores the identifier or unique identifier of a single assignee assigned to the task. It likely contains a single value indicating the assignee for the task.\n- userGroupIds: This column stores the identifiers or unique identifiers of the user groups associated with the tasks. It likely contains a list or nested data structure that indicates the user groups associated with each task.\n- estimate: This column stores the estimate or estimated duration for each task. It likely contains a time duration format, such as \"PT0S\" (indicating zero duration).\n- status: This column indicates the status of the tasks, whether they are active or inactive. It likely contains text values such as \"ACTIVE\" or \"INACTIVE\".\n- duration: This column stores the actual duration or time taken for each task. It likely contains a time duration format, such as \"PT2H42M1S\" (indicating a duration of 2 hours, 42 minutes, and 1 second).\n- billable: This column indicates whether the task is billable or not. It likely contains boolean values (True or False), with True indicating that the task is billable and False indicating that it is not.\n- hourlyRate: This column stores the hourly rate associated with the task. It likely contains numerical values representing the rate for the task, such as an hourly billing rate.\n- costRate: This column stores the cost rate associated with the task. It likely contains numerical values representing the cost rate for the task, such as the rate at which the task incurs costs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Find_tasks_on_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Find_tasks_on_project.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "a0b6e7901a2279ecf1696d79f06b9f10b174ad1d6e1af1afdf173c4aefe92635", "tool": "Clockify", "notebook": "Get all my workspaces", "action": "", "tags": ["#clockify", "#api", "#workspace", "#get", "#python", "#rest"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-04-05", "description": "This notebook will show how to get all workspaces of a user using the Clockify API and return a dict.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_all_my_workspaces.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_all_my_workspaces.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "26994336a93d1f5c9ce8b985beda6b15c3739af1bb21802a977f33b5083da2a5", "tool": "Clockify", "notebook": "Get all projects on workspace", "action": "", "tags": ["#clockify", "#api", "#projects", "#workspace", "#get", "#python"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-05-17", "created_at": "2023-04-05", "description": "This notebook will show how to get all projects on a workspace using the Clockify API and return a dict.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_all_projects_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_all_projects_on_workspace.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "dde1e297a4f5047b497f5ff860a3d36770571578f3c400c2528091607ce82058", "tool": "Clockify", "notebook": "Get client by ID", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to get a client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_client_by_ID.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_client_by_ID.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "e0be8e4e76433300e789b377ab059f135ee55e69afac5dddbe0d479c67696650", "tool": "Clockify", "notebook": "Get project by ID", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-17", "created_at": "2023-05-17", "description": "This notebook will show how to get a project using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_project_by_ID.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_project_by_ID.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "b40e1e0366358c58a01662a2ec775ec47ecfb7a75fb0790826c477378b0e6657", "tool": "Clockify", "notebook": "Get time entries for a user on workspace", "action": "", "tags": ["#clockify", "#timeentry", "#api", "#python", "#workspace", "#user"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to get time entries for a user on a workspace using Clockify API. It will return a dataframe with columns as follow:\n- id: This column stores an identifier or unique identifier associated with a time entry. It likely contains alphanumeric values that uniquely identify each time entry in the DataFrame.\n- description: This column stores the description or details associated with the time entry. It likely contains text values representing a description of the activity or task performed during the time entry.\n- tagIds: This column stores the identifiers or unique identifiers of the tags associated with the time entry. It likely contains a list or nested data structure that indicates the tags associated with the time entry.\n- userId: This column represents the identifier or unique identifier of the user who created the time entry. It likely contains alphanumeric values that uniquely identify the user.\n- billable: This column indicates whether the time entry is billable or not. It likely contains boolean values (True or False), with True indicating that the time entry is billable and False indicating that it is not.\n- taskId: This column stores the identifier or unique identifier of the task associated with the time entry. It likely contains alphanumeric values that uniquely identify the task.\n- projectId: This column represents the identifier or unique identifier of the project associated with the time entry. It likely contains alphanumeric values that uniquely identify the project.\n- timeInterval_start: This column stores the start timestamp of the time interval for the time entry. It likely contains timestamp values indicating when the time entry started.\n- timeInterval_end: This column stores the end timestamp of the time interval for the time entry. It likely contains timestamp values indicating when the time entry ended.\n- timeInterval_duration: This column stores the duration of the time entry. It likely contains a time duration format, such as \"PT37M16S\" (indicating a duration of 37 minutes and 16 seconds).\n- workspaceId: This column represents the identifier or unique identifier of the workspace associated with the time entry. It likely contains alphanumeric values that uniquely identify the workspace.\n- isLocked: This column indicates whether the time entry is locked or not. It likely contains boolean values (True or False), with True indicating that the time entry is locked and False indicating that it is not.\n- customFieldValues: This column stores custom field values associated with the time entry. It likely contains nested data structures or lists that hold custom field values specific to the time entry.\n- type: This column indicates the type or category of the time entry. It likely contains text values representing the type of activity or task associated with the time entry.\n- kioskId: This column stores the identifier or unique identifier of the kiosk associated with the time entry. It likely contains alphanumeric values that uniquely identify the kiosk.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Get_time_entries_for_a_user_on_workspace.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "55ff26f7546527d35891d67642ff3558b55cbe046d7c2611c52da19231ce24bd", "tool": "Clockify", "notebook": "Remove user from workspace", "action": "", "tags": ["#clockify", "#workspace", "#remove", "#user", "#api", "#rest"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-05-16", "created_at": "2023-04-05", "description": "This notebook explains how to remove a user from a workspace using the Clockify API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Remove_user_from_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Remove_user_from_workspace.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "e9dd7f3721289c5cacbb673f835f8704f69b9c284464098a10e7a324a52b8a32", "tool": "Clockify", "notebook": "Send time entries database to a Google Sheets spreadsheet", "action": "", "tags": ["#clockify", "#timeentry", "#database", "#workspace", "#user", "#task", "#project", "#gsheet", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook will send the time entries database from Clockify to a Google Sheets spreadsheet. This is usefull for organizations to keep track of their time entries and analyze them.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Send_time_entries_database_to_Google_Sheets_spreadsheet.ipynb", "imports": ["requests", "naas", "pandas", "datetime.datetime", "naas_drivers.gsheet"], "image_url": ""}, {"objectID": "40a719b2a9fd405a4bac1dd9864c9832a49dcbab49584008dbede718c03e8ee7", "tool": "Clockify", "notebook": "Update client", "action": "", "tags": ["#clockify", "#client", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-16", "created_at": "2023-05-16", "description": "This notebook will show how to update a client using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Update_client.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Update_client.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "00cfb28fd1d25a93635ff29385838c7c9f14d989cbb35e6a77b60c5d156718ce", "tool": "Clockify", "notebook": "Update project", "action": "", "tags": ["#clockify", "#project", "#create", "#api", "#rest", "#documentation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-17", "created_at": "2023-05-17", "description": "This notebook will show how to update a project using Clockify API from a specific workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Clockify/Clockify_Update_project.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Clockify/Clockify_Update_project.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "c5fcb9a6ae84c92e74a8dd8b916b7741c133dc3e1efc59b1a730f711ae61f834", "tool": "Cloud Mercato", "notebook": "Compare VM pricing", "action": "", "tags": ["#cloud", "#infrastruture", "#pricing", "#vm", "#iaas", "#analytics", "#compute"], "author": "Anthony Monthe", "author_url": "https://www.linkedin.com/in/anthonymonthe/", "updated_at": "2023-04-12", "created_at": "2022-11-01", "description": "Cloud Mercato is an online platform that allows users to compare virtual machine pricing from different cloud providers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Cloud%20Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Cloud%20Mercato/Cloud_Mercato_Compare_VM_pricing.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "a420b595b58b994e4a8054607be73c2945ba0b41c37a582aac12836ae0fb9cef", "tool": "Creditsafe", "notebook": "Get Company Credit Report", "action": "", "tags": ["#creditsafe", "#api", "#enterprise", "#integrations", "#company", "#creditreport"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-08", "description": "This notebook will demonstrate how to use the Creditsafe API to get a company credit report.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Creditsafe/Creditsafe_Get_Company_Credit_Report.ipynb", "imports": ["requests", "naas", "pprint.pprint", "json"], "image_url": ""}, {"objectID": "99dc0ea3413e44582f05edc31fb2079f4e0778981f68d58246b80aae2b23be24", "tool": "D-Tale", "notebook": "Visualize dataframe", "action": "", "tags": ["#csv", "#pandas", "#snippet", "#read", "#dataframe", "#visualize", "#dtale", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-04-11", "description": "D-Tale is a tool that allows users to quickly and easily visualize dataframes in an interactive and intuitive way.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/D-Tale/D-Tale_Visualize_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/D-Tale/D-Tale_Visualize_dataframe.ipynb", "imports": ["pandas", "dtale", "dtale.app"], "image_url": ""}, {"objectID": "27f443089a00055bee93b043b9b42d368258d639ffac4a99a34bcac72a8c6f06", "tool": "Dash", "notebook": "Add a customisable sidebar", "action": "", "tags": ["#dash", "#offcanvas", "#sidebar", "#customisable", "#component", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-05", "created_at": "2023-06-05", "description": "This notebook demonstrates how to use the Offcanvas component to add a customisable sidebar to your apps. It is usefull for organisations that need to add a sidebar to their Dash apps.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Add_a_customisable_sidebar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Add_a_customisable_sidebar.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.Input, Output, State, html"], "image_url": ""}, {"objectID": "800cd47399958fce0bb44cc5202abf7b490ca015760efa4088ac69124bf4787e", "tool": "Dash", "notebook": "Create Datatable With Dropdown", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Ismail Chihab", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "updated_at": "2023-04-12", "created_at": "2022-08-26", "description": "Create a basic table that can be updated through a dcc.dropdown menu.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Datatable_With_Dropdown.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Datatable_With_Dropdown.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, dcc, dash_table", "pandas"], "image_url": ""}, {"objectID": "e9818d91a4e391da8889aa702a1be52ddf216175ed60dd4ce1b70b4b4b817cd7", "tool": "Dash", "notebook": "Create Dropdown Callback", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-18", "description": "Create a basic dropdown, provide options and a value to dcc.Dropdown in that order.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Dropdown_Callback.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Dropdown_Callback.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State, dcc"], "image_url": ""}, {"objectID": "0c5da456dd8bf84ccd405188c1a60872fa082aae7a99567911a59be09a5b9fcd", "tool": "Dash", "notebook": "Create Dropdown with multiples output callbacks", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-18", "description": "Create a basic dropdown, provide options and a value to dcc.Dropdown in that order.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Dropdown_with_multiples_output_callbacks.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State, dcc, dash_table", "plotly.graph_objs", "dash.exceptions.PreventUpdate"], "image_url": ""}, {"objectID": "68a887dfaaa80942ddb1a232171e004e74e6ef6db41fa8bbdb0454c220e10f3e", "tool": "Dash", "notebook": "Create Interactive Plot", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-05-29", "created_at": "2023-05-25", "description": "This notebook creates an interactive plot using Dash app infrastructure.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Interactive_Plot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Interactive_Plot.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express", "io", "requests"], "image_url": ""}, {"objectID": "1774258ba69e802f126a725e1df40f6af2f051dcc113cb134a808e1bbfbc2236", "tool": "Dash", "notebook": "Create Navbar", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#navbar", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-17", "description": "A simple app demonstrating how to manually construct a navbar with a customised layout using the Navbar component and the supporting Nav, NavItem, NavLink, NavbarBrand, and NavbarToggler components.\n\nRequires dash-bootstrap-components 0.3.0 or later", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Navbar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Navbar.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State"], "image_url": ""}, {"objectID": "d4243fd641f0b712b1154b26fc159e3c1bb7df479750d063f11935eef3874ac6", "tool": "Dash", "notebook": "Create Navbar board", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#analytics", "#navbar", "#bootstrap"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-18", "description": "This notebook allows users to create a customizable navigation bar for their website or application.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Navbar_Dashboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Navbar_Dashboard.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, Input, Output, State, dcc"], "image_url": ""}, {"objectID": "d195aeb80452c89e129ea46a655d09b2460d9fecc0f9770ce742bf3fc6cff0e9", "tool": "Dash", "notebook": "Create Navbar Search", "action": "", "tags": ["#dash", "#snippet", "#dashboard", "#plotly", "#dash", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-15", "description": "This notebook provides a tutorial on how to create a searchable navigation bar using the Dash library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_Navbar_Search.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_Navbar_Search.ipynb", "imports": ["dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc", "dash.dependencies.Input, Output", "os"], "image_url": ""}, {"objectID": "4b333f42522abb0ce297502127eba3288b9cd14336f94c563c7523156c545ceb", "tool": "Dash", "notebook": "Create button to refresh page", "action": "", "tags": ["#dash", "#python", "#button", "#refresh", "#page", "#stackoverflow"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-02", "created_at": "2023-06-02", "description": "This notebook explains how to create a button in Dash to refresh the page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_button_to_refresh_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_button_to_refresh_page.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Output, Input, State"], "image_url": ""}, {"objectID": "5d0ec204e1adc070996a900d4212c1d45f5925dc25a522b3e3f45b857e1e6f54", "tool": "Dash", "notebook": "Create conditional formatting on HTML element", "action": "", "tags": ["#dash", "#html", "#conditional", "#formatting", "#element", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to create conditional formatting of an HTML element using Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_conditional_formatting_on_HTML_element.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Output, Input, State"], "image_url": ""}, {"objectID": "e8bf48a389426d3ffba1975c7da90f59b8784773a0440500b8d64869357abfc7", "tool": "Dash", "notebook": "Create conditional formatting on number value", "action": "", "tags": ["#dash", "#html", "#conditional", "#formatting", "#element", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to create conditional formatting of an HTML element using Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_conditional_formatting_on_number_value.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Output, Input, State"], "image_url": ""}, {"objectID": "0884edbacf735f45bc43e534555b0b0c3293fcfe22599d60ec7a9461e2e52e7e", "tool": "Dash", "notebook": "Create download button", "action": "", "tags": ["#dash", "#button", "#download", "#create", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook will show how to create a download button with Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_download_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_download_button.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html"], "image_url": ""}, {"objectID": "8724d5174822ed9a031f96f8bb87140b72d60f7a27a664065d744aab70131681", "tool": "Dash", "notebook": "Create loading button", "action": "", "tags": ["#dash", "#plotly", "#loading", "#button", "#python", "#web"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-02", "created_at": "2023-06-02", "description": "This notebook explains how to create a loading button with Dash Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_loading_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_loading_button.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "dash.Dash, html, dcc, callback, Output, Input, State", "time"], "image_url": ""}, {"objectID": "dd2c5fe6315560fa638685fb739dc1b4a6d39089220f430d269c01b78c7dd953", "tool": "Dash", "notebook": "Create spinner button", "action": "", "tags": ["#dash", "#button", "#download", "#create", "#python", "#library", "#spinner"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook will show how to create a spinner button with Dash. The `Spinner` component can be used inside buttons to indicate that an action is currently processing or taking place.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Create_spinner_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Create_spinner_button.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html"], "image_url": ""}, {"objectID": "162e8064b2a3e2bb21972a90cb77673df932c178555c3a985b7218c3c2786444", "tool": "Dash", "notebook": "Deploy app in Naas", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-01", "description": "This notebook provides a step-by-step guide to deploying an app with Dash on Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Deploy_app_in_Naas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Deploy_app_in_Naas.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc", "plotly.express", "plotly.graph_objects"], "image_url": ""}, {"objectID": "477b2f627d6fc1d842945d36a8661d2f63c69d27ec2afe9612e5ccbf54aaba0a", "tool": "Dash", "notebook": "LinkedIn posts metrics dashboard", "action": "", "tags": ["#dash", "#linkedin", "#dashboard", "#plotly", "#naas", "#asset", "#automation", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-06", "description": "This notebook provides a dashboard to track and analyze metrics related to LinkedIn posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_LinkedIn_posts_metrics_dashboard.ipynb", "imports": ["os", "os.environ", "pandas", "naas", "datetime.datetime", "naas_drivers.gsheet", "plotly.graph_objects", "plotly.express", "plotly.subplots.make_subplots", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components._components.Container.Container", "dash.exceptions.PreventUpdate"], "image_url": ""}, {"objectID": "950b5ed31417ee13e856d45afc141338d870a01592a83e9f71131ed42d8d2f02", "tool": "Dash", "notebook": "Plotly Dynamic Link", "action": "", "tags": ["#dash", "#plotly", "#naas", "#analytics"], "author": "Oguz Akif Tufekcioglu", "author_url": "https://www.linkedin.com/in/oguzakiftufekcioglu/", "updated_at": "2023-04-12", "created_at": "2022-10-18", "description": "This notebook provides an interactive way to explore data with Dash and Plotly, allowing users to create dynamic links between visualizations.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Plotly_Dynamic_Link.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Plotly_Dynamic_Link.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "webbrowser", "dash.dependencies.Input, Output", "dash.html, dcc", "dash.exceptions.PreventUpdate", "plotly.express", "plotly.graph_objects"], "image_url": ""}, {"objectID": "506d501ebff0f9b3a6ab229a88a2464ece6c09bfdd29e7b5ce5d43731c3a3c5d", "tool": "Dash", "notebook": "Upload mutiples CSV Excel", "action": "", "tags": ["#dashboard", "#plotly", "#dash", "#naas", "#upload", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-11-22", "description": "This notebook allows users to upload multiple CSV and Excel files to create interactive visualizations with Dash.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dash/Dash_Upload_mutiples_CSV_Excel.ipynb", "imports": ["os", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.Dash, dcc, html, Input, Output, State", "pandas", "base64", "datetime", "io", "dash.dcc, html, dash_table"], "image_url": ""}, {"objectID": "61bc9b898dcd8659c49a5ac5fe46a212b5f7217286b9bccdbfec9183f9cd9732", "tool": "Dask", "notebook": "Parallelize operations on multiple csvs", "action": "", "tags": ["#csv", "#pandas", "#snippet", "#read", "#dataframe", "#parallel", "#parallelize", "#dask", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-04-13", "description": "This notebook demonstrates how to use Dask to efficiently process and analyze multiple CSV files in parallel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Dask/Dask_parallelize_operations_on_multiple_csvs.ipynb", "imports": ["os", "graphviz", "graphviz", "dask.dataframe", "dask.dataframe", "pandas", "glob"], "image_url": ""}, {"objectID": "6a8d408c93bbef46e9136bfea9c5e3416c18cccde9528f35a88f44c763960c08", "tool": "Data.gouv.fr", "notebook": "COVID19 - FR - Entr\u00e9es et sorties par r\u00e9gion pour 1 million d'hab.", "action": "", "tags": ["#data.gouv.fr", "#opendata", "#france", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook provides an analysis of the entry and exit of one million people in each region of France due to the COVID-19 pandemic.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Data.gouv.fr/COVID19%20-%20%20FR%20-%20Entr%C3%A9es%20et%20sorties%20par%20r%C3%A9gion%20pour%201%20million%20d%27hab..ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Data.gouv.fr/COVID19%20-%20%20FR%20-%20Entr%C3%A9es%20et%20sorties%20par%20r%C3%A9gion%20pour%201%20million%20d%27hab..ipynb", "imports": ["requests", "pandas", "datetime.datetime, timedelta", "plotly.graph_objects", "plotly.subplots.make_subplots", "numpy"], "image_url": ""}, {"objectID": "2725c6bbe45eba9e5d58de0a89d96d7ad467ef8dbe42a084dbfb28b3328a03aa", "tool": "Data.gouv.fr", "notebook": "R\u00e9cup\u00e9ration donn\u00e9es l\u00e9gales entreprise", "action": "", "tags": ["#data.gouv.fr", "#snippet", "#naas", "#societe", "#opendata"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-04", "description": "This notebook provides a guide to retrieving legal data from data.gouv.fr for businesses.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Data.gouv.fr/Data.gouv.fr_R%C3%A9cup%C3%A9ration_donn%C3%A9es_l%C3%A9gales_entreprise.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Data.gouv.fr/Data.gouv.fr_R%C3%A9cup%C3%A9ration_donn%C3%A9es_l%C3%A9gales_entreprise.ipynb", "imports": ["requests", "pprint.pprint"], "image_url": ""}, {"objectID": "14ddb09c734bc7d6e5f8c0adfd7ac2d7c8f2002d6e506149cf3e833c788c9ce9", "tool": "Datetime", "notebook": "Calculate relative time delta between two dates", "action": "", "tags": ["#datetime", "#datetime", "#relativedelta", "#calculate", "#date", "#time", "#dateutil"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-05", "created_at": "2023-05-22", "description": "This notebook calculates the relative time delta between two dates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Calculate_relative_time_delta_between_two_dates.ipynb", "imports": ["datetime.datetime", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "f7399e612e827014cbd261e6dfd655c72c29ebdcaa7f136699463a2cb8d5ae82", "tool": "Datetime", "notebook": "Calculate time delta between two dates", "action": "", "tags": ["#datetime", "#timedelta", "#calculate", "#date", "#time"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-05", "created_at": "2023-05-22", "description": "This notebook calculates the time delta between two dates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Calculate_time_delta_between_two_dates.ipynb", "imports": ["datetime.datetime"], "image_url": ""}, {"objectID": "ee2454efaf6543bbecbe368327aa987b1cf2c65b67a0d60de28d59966ca7e3de", "tool": "Datetime", "notebook": "Convert datetime object to a formatted date string", "action": "", "tags": ["#datetime", "#snippet", "#operations", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-05", "created_at": "2023-07-05", "description": "This notebook provides an introduction to using the Python datetime library to work with dates and times.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_datetime_object_to_string_date.ipynb", "imports": ["datetime.datetime"], "image_url": ""}, {"objectID": "527179e27a2e54e5090aa8ae94593c5883ba100a886199344c55e8a046e103de", "tool": "Datetime", "notebook": "Convert with Timezone to ISO 8601 date string", "action": "", "tags": ["#datetime", "#timezone", "#iso8601", "#string", "#conversion"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-05", "created_at": "2023-02-15", "description": "This notebook will demonstrate how to convert a datetime with timezone to an ISO 8601 date string.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_datetime_with_timezone_to_ISO_8601_date_string.ipynb", "imports": ["datetime.datetime", "pytz"], "image_url": ""}, {"objectID": "2e58cf9199f74e34fc1aae9761efc23814d7a0f9ce53e6d9464203e0b82e651a", "tool": "Datetime", "notebook": "Convert relative time delta to months", "action": "", "tags": ["#datetime", "#relativedelta", "#calculate", "#date", "#time", "#dateutil"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-05", "created_at": "2023-05-22", "description": "This notebook is designed to convert the relative time delta between two dates into months. By utilizing the `relativedelta` function, the conversion becomes more accurate compared to using `timedelta`, as `relativedelta` considers the varying number of days in each month.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_relative_time_delta_to_months.ipynb", "imports": ["datetime.datetime", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "c2bafcf6bd3d8bd05a9b45ff7085dcc9a41d4300fdb65f762e0256546d40fd20", "tool": "Datetime", "notebook": "Convert a string date to a datetime object", "action": "", "tags": ["#datetime", "#snippet", "#operations", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-05", "created_at": "2023-07-05", "description": "This notebook converts a string date to a datetime object", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Convert_string_to_datetime_object.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_string_to_datetime_object.ipynb", "imports": ["datetime.datetime"], "image_url": ""}, {"objectID": "deacb63cb8ea46333f7b10672b968a20991c44cc34048cecbd7af276488cdc36", "tool": "Datetime", "notebook": "Convert timestamp to a datetime object", "action": "", "tags": ["#datetime", "#python", "#timestamp", "#convert", "#datetimeobject", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-05", "created_at": "2023-07-05", "description": "This notebook will show how to convert a timestamp to a datetime object in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Datetime/Datetime_Convert_timestamp_to_a_datetime_object.ipynb", "imports": ["datetime.datetime"], "image_url": ""}, {"objectID": "898c8b8d33cadf517a47046cf51115935b579a8a1797b5c0b098af29e2075b8f", "tool": "Deepl", "notebook": "Translated string to txt", "action": "", "tags": ["#deepl", "#translate", "#text", "#txt", "#api", "#string"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook show how to translate a string with Deepl API and save it in a txt file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Deepl/Deepl_Translated_string_to_txt.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Deepl/Deepl_Translated_string_to_txt.ipynb", "imports": ["naas", "deepl", "deepl"], "image_url": ""}, {"objectID": "8f82e653557ca28f058454ad86c1553add053a2e1d00829c8a1a7cc052d5df90", "tool": "Draft Kings", "notebook": "Get MLB Moneylines", "action": "", "tags": ["#draftkings", "#mlb", "#betting", "#python", "#analytics", "#automation", "#sports", "#sports_betting", "#opendata", "#notification", "#email"], "author": "JA Williams", "author_url": "https://www.linkedin.com/in/ja-williams-529517187/", "updated_at": "2023-04-12", "created_at": "2022-06-15", "description": "This notebook provides an analysis of Major League Baseball moneylines from DraftKings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Draft%20Kings/Draft_Kings_Get_MLB_Moneylines.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Draft%20Kings/Draft_Kings_Get_MLB_Moneylines.ipynb", "imports": ["naas", "requests", "pandas", "bs4.BeautifulSoup", "naas_drivers.emailbuilder", "datetime.datetime", "pytz"], "image_url": ""}, {"objectID": "ceb5a587fbb4c9f40cba42de520895d00c40bba339419b224bf452d40c83e02c", "tool": "Draft Kings", "notebook": "Get NBA Moneylines", "action": "", "tags": ["#draftkings", "#nba", "#betting", "#python", "#analytics", "#automation", "#sports", "#sports_betting", "#opendata", "#notification", "#email"], "author": "JA Williams", "author_url": "https://www.linkedin.com/in/ja-williams-529517187/", "updated_at": "2023-04-12", "created_at": "2022-04-13", "description": "This notebook provides an analysis of NBA Moneylines from Draft Kings to help you make informed betting decisions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Draft%20Kings/Draft_Kings_Get_NBA_Moneylines.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Draft%20Kings/Draft_Kings_Get_NBA_Moneylines.ipynb", "imports": ["naas", "requests", "pandas", "bs4.BeautifulSoup", "naas_drivers.emailbuilder", "datetime.datetime", "pytz"], "image_url": ""}, {"objectID": "543ef2600b507345bc7b6cd2db8351aaed78fab51441bd3fb69d88cc5ec3f5e2", "tool": "EM-DAT", "notebook": "Natural disasters", "action": "", "tags": ["#em-dat", "#emdat", "#opendata", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-28", "description": "In 1988, the Centre for Research on the Epidemiology of Disasters (CRED) launched the Emergency Events Database (EM-DAT). [EM-DAT](https://www.emdat.be/) was created with the initial support of the World Health Organisation (WHO) and the Belgian Government.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/EM-DAT/EM-DAT_natural_disasters.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/EM-DAT/EM-DAT_natural_disasters.ipynb", "imports": ["pandas", "plotly.express"], "image_url": ""}, {"objectID": "30d15767a0d67fbb7c1aa3b0d8047bf5075074c348588a11dc34cfdf9bf52161", "tool": "Elasticsearch", "notebook": "Connect to server", "action": "", "tags": ["#elasticsearch", "#elastic", "#search", "#snippet", "#operations"], "author": "Ebin Paulose", "author_url": "https://www.linkedin.com/in/ebinpaulose/", "updated_at": "2023-04-12", "created_at": "2022-03-20", "description": "### 1. Prerequisites", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Elasticsearch/Elasticsearch_Connect_to_server.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Elasticsearch/Elasticsearch_Connect_to_server.ipynb", "imports": ["elasticsearchconnector.ElasticsearchConnector"], "image_url": ""}, {"objectID": "ba28d491fd759da0887e597f60ac8ca271d9e76837bd293f62d2557875a1d594", "tool": "Excel", "notebook": "Apply Custom Styles", "action": "", "tags": ["#excel", "#openpyxl", "#font", "#border", "#background", "#naas", "#finance", "#snippet"], "author": "S\u00e9bastien Grech", "author_url": "https://www.linkedin.com/in/s%C3%A9bastien-grech-4433a7150/", "updated_at": "2023-04-12", "created_at": "2023-02-07", "description": "This notebook provides instructions on how to apply custom styles to an Excel spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Apply_Custom_Styles.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Apply_Custom_Styles.ipynb", "imports": ["naas", "openpyxl.load_workbook", "openpyxl.cell.Cell", "openpyxl.styles.Color, PatternFill, Font, Border", "openpyxl.styles.borders.Border, Side"], "image_url": ""}, {"objectID": "d90301be264b3cf72aeee61ab98051d15815adda6f6e494fc0587923ba51118d", "tool": "Excel", "notebook": "Consolidate files", "action": "", "tags": ["#excel", "#pandas", "#read", "#save", "#naas", "#asset", "#finance", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook provides a comprehensive guide to consolidating multiple Excel files into one.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Consolidate_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Consolidate_files.ipynb", "imports": ["pandas", "naas"], "image_url": ""}, {"objectID": "217fff1a4dbbe5cdb391c88dd2e230eef12ddbf46fc6b2a4b7e05c49db3758fb", "tool": "Excel", "notebook": "Get dynamic active range", "action": "", "tags": ["#excel", "#openpyxl", "#active-range", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-24", "description": "This notebook provides a method for dynamically retrieving the active range of an Excel worksheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Get_dynamic_active_range.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Get_dynamic_active_range.ipynb", "imports": ["openpyxl.load_workbook", "openpyxl.utils.get_column_letter"], "image_url": ""}, {"objectID": "b92ea8d1185531f94864792601a94a86b90d79e8d8da49977d1ffdc87a6cce41", "tool": "Excel", "notebook": "List sheets in workbook", "action": "", "tags": ["#excel", "#list", "#sheets", "#workbook", "#data", "#analysis"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-03-29", "description": "This notebook will list the sheet's name in an Excel workbook.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_List_sheets_in_workbook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_List_sheets_in_workbook.ipynb", "imports": ["openpyxl", "os"], "image_url": ""}, {"objectID": "32e6a2bbb504fb622cc153607a48c61677401ab357a4d2117b6b3820be4fbd69", "tool": "Excel", "notebook": "Read file", "action": "", "tags": ["#excel", "#pandas", "#read", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook reads an Excel file and allows users to manipulate the data within it.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Read_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Read_file.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "89dbd7dbd81efb97de7af6a3f612379e28d249f769af1c6aaec979867b4c796b", "tool": "Excel", "notebook": "Save file", "action": "", "tags": ["#excel", "#pandas", "#save", "#opendata", "#yahoofinance", "#naas_drivers", "#finance", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-22", "description": "This notebook allows users to save their Excel files quickly and easily.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Excel/Excel_Save_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Excel/Excel_Save_file.ipynb", "imports": ["pandas", "naas_drivers.yahoofinance"], "image_url": ""}, {"objectID": "82f6147c6bace8c4fe20f3c99ff957454a2ff4a331301a7201a9f3550feb508b", "tool": "FAO", "notebook": "Consumer price indice", "action": "", "tags": ["#fao", "#opendata", "#food", "#analytics", "#plotly"], "author": "Dereck DANIEL", "author_url": "https://github.com/DANIEL-Dereck", "updated_at": "2023-04-12", "created_at": "2021-06-10", "description": "This notebook provides an analysis of the changes in consumer prices over time as measured by the Food and Agriculture Organization's Consumer Price Index.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FAO/FAO_Consumer_price_indice.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FAO/FAO_Consumer_price_indice.ipynb", "imports": ["requests, zipfile, io", "matplotlib.pyplot", "naas_drivers", "pandas", "plotly.express", "csv", "codecs", "plotly.graph_objects"], "image_url": ""}, {"objectID": "097bbecb865851c847e60decdb392721feca4070a51c0ee2a95069f1b539e0a7", "tool": "FEC", "notebook": "Creer un dashboard PowerBI", "action": "", "tags": ["#fec", "#powerbi", "#dataviz", "#analytics", "#finance"], "author": "Alexandre STEVENS", "author_url": "https://www.linkedin.com/in/alexandrestevenspbix/", "updated_at": "2023-04-12", "created_at": "2021-08-17", "description": "This notebook provides instructions for creating a PowerBI dashboard to visualize Federal Election Commission (FEC) data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Creer_un_dashboard_PowerBI.ipynb", "imports": ["pandas", "datetime.datetime, timedelta", "os", "re", "naas", "json"], "image_url": ""}, {"objectID": "05f3e5c7ae59b593be99118e8041cef4b465f18e633b6f8afc3b889762a1bb58", "tool": "FEC", "notebook": "Lecture des fichiers", "action": "", "tags": ["#fec", "#lecture", "#fichiers", "#python", "#data", "#analyse"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to read files with Python and how it is usefull for organization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Lecture_des_fichiers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Lecture_des_fichiers.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "ae95a038ed1b23ff84eb40e19039601cba8278c3d969caa4124defd23ecdca63", "tool": "FEC", "notebook": "Visualiser Bilan Treemap", "action": "", "tags": ["#fec", "#plotly", "#treemap", "#snippet", "#dataviz"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-31", "description": "Ce notebook affiche les \u00e9l\u00e9ments du bilan sous forme de graphique treemap. Le graphique \"treemap\" est tr\u00e8s utile pour montrer la r\u00e9partition des actifs et des passifs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Bilan_Treemap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Bilan_Treemap.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas"], "image_url": ""}, {"objectID": "f7c01654a85e3e8cfadc6c93c2c38c27b13bf29df99a6094094bae4462f19abc", "tool": "FEC", "notebook": "Visualiser Charges Horizontal Barchart", "action": "", "tags": ["#fec", "#plotly", "#horizontalbarchart", "#visualisation", "#charges", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-23", "description": "Ce notebook vous permettra de visualiser les charges de votre entreprise \u00e0 l'aide d'un barchart horizontal.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Charges_Horizontal_Barchart.ipynb", "imports": ["plotly.graph_objects", "pandas", "naas"], "image_url": ""}, {"objectID": "6741d446a829e89f2b656fe139e0319b2cd7c49feb3643bb10209e4dfdfe9d2d", "tool": "FEC", "notebook": "Visualiser Comparer Ventes Line Chart", "action": "", "tags": ["#fec", "#plotly", "#naas", "#snippet", "#operations", "#linechart"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-02-08", "description": "Ce notebook vous permettra de visualiser et comparer les ventes de votre entreprise pour les p\u00e9riodes N et N-1 \u00e0 l'aide de deux courbes de tendance. Vous pourrez facilement voir les tendances et les diff\u00e9rences entre les deux p\u00e9riodes pour prendre des d\u00e9cisions \u00e9clair\u00e9es pour am\u00e9liorer vos ventes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Comparer_Ventes_Line_Chart.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas", "random"], "image_url": ""}, {"objectID": "d73ae271b1557432c42c76c41c62f94628dd97120e11e41b0f1c0f0eee97a9c5", "tool": "FEC", "notebook": "Visualiser Tr\u00e9sorerie Barline Chart", "action": "", "tags": ["#fec", "#plotly", "#naas", "#snippet", "#operations", "#barline"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-02-08", "description": "Ce notebook vous permettra de visualiser la tr\u00e9sorerie de votre entreprise \u00e0 l'aide d'un diagramme de barres. Vous pourrez facilement suivre les entr\u00e9es et les sorties d'argent, ce qui vous aidera \u00e0 mieux comprendre la situation financi\u00e8re de votre entreprise.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FEC/FEC_Visualiser_Tr%C3%A9sorerie_Barline_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FEC/FEC_Visualiser_Tr%C3%A9sorerie_Barline_Chart.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas", "random"], "image_url": ""}, {"objectID": "3d5d98e21d25b8ffe3b8c6deb3b9d8beecba5a65754590a020591220885efdd0", "tool": "FED", "notebook": "Visualize Inflation Rate", "action": "", "tags": ["#fed", "#inflation_rate", "#vizualization", "#plotly"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-04-12", "created_at": "2023-04-06", "description": "This notebook vizualize the inflation rate of the US using plotly and fred api", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FED/FED_Visualize_Inflation_Rate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FED/FED_Visualize_Inflation_Rate.ipynb", "imports": ["naas", "pandas", "plotly.express", "fredapi.Fred", "fredapi.Fred"], "image_url": ""}, {"objectID": "3bf073466b39d2c379ef627157f0279dece8ae6a7edb3238fc59b4282a76417a", "tool": "FTP", "notebook": "S Connect", "action": "", "tags": ["#ftp", "#ftps", "#file", "#naas_drivers", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-03", "description": "This notebook provides a guide to setting up an FTP connection to securely transfer files between two computers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTPS_Connect.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTPS_Connect.ipynb", "imports": ["naas_drivers.ftp"], "image_url": ""}, {"objectID": "69af686c106175459bb5ebbe8514346705fe801d27fdfd2f8ce9956d411fc755", "tool": "FTP", "notebook": "Connect", "action": "", "tags": ["#ftp", "#file", "#naas_drivers", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-03", "description": "This notebook provides instructions on how to connect to an FTP server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTP_Connect.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTP_Connect.ipynb", "imports": ["naas_drivers.ftp"], "image_url": ""}, {"objectID": "b17b56d2b058f53c97a81c8cd360ad2fcc3a6f08d49c9a493fa8a6fd92127173", "tool": "FTP", "notebook": "Get file", "action": "", "tags": ["#ftp", "#file", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-03", "description": "This notebook retrieves a file from an FTP server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTP_Get_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTP_Get_file.ipynb", "imports": ["naas_drivers.ftp"], "image_url": ""}, {"objectID": "a228c9862a9e8eb6ff9cad6f815931ec3d02927ee30a1123dfe647d9836b2b05", "tool": "FTP", "notebook": "Send file", "action": "", "tags": ["#ftp", "#file", "#naas_drivers", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-03", "description": "This notebook allows users to securely transfer files to a remote server using the File Transfer Protocol (FTP).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/FTP/FTP_Send_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/FTP/FTP_Send_file.ipynb", "imports": ["naas_drivers.ftp"], "image_url": ""}, {"objectID": "d81834f3139bb9d206b4f2e2248280d5de152a4eff80dd9c2012832b7080367f", "tool": "Faker", "notebook": "Anonymize Address from dataframe", "action": "", "tags": ["#faker", "#operations", "#snippet", "#database", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-09", "description": "This notebook provides a way to anonymize address data from a dataframe using the Faker library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Faker/Faker_Anonymize_Address_from_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Faker/Faker_Anonymize_Address_from_dataframe.ipynb", "imports": ["faker.Faker", "faker.Faker", "pandas"], "image_url": ""}, {"objectID": "58a9c428e21814107d47582ef149ba3f79b5f26652ec3e6540d894662f3dd956", "tool": "Faker", "notebook": "Anonymize Personal Names from dataframe", "action": "", "tags": ["#faker", "#operations", "#snippet", "#database", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-09", "description": "This notebook provides a way to anonymize personal names from a dataframe using the Faker library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Faker/Faker_Anonymize_Personal_Names_from_dataframe.ipynb", "imports": ["faker.Faker", "faker.Faker", "pandas"], "image_url": ""}, {"objectID": "4580c539c8dc22fe627c347782220eb1211d51d3ac534c0074061911c83afbab", "tool": "Folium", "notebook": "Add markers on map", "action": "", "tags": ["#folium", "#map", "#markers", "#snippet"], "author": "Florent Ravenel", "author_url": "www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook demonstrates how to add markers on a map using `folium`.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Folium/Folium_Add_markers_on_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Folium/Folium_Add_markers_on_map.ipynb", "imports": ["folium", "folium"], "image_url": ""}, {"objectID": "cccf6467c3889278ee01c94fc28e2e0c58a81c12959ef887209eb2206a85971c", "tool": "Folium", "notebook": "Build route maps", "action": "", "tags": ["#folium", "#maps", "#routes", "#python", "#visualization", "#data"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook will show how to use Folium to build route maps.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Folium/Folium_Build_route_maps.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Folium/Folium_Build_route_maps.ipynb", "imports": ["folium", "folium"], "image_url": ""}, {"objectID": "0b4cee6175ae01bdba70e486dae08388db62860db483724d3feb06a0fbe59a94", "tool": "Folium", "notebook": "Create map", "action": "", "tags": ["#folium", "#map", "#leaflet", "#snippet"], "author": "Florent Ravenel", "author_url": "www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook creates a map with Folium and Leaflet.js.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Folium/Folium_Create_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Folium/Folium_Create_map.ipynb", "imports": ["folium", "folium"], "image_url": ""}, {"objectID": "92843af029dccefb840512cc32f2146422288d20bf883643c3012da6da46c604", "tool": "Forecast", "notebook": "List all assignments", "action": "", "tags": ["#forecast", "#assignments", "#api", "#list", "#python", "#get"], "author": "Landry Christensen", "author_url": "https://github.com/lchristensen6", "updated_at": "2023-08-08", "created_at": "2023-08-08", "description": "This notebook will list all assignments from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Forecast/Forecast_List_all_assignments.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_assignments.ipynb", "imports": ["requests", "pandas", "naas", "datetime"], "image_url": ""}, {"objectID": "ec42b7671812e53369957d3aed72789a828f597c008d8b93070df4e423e92c8c", "tool": "Forecast", "notebook": "List all clients", "action": "", "tags": ["#forecast", "#clients", "#api", "#list", "#python", "#get"], "author": "Landry Christensen", "author_url": "https://github.com/lchristensen6", "updated_at": "2023-08-08", "created_at": "2023-08-08", "description": "This notebook will list all clients from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Forecast/Forecast_List_all_clients.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_clients.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "1e3981cbb25a39575b8a02a7f99ced455da1778da4ea90bffc9e80a5fc67ae76", "tool": "Forecast", "notebook": "List all people", "action": "", "tags": ["#forecast", "#people", "#api", "#list", "#python", "#get"], "author": "Landry Christensen", "author_url": "https://github.com/lchristensen6", "updated_at": "2023-08-07", "created_at": "2023-08-07", "description": "This notebook will list all people from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Forecast/Forecast_List_all_people.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_people.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "f0fba9e2e8ab797314e1454cd85c86759be2856b0c0fffa55a916148ae49d9b3", "tool": "Forecast", "notebook": "List all projects", "action": "", "tags": ["#forecast", "#projects", "#api", "#list", "#python", "#get"], "author": "Landry Christensen", "author_url": "https://github.com/lchristensen6", "updated_at": "2023-08-08", "created_at": "2023-08-08", "description": "This notebook will list all projects from the forecast API. Forecast is a service that connects to harvest and allows you to plan for allocations to harvest projects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Forecast/Forecast_List_all_projects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Forecast/Forecast_List_all_projects.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "25c79c072793ed9689fec890977052fa9dd7977df1e8fb6e9832aa77df17f10f", "tool": "Formant", "notebook": "Query Device Network", "action": "", "tags": ["#formant", "#matplotlib", "#notification", "#email", "#image"], "author": "Nicolas Binford", "author_url": "https://www.linkedin.com/in/nicolasbinford", "updated_at": "2023-05-25", "created_at": "2023-05-25", "description": "This notebook queries network data over a period of time from a Formant device, graphs it, and emails the images.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Formant/Formant_Query_Device_Network.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Formant/Formant_Query_Device_Network.ipynb", "imports": ["datetime.datetime, timedelta", "dateutil.parser", "numpy", "matplotlib.pyplot", "os", "naas", "formant.sdk.cloud.v2.Client", "formant.sdk.cloud.v2.formant_admin_api_client.models.device_query.(", "formant.sdk.cloud.v2.formant_admin_api_client.models.event_query.(", "formant.sdk.cloud.v2.formant_admin_api_client.models.event_list_response.(", "formant.sdk.cloud.v2.formant_query_api_client.models.query.Query"], "image_url": ""}, {"objectID": "afb1d171e3d6d01f64e538e5218cb05bcb151bbf7b3bdc4aede393413b6795d8", "tool": "Geopy", "notebook": "Calculate distance between two locations in kilometers", "action": "", "tags": ["#geopy", "#distance", "#navigation", "#snippet"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook demonstrates how to calculate distance between two locations in kilometers using `geopy`.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Calculate_distance_between_two_locations_in_km.ipynb", "imports": ["geopy.geocoders.Nominatim", "geopy.distance.geodesic"], "image_url": ""}, {"objectID": "63101b2ad458f9d789b07b0da6879d15330e9333534fcf1bfa68256633388959", "tool": "Geopy", "notebook": "Calculate distance between two locations in miles", "action": "", "tags": ["#geopy", "#distance", "#navigation", "#snippet"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook demonstrates how to calculate distance between two locations in miles using `geopy`.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Calculate_distance_between_two_locations_in_miles.ipynb", "imports": ["geopy.geocoders.Nominatim", "geopy.distance.geodesic"], "image_url": ""}, {"objectID": "993ce0d908ba89f3ea2afcdec012b379878997c9398eb0fd49ef9cfb39647805", "tool": "Geopy", "notebook": "Display markers on map from addresses", "action": "", "tags": ["#geopy", "#folium", "#operations", "#navigation"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook demonstrates how to display markers on a map from addresses using `geopy` and `folium`.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Geopy/Geopy_Display_markers_on_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Display_markers_on_map.ipynb", "imports": ["geopy.geocoders.Nominatim", "folium", "folium"], "image_url": ""}, {"objectID": "1c652e1306432bebf00b0ff980057b2b61e37ea66a9f78d36593e441fadda873", "tool": "Geopy", "notebook": "Display route itinerary between two locations", "action": "", "tags": ["#geopy", "#folium", "#polyline", "#googlemaps", "#itinerary", "#navigation"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook demonstrates how to display a route initnerary between two locations using `geopy`, `folium`, `polyline` and Google Maps API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Display_route_itinerary_between_two_locations.ipynb", "imports": ["geopy.geocoders.Nominatim", "polyline", "folium", "naas", "requests"], "image_url": ""}, {"objectID": "63fd46f3d47b86684983e648b8ce1b52533ad5e25df8521927f614d42973c09e", "tool": "Geopy", "notebook": "Get address from coordinates", "action": "", "tags": ["#geopy", "#coordinates", "#address", "#navigation", "#snippet"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook demonstrates how to utilize Geopy to convert a location(latitude and longitude) to its corresponding address.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Geopy/Geopy_Get_address_from_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Get_address_from_coordinates.ipynb", "imports": ["geopy.geocoders.Nominatim"], "image_url": ""}, {"objectID": "e58363280d4ff558e10c90bb9294d8ad7f0467db115d5dca1be059dc911939f5", "tool": "Geopy", "notebook": "Get coordinates from address", "action": "", "tags": ["#geopy", "#coordinates", "#address", "#navigation", "#snippet"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook demonstrates how to utilize Geopy to the coordinates(longitude and latitude) of a given address.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Geopy/Geopy_Get_coordinates_from_address.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Geopy/Geopy_Get_coordinates_from_address.ipynb", "imports": ["geopy.geocoders.Nominatim"], "image_url": ""}, {"objectID": "b8a92a0e4b6e40db304564f999566443fb35e93df716ab4be5021aabba8230ee", "tool": "GitHub", "notebook": "Add new issues as page in Notion database", "action": "", "tags": ["#github", "#notion", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-05-12", "description": "This notebook allows users to add new GitHub issues as pages in a Notion database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_new_issues_as_page_in_Notion_database.ipynb", "imports": ["naas", "naas_drivers.notion, github"], "image_url": ""}, {"objectID": "bcda82e2ccc375448f59bfea7ab1cc6a9c5e3388650e69034914e132319a5924", "tool": "GitHub", "notebook": "Add new member to team", "action": "", "tags": ["#github", "#teams", "#snippet", "#operations", "#invitations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-05-07", "description": "This notebook provides instructions on how to add a new member to a GitHub team.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Add_new_member_to_team.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_new_member_to_team.ipynb", "imports": ["requests", "naas_drivers.github", "pandas", "naas"], "image_url": ""}, {"objectID": "10bd58b431807c01460f0309cd7ee2b2a7e2a61e38cbabc60c0fc2b439b9d309", "tool": "GitHub", "notebook": "Add or update team membership for a user", "action": "", "tags": ["#github", "#teams", "#members", "#api", "#rest", "#python"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-26", "created_at": "2023-04-18", "description": "This notebook add or update team membership for a user.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Add_or_update_team_membership_for_a_user.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "b8cc352b30977a358e1bb8128a3462f0e6385185fe45c76b5b5a83a702223d3f", "tool": "GitHub", "notebook": "Clone open branches from repository on my local", "action": "", "tags": ["#github", "#snippet", "#operations", "#repository", "#efficiency"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook streamlines your workflow by cloning open branches from a GitHub repository to your local machine, renaming the repository to match the branch name, and switching to the respective branch. This approach enhances efficiency by enabling you to work on multiple branches simultaneously without the need to constantly switch, thus avoiding conflicts. Before using this on Naas, ensure your SSH is properly configured (you can use the Naas_Configure_SSH.ipynb template for this).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_open_branches_from_repository_on_my_local.ipynb", "imports": ["os", "naas", "pandas", "requests"], "image_url": ""}, {"objectID": "9a285091900a306e1d94106e8130989f033c65589f2bc28dc7515436d73a5af4", "tool": "GitHub", "notebook": "Clone repository", "action": "", "tags": ["#github", "#snippet", "#operations", "#repository"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-09", "created_at": "2022-12-07", "description": "**References:**\n- [GitHub Documentation - Cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Clone_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_repository.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "ff694fb2b2ebce38feccd3e1bef21019cdb9994ae3cf4f6fdc0ab7e317c15f22", "tool": "GitHub", "notebook": "Clone repository and switch branch", "action": "", "tags": ["#github", "#clone", "#repository", "#branch", "#switch", "#git"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-09", "created_at": "2023-05-09", "description": "This notebook clones a branche from a GitHub repository to your local machine, rename the repository with the branch name, and switch to it to the designated branch. This approach enhances efficiency by enabling you to work on multiple branches simultaneously without the need to constantly switch, thus avoiding conflicts. Before using this on Naas, ensure your SSH is properly configured (you can use the Naas_Configure_SSH.ipynb template for this).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Clone_repository_and_switch_branch.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "6bba57317ecb03136235cc932153d2657c0ddffeb2ea0290584824b427ae4d76", "tool": "GitHub", "notebook": "Close issue", "action": "", "tags": ["#github", "#issues", "#update", "#rest", "#api", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-26", "created_at": "2022-03-18", "description": "This notebook explains how to close an issue on GitHub using the REST API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Close_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Close_issue.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "243aca01f02c1bd1deb2c0157c3fce1ea04ac03c9e2f8df73d9cd04128dafc90", "tool": "GitHub", "notebook": "Create Repo", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Kanishk Pareek", "author_url": "https://in.linkedin.com/in/kanishkpareek/", "updated_at": "2023-04-12", "created_at": "2023-02-28", "description": "This notebook provides instructions on how to create a repository on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_Repo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_Repo.ipynb", "imports": ["requests", "json"], "image_url": ""}, {"objectID": "cffce74b26b67e98eceee05e167b0db356b2dd610bd6e82d7a8e28e2c50398a9", "tool": "GitHub", "notebook": "Create an issue comment", "action": "", "tags": ["#github", "#issue", "#comment", "#api", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-26", "created_at": "2023-05-26", "description": "This notebook shows how to add a comment to an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_an_issue_comment.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_an_issue_comment.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "d735705c15fc17370b8e6a4cb688184c65210cbb249e2466dfa2b754b47b07b9", "tool": "GitHub", "notebook": "Create issue", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides instructions on how to create an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_issue.ipynb", "imports": ["github.Github"], "image_url": ""}, {"objectID": "58d4c2b5a700d444c161aa052156ca47ffb7642a2e44c771125cac9a6fe04edc", "tool": "GitHub", "notebook": "Create leaderboard of contributors", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#leaderboard", "#commitsPoints"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "updated_at": "2023-04-12", "created_at": "2023-02-01", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_leaderboard_of_contributors.ipynb", "imports": ["pandas", "plotly.express", "naas_drivers.github", "naas", "requests", "urllib.parse.urlencode"], "image_url": ""}, {"objectID": "8ae2c7c1e9a984b87050a86432e0e8d09f71f62e51e2bb84533b97ad4494e04d", "tool": "GitHub", "notebook": "Create newsletter based on repository activity", "action": "", "tags": ["#tool", "#naas_drivers", "#naas", "#scheduler", "#asset", "#snippet", "#automation", "#ai", "#newsletter"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "updated_at": "2023-04-12", "created_at": "2023-02-28", "description": "This notebook allows users to create newsletters based on their repository activity on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_newsletter_based_on_repository_activity.ipynb", "imports": ["naas_drivers.github", "naas", "markdown2", "IPython.core.display.display, HTML", "datetime", "pandas", "requests", "urllib.parse.urlencode"], "image_url": ""}, {"objectID": "13d50e7c0ca00c6a1963a5a2180ad159bd9cd0db2fd8143fbe18ca655d99dc4a", "tool": "GitHub", "notebook": "Create pull request", "action": "", "tags": ["#github", "#pygithub", "#pullrequest", "#create", "#assign", "#issue"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-09", "description": "This notebook creates a pull request using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_pull_request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_pull_request.ipynb", "imports": ["github", "github", "naas"], "image_url": ""}, {"objectID": "45e3c14a696be711aaa32ba00141daa87f830e1d23755fa0a4974ebf66cc81ef", "tool": "GitHub", "notebook": "Create repository on personal account", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Kanishk Pareek", "author_url": "https://in.linkedin.com/in/kanishkpareek/", "updated_at": "2023-04-12", "created_at": "2022-10-04", "description": "This notebook provides instructions on how to create a repository on a personal GitHub account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Create_repository_on_personal_account.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Create_repository_on_personal_account.ipynb", "imports": ["requests", "json"], "image_url": ""}, {"objectID": "7c337804978be615c8e4cf519d6575a8e16fe0b28e5c250c52393e3a5588e4d5", "tool": "GitHub", "notebook": "Delete an issue comment", "action": "", "tags": ["#github", "#issue", "#comment", "#api", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-26", "created_at": "2023-05-26", "description": "This notebook shows how to delete a comment to an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Delete_an_issue_comment.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Delete_an_issue_comment.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "dbff6f5f2fa8547e5d0a19beb2643be87b924ee91e01121e3d37985bac070cd8", "tool": "GitHub", "notebook": "Download Excel file from URL", "action": "", "tags": ["#github", "#excel", "#download", "#url", "#file", "#python"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-03-29", "description": "This notebook explains how to download an Excel file stored on a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Download_Excel_file_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_Excel_file_from_URL.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "328cf85beb39894413fcc4034f6c1a7deb5729e38b294307534bf49013c42ba5", "tool": "GitHub", "notebook": "Download file from url", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-24", "created_at": "2022-03-18", "description": "This notebook provides instructions on how to download a file from a URL using GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Download_file_from_url.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_file_from_url.ipynb", "imports": ["requests", "naas", "uuid", "urllib.parse"], "image_url": ""}, {"objectID": "1002d8195ec68aad7c2c4d45777ae51f859a5f5aaac8f2e7596fbf46203b65ff", "tool": "GitHub", "notebook": "Download repository from URL", "action": "", "tags": ["#github", "#download", "#repository", "#url", "#api", "#zip"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-10", "description": "This notebook explains how to download a repository from a URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Download_repository_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Download_repository_from_URL.ipynb", "imports": ["requests", "urllib", "os", "zipfile"], "image_url": ""}, {"objectID": "ac33d518bc759838d5a1b8a6392baae861e48fdde87d5d10539c3e8768ea2346", "tool": "GitHub", "notebook": "Follow stargazers trend", "action": "", "tags": ["#github", "#stars", "#stargazers", "#naas_drivers", "#operations", "#analytics", "#html", "#plotly", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook creates a linechart to follow the trend of stars received on a specific repository. A csv, html and png files will be created as output with the possibility to be shared with a naas asset link.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Follow_stargazers_trend.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Follow_stargazers_trend.ipynb", "imports": ["pandas", "datetime.datetime", "plotly.graph_objects", "naas_drivers.github", "naas"], "image_url": ""}, {"objectID": "320908ffbe4931be40be2e749cd53cef0ae7448e70673b5b014314e7535adf59", "tool": "GitHub", "notebook": "Get DataFrame with issue estimate from project view", "action": "", "tags": ["#github", "#dataframe", "#beautifulsoup", "#projectview", "#scraping", "#python"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook demonstrates how to retrieve a dataframe containing issue estimates from the project view using BeautifulSoup. Since GitHub's API doesn't offer a way to fetch issue estimates directly, this method allows us to obtain these estimates and generate statistics by assignee and iteration. To use this template, you must create a view with columns in the following order:\n- Issue Title\n- Assginees\n- Estimate\n- LinkedIn pull request", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_DataFrame_with_issue_estimate_from_project_view.ipynb", "imports": ["requests", "bs4.BeautifulSoup", "pandas", "IPython.display.display"], "image_url": ""}, {"objectID": "2d6e1a35712e37dcf78b873d165069cce01361f5c3800ddca0f1455a215c6bfd", "tool": "GitHub", "notebook": "Get Traffic Clones on repository", "action": "", "tags": ["#github", "#api", "#traffic", "#clones", "#plotly", "#linechart"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-08", "description": "This notebook will show how to get traffic clones on a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb", "imports": ["requests", "naas", "pprint.pprint", "pandas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "f9bebb30e5a9beff438ea68ecfd4766b58d80a7990a9a745ed628ab82c295b14", "tool": "GitHub", "notebook": "Get Traffic Views on repository", "action": "", "tags": ["#github", "#api", "#traffic", "#views", "#plotly", "#linechart", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-16", "description": "This notebook will show how to get traffic views on a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_Traffic_Views_on_repository.ipynb", "imports": ["requests", "naas", "pprint.pprint", "pandas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "c8a8977c13770d7cc1a9709d463a6c9b394b327ba768a497ede1e05dda40b7d7", "tool": "GitHub", "notebook": "Get a repository", "action": "", "tags": ["#github", "#pygithub", "#repository", "#get", "#rest", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-05", "description": "This notebook will show how to get a repository using pygithub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_a_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_a_repository.ipynb", "imports": ["naas", "github"], "image_url": ""}, {"objectID": "1626bc2443cb5ef3c6ac18d27f82fe1dfcdbc8845c38d45ca30b4f7eeaf7dbf2", "tool": "GitHub", "notebook": "Get active projects", "action": "", "tags": ["#github", "#projects", "#operations", "#snippet", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides an overview of active projects on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_active_projects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_active_projects.ipynb", "imports": ["naas_drivers.github"], "image_url": ""}, {"objectID": "f89b6e0c45286c0029ace95a4357a4d498a9b31f5c1625082e26eb2ff82e1bf7", "tool": "GitHub", "notebook": "Get commits from repository", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#plotly", "#linechart", "#operations", "#analytics", "#dataframe", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-09", "description": "This notebook provides a tutorial on how to retrieve a list of commits for a specific repository on GitHub using the GitHub API. It covers how to set up a personal access token for accessing the API, how to get commits using naas_drivers.github. The output returned is a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_commits_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_from_repository.ipynb", "imports": ["naas_drivers.github", "datetime.datetime", "naas"], "image_url": ""}, {"objectID": "4f2312393c84b6863a931e5e5af8c99bd0ea48b34dfeda84093855cca17b510e", "tool": "GitHub", "notebook": "List commits history from file path", "action": "", "tags": ["#github", "#commits", "#history", "#snippet", "#operations", "#tracking"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-03", "created_at": "2023-07-03", "description": "This notebook demonstrateshow to retrieve a list of commits containing a file path that exists in master branch.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_commits_history_from_file_path.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_history_from_file_path.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "19d43ffdcf1cb2f75a558259f7cfc3eed25577effd5690eb7a64e81cfacc9da9", "tool": "GitHub", "notebook": "Get commits ranking from repository", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#plotly", "#linechart", "#operations", "#analytics", "#dataframe", "#html"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a way to view the commit rankings of a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_commits_ranking_from_repository.ipynb", "imports": ["pandas", "plotly.express", "naas_drivers.github", "naas"], "image_url": ""}, {"objectID": "1128f006266221999d8fbaa49d9e373c698e9b5c08a0ecefbe8eaa41795d69ee", "tool": "GitHub", "notebook": "Get files added on pull request", "action": "", "tags": ["#github", "#pullrequest", "#files", "#merge", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-13", "description": "This notebook get the files added on a pull request using the GitHub API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_files_added_on_pull_request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_files_added_on_pull_request.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "c8b1218b10d5fedf3def66d9c7037ad6ee1b3b7f9bdb949ea73cce5d41dcf544", "tool": "GitHub", "notebook": "Get files changed on pull request", "action": "", "tags": ["#github", "#pullrequest", "#files", "#api", "#python", "#git"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-09", "description": "This notebook get the list of files changed on a pull request using the GitHub API. Files changed could be 'added', 'renamed' or 'removed'.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_files_changed_on_pull_request.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "bb644c3ac7177413c1f9b04a3a8d8d2f6d337072807baf2ec8dbe0af0192458c", "tool": "GitHub", "notebook": "Get issues from repo", "action": "", "tags": ["#github", "#repos", "#issues", "#operations", "#analytics", "#dataframe", "#html", "#plotly"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook allows users to retrieve issues from a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_issues_from_repo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_issues_from_repo.ipynb", "imports": ["naas_drivers.github"], "image_url": ""}, {"objectID": "f8b2a5b06ad0b1bc4d25de7e3aa1130a926d75e334885b7f4ad7abe3b774087d", "tool": "GitHub", "notebook": "Get most starred repos", "action": "", "tags": ["#github", "#repos", "#stars", "#snippet"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190", "updated_at": "2023-04-12", "created_at": "2022-06-06", "description": "This notebook provides a list of the most popular GitHub repositories based on the number of stars they have received.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_most_starred_repos.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_most_starred_repos.ipynb", "imports": ["requests", "pandas", "plotly.express", "naas"], "image_url": ""}, {"objectID": "bd51601dc7146cccf78e53232a470ddde08272706420c31e7494698e0fe8b38e", "tool": "GitHub", "notebook": "Get open pull requests", "action": "", "tags": ["#github", "#repos", "#pulls", "#PR", "#operations", "#analytics", "#plotly", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2023-03-09", "description": "This notebook retrieves pull requests from a repository URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_open_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_open_pull_requests.ipynb", "imports": ["naas_drivers.github", "naas"], "image_url": ""}, {"objectID": "567fd994f272de8dda30cabbcd7b893fea10b7cd949e94decd11cfa77224af3e", "tool": "GitHub", "notebook": "Get profile from user", "action": "", "tags": ["#github", "#user", "#profile", "#operations", "#snippet", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a way to retrieve a user's profile information from GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_profile_from_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_profile_from_user.ipynb", "imports": ["naas_drivers.github"], "image_url": ""}, {"objectID": "131faef4977e217b5cc7c313edb1d08a280bd20881389b14ed6a925bc25a3bab", "tool": "GitHub", "notebook": "Get profiles from teams", "action": "", "tags": ["#github", "#team", "#operations", "#snippet", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook allows users to retrieve profiles from teams on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_profiles_from_teams.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_profiles_from_teams.ipynb", "imports": ["naas_drivers.github"], "image_url": ""}, {"objectID": "cff3ad5e2da30b6e823aef6421cf3d08a71a70e60c8fde077ba9952f06c9624e", "tool": "GitHub", "notebook": "Get team membership for a user", "action": "", "tags": ["#github", "#teams", "#members", "#rest", "#api", "#python", "#snippet"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-26", "created_at": "2023-04-18", "description": "This notebook get team membership for a user. It will return a dictionary with the state, role and url of the membership.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_team_membership_for_a_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_team_membership_for_a_user.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "8a639940269e34df28bbdefbea42c889370febabbb161f8d5d31cc5772689c93", "tool": "GitHub", "notebook": "Get weekly commits from repository", "action": "", "tags": ["#github", "#repos", "#commits", "#stats", "#naas_drivers", "#plotly", "#linechart", "#operations", "#analytics", "#dataframe", "#html"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a weekly summary of commits made to a GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Get_weekly_commits_from_repository.ipynb", "imports": ["pandas", "plotly.express", "naas_drivers.github", "naas"], "image_url": ""}, {"objectID": "5494d12097ff82773cb0889f21a3f00dc84f32169f334038fc77493d818710ef", "tool": "GitHub", "notebook": "List all pull requests", "action": "", "tags": ["#github", "#pygithub", "#repo", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-09", "description": "This notebook list all pull requests from a repository name using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_all_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_all_pull_requests.ipynb", "imports": ["os", "json", "github.Github", "naas"], "image_url": ""}, {"objectID": "9c502c94394240a77a6261022e61b720843f587f1694bc5067f24e85ca04b1cf", "tool": "GitHub", "notebook": "List branches", "action": "", "tags": ["#github", "#branches", "#list", "#api", "#rest", "#python"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-26", "created_at": "2023-06-20", "description": "This notebook will list all branches from a given GitHub repository;", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_branches.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_branches.ipynb", "imports": ["naas", "pandas", "github.Github", "github.Github", "pprint.pprint"], "image_url": ""}, {"objectID": "8f69f5fa373908c7173719e4b762a4944449492ad6b68e4fff8be0a5650d9fe2", "tool": "GitHub", "notebook": "List branches with open PR", "action": "", "tags": ["#github", "#branches", "#list", "#api", "#rest", "#python", "#active"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-26", "created_at": "2023-06-26", "description": "This notebook will list branches with open PR from a given GitHub repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_branches_with_open_PR.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_branches_with_open_PR.ipynb", "imports": ["naas", "pandas", "requests", "pprint.pprint"], "image_url": ""}, {"objectID": "087ed8be214fa3812d0506587434b69b44b3c162378979f98d3ac937c1609f9d", "tool": "GitHub", "notebook": "List closed pull requests", "action": "", "tags": ["#github", "#pygithub", "#closedpr", "#repo", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-09", "description": "This notebook list closed pull requests from a repository name using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_closed_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_closed_pull_requests.ipynb", "imports": ["os", "json", "github.Github", "naas"], "image_url": ""}, {"objectID": "0acd7acb64f20d87ed237d4c909f9743978f067f9d98836c6ff364c577fa8d3b", "tool": "GitHub", "notebook": "List issue comments", "action": "", "tags": ["#github", "#issue", "#comment", "#api", "#python", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-26", "created_at": "2023-05-26", "description": "This notebook shows how to list comments from an issue on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_issue_comments.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_issue_comments.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "09d2ca4100cec4201ff843f1c383df5e6e7f88a4dc162fc65c8bf0d33675bd6e", "tool": "GitHub", "notebook": "List open pull requests", "action": "", "tags": ["#github", "#pygithub", "#repo", "#api", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-09", "description": "This notebook list open pull requests from a repository name using pygithub library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_open_pull_requests.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_open_pull_requests.ipynb", "imports": ["os", "json", "github.Github", "naas"], "image_url": ""}, {"objectID": "91d4843ef8544aef83848c962ab6e38be11682c7ef728a1a9e2f10abd65cae9e", "tool": "GitHub", "notebook": "List organization repositories", "action": "", "tags": ["#github", "#pygithub", "#list", "#organization", "#repositories"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-05", "description": "This notebook will show how to list organization repositories using pygithub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_organization_repositories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_organization_repositories.ipynb", "imports": ["naas", "github"], "image_url": ""}, {"objectID": "9402c5818d40c9a1056603298a6ece7b054a8313e93aa96e3a08670d775334b7", "tool": "GitHub", "notebook": "List pending team invitations", "action": "", "tags": ["#github", "#teams", "#invitations", "#rest", "#api", "#list", "#snippet"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-19", "created_at": "2023-04-18", "description": "This notebook will show how to list pending team invitations using the GitHub REST API and will create a DataFrame as output. It can be used by organizations with multiple teams on GitHub to keep track of pending team invitations, ensuring that all team members are added to the appropriate teams and can collaborate effectively. It helps in managing team membership and permissions for efficient collaboration within the organization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_pending_team_invitations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_pending_team_invitations.ipynb", "imports": ["requests", "naas", "pandas", "pprint.pprint"], "image_url": ""}, {"objectID": "2afff9452829305d478206c7df493312ed90cc027380628a2fa35705dc1246a0", "tool": "GitHub", "notebook": "List stargazers from repository", "action": "", "tags": ["#github", "#stars", "#stargazers", "#naas_drivers", "#operations", "#analytics", "#html", "#plotly", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook provides a way to retrieve the list of users who have starred a given GitHub repository and save it into a csv file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_stargazers_from_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_stargazers_from_repository.ipynb", "imports": ["naas_drivers.github", "naas"], "image_url": ""}, {"objectID": "cbb03445c11c8235ed502fd4031d9c94f68d15a70486cc4eae08329f546df285", "tool": "GitHub", "notebook": "List team members", "action": "", "tags": ["#github", "#teams", "#members", "#rest", "#api", "#list", "#snippet"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-19", "created_at": "2023-04-18", "description": "This notebook will demonstrate how to list team members using the GitHub REST API and will create a DataFrame as output. It can be used by organizations or repository owners to manage their teams on GitHub by listing the current team members. It helps in keeping track of team members, their roles, and permissions, enabling organizations to efficiently manage their teams and ensure that the right users have the appropriate access.\n\nDataFrame returned:\n- login': Represents the username or login name of the GitHub user.\n- 'id': Represents the unique identifier assigned to the GitHub user.\n- 'node_id': Represents the unique identifier for the GitHub user's profile as a node in the GitHub GraphQL API.\n- 'avatar_url': Represents the URL of the avatar (profile picture) of the GitHub user.\n- 'gravatar_id': Represents the unique identifier associated with the GitHub user's Gravatar profile.\n- 'url': Represents the URL of the GitHub user's profile.\n- 'html_url': Represents the HTML URL of the GitHub user's profile.\n- 'followers_url': Represents the URL for retrieving the list of followers of the GitHub user.\n- 'following_url': Represents the URL for retrieving the list of users that the GitHub user is following.\n- 'gists_url': Represents the URL for retrieving the list of gists created by the GitHub user.\n- 'starred_url': Represents the URL for retrieving the list of repositories starred by the GitHub user.\n- 'subscriptions_url': Represents the URL for retrieving the list of repositories subscribed to by the GitHub user.\n- 'organizations_url': Represents the URL for retrieving the list of organizations the GitHub user is a member of.\n- 'repos_url': Represents the URL for retrieving the list of repositories owned by the GitHub user.\n- 'events_url': Represents the URL for retrieving the list of events related to the GitHub user's activity.\n- 'received_events_url': Represents the URL for retrieving the list of events received by the GitHub user.\n- 'type': Represents the type of GitHub user, which can be 'User' or 'Organization'.\n- 'site_admin': Represents a boolean value indicating if the GitHub user has administrative privileges (true) or not (false) in the associated organization or repository.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_List_team_members.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_List_team_members.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "8591114911bf4f214706b00f87ba2c2ac8b8ac4af35a244bee65923f75841c03", "tool": "GitHub", "notebook": "Peform basic actions", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides instructions on how to use GitHub to perform basic tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Peform_basic_actions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Peform_basic_actions.ipynb", "imports": ["git_lib.Git"], "image_url": ""}, {"objectID": "cd80d6b09a931a9e136faa98ec7db9b739b3d2f198222dc8b96f947b56d9cadc", "tool": "GitHub", "notebook": "Read issue", "action": "", "tags": ["#github", "#productivity", "#code", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides instructions on how to read and understand issues on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Read_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Read_issue.ipynb", "imports": ["github.Github", "pandas"], "image_url": ""}, {"objectID": "1d105e6fd6ce6afd43b108739842b18b3af440c768cd23db3fa62d9ddf6521e3", "tool": "GitHub", "notebook": "Remove directories with branches closed on my local", "action": "", "tags": ["#github", "#branches", "#list", "#api", "#rest", "#python", "#active"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook facilitates the removal of directories associated with branches on your local machine. If you need to clone and create directories based on active branches, you can use either of the following notebooks: GitHub_Clone_open_branches_from_repository_on_my_local or GitHub_Clone_repository_and_switch_branch.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_directories_with_branches_closed_on_my_local.ipynb", "imports": ["naas", "pandas", "requests", "shutil", "os", "datetime.datetime, timedelta"], "image_url": ""}, {"objectID": "332448e5948d4198f461223f9937a1ce1cd7912fa7df229fa71a2f3121d80949", "tool": "GitHub", "notebook": "Remove member from team", "action": "", "tags": ["#github", "#teams", "#snippet", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-05-07", "description": "This notebook provides instructions on how to remove a member from a GitHub team.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Remove_member_from_team.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_member_from_team.ipynb", "imports": ["requests", "naas_drivers.github"], "image_url": ""}, {"objectID": "fdcbabe75aaf3e5fb4fdd20389fa8f467d45d1bdb07f1bdd792b851b3747da63", "tool": "GitHub", "notebook": "Remove team membership for a user", "action": "", "tags": ["#github", "#teams", "#members", "#remove", "#api", "#rest"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-26", "created_at": "2023-04-19", "description": "This notebook explains how to remove team membership for a user. It is usefull for organizations that need to manage their team memberships.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Remove_team_membership_for_a_user.ipynb", "imports": ["requests", "json"], "image_url": ""}, {"objectID": "34d8e5474a94719c1703516d66d3e99cbaaada2b84c29f116ea81516710e5783", "tool": "GitHub", "notebook": "Reopen issue", "action": "", "tags": ["#github", "#issues", "#update", "#rest", "#api", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-26", "created_at": "2023-05-26", "description": "This notebook explains how to reopened an issue on GitHub using the REST API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Reopen_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Reopen_issue.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "3d075044a53de36f530c33cdb1aec8ba83ab4108b44d2584062e37c5344cb45e", "tool": "GitHub", "notebook": "Send contributor activity on slack", "action": "", "tags": ["#github", "#activity", "#update", "#api", "#snippet", "#operations", "#slack"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-28", "created_at": "2023-06-16", "description": "This notebook demonstrates how to send GitHub activity of a contributor of awesome notebook templates to Slack. It includes the sections below:\n- \u2705 **Templates created:** the total number of templates created (overall, by month, by week).\n- \ud83d\udc40 **In review:** the number of PRs ready reviewed. Make sure you made a comment with **\"Ready to review\"** inside the PR.\n- \ud83c\udfd7 **In progress:** the current PRs you are working on.\n- \ud83d\udccb **Backlog:** the issues you are assigned to with no PRs opened.\n\n*NB: Execution time may takes between 2 to 5 min.*", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Send_contributor_activity_on_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_contributor_activity_on_slack.ipynb", "imports": ["os", "json", "datetime.datetime", "github.Github", "naas", "pandas", "requests", "naas_drivers.slack", "warnings"], "image_url": ""}, {"objectID": "9c57f872a50f25acbb10c6400142ac1e874a1c4b7d26c38e6efc0c4b819bb16f", "tool": "GitHub", "notebook": "Send stargazers to Google Sheets", "action": "", "tags": ["#github", "#stars", "#stargazers", "#googlesheets", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-23", "description": "This notebook will show how to send GitHub stargazers from a given repository to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_stargazers_to_Google_Sheets.ipynb", "imports": ["naas_drivers.github, gsheet", "naas"], "image_url": ""}, {"objectID": "c10a991b52bbeb12828cfcc922d3d1126bc807071ecf6038d593adbe94fbc6e8", "tool": "GitHub", "notebook": "Send template maintainer monthly report", "action": "", "tags": ["#github", "#issues", "#merged", "#rest", "#api", "#snippet", "#operations", "#email", "#awesomenotebooks", "#maintainer"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook retrieves data to ascertain the sponsorships provided by Naas for template maintainers and dispatches a notification on every 7th day of the month, as well as the last three days. It incorporates the monthly count of issue closed with estimates, and the number of Pull Requests reviewed within the month.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_template_maintainer_monthly_report.ipynb", "imports": ["pandas", "github.Github", "datetime.datetime, timezone", "requests", "bs4.BeautifulSoup", "IPython.display.display, HTML", "numpy", "datetime.datetime", "naas", "naas_drivers.naasauth, emailbuilder", "warnings"], "image_url": ""}, {"objectID": "7b2207634faad3e18e2a4179115d4b835a53bed640a16cccc0c7e8d740a7970f", "tool": "GitHub", "notebook": "Send templates created on a notebooks to Slack channel", "action": "", "tags": ["#github", "#templates", "#created", "#rest", "#api", "#snippet", "#operations", "#slack"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-11", "created_at": "2023-07-11", "description": "This notebook demonstrates how to send the templates created on GitHub to a specific Slack channel. It includes the sections below:\n\n- \u2705 **Templates created:** the total number of templates created (overall, by month, by week).\n- \ud83d\udcca **Bar chart:** a barchart of the templates created the last 8 weeks\n\n*NB: Execution time may takes between 1 to 4 min.*", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Send_templates_created_on_a_notebooks_to_Slack_channel.ipynb", "imports": ["github.Github", "naas", "pandas", "naas_drivers.slack", "plotly.graph_objects", "datetime.datetime, timedelta, date", "warnings"], "image_url": ""}, {"objectID": "7afaaedd1fb202006ad3861d87fc8671e703e8ab3af059d97fd4c95fc4e61601", "tool": "GitHub", "notebook": "Track issues on projects", "action": "", "tags": ["#github", "#repos", "#issues", "#operations", "#analytics", "#csv", "#plotly"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-04-12", "description": "This notebook allows users to track and manage issues related to their projects on GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Track_issues_on_projects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Track_issues_on_projects.ipynb", "imports": ["plotly.express", "naas_drivers.github"], "image_url": ""}, {"objectID": "e6462e6eaca51db7dbf96bbd6be22be706fa160145a35d73671984ccb506f093", "tool": "GitHub", "notebook": "Track notebooks created over time", "action": "", "tags": ["#github", "#repos", "#commits", "#notebooks", "#operations", "#analytics", "#html", "#plotly", "#csv", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook allows users to track changes to their notebooks over time using GitHub.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Track_notebooks_created_over_time.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Track_notebooks_created_over_time.ipynb", "imports": ["pandas", "requests", "os", "naas_drivers.github", "plotly.graph_objects", "pydash", "urllib.parse.urlencode", "datetime.datetime, timedelta", "naas"], "image_url": ""}, {"objectID": "e188766003d17aa7cd99e2ba165f5eee5b6fabb6336e759d7a1271f0f99dbefd", "tool": "GitHub", "notebook": "Update issue", "action": "", "tags": ["#github", "#issues", "#update", "#rest", "#api", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-26", "created_at": "2023-05-26", "description": "This notebook explains how to update an issue on GitHub using the REST API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/GitHub/GitHub_Update_issue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/GitHub/GitHub_Update_issue.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "fa79dae352658caaec4422cf9d3df4cb3f10675a6b3d3f8323ec98354f5504af", "tool": "Gmail", "notebook": "Automate response from keywords in mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Sanjay Sabu", "author_url": "https://www.linkedin.com/in/sanjay-sabu-4205/", "updated_at": "2023-05-18", "created_at": "2021-04-20", "description": "This notebook automates the process of responding to emails in Gmail based on keywords found in the mailbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Automate_response_from_keywords_in_mailbox.ipynb", "imports": ["naas", "naas_drivers.email", "re.search"], "image_url": ""}, {"objectID": "2b5e18eec609ef0127f4d6d9be1802a2283fec60a598d654b98535b6bcd321ce", "tool": "Gmail", "notebook": "Clean mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-12", "created_at": "2021-04-14", "description": "This notebook helps you quickly and easily organize your Gmail inbox by removing unwanted emails.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Clean_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Clean_mailbox.ipynb", "imports": ["naas", "naas_drivers.email", "pandas", "numpy", "plotly.express"], "image_url": ""}, {"objectID": "78ce50f9ba2a77f6308dbeb62b15c57fd5db2e92ecb652d13658246a50ead748", "tool": "Gmail", "notebook": "Create GitHub issue on specific email", "action": "", "tags": ["#gmail", "#github", "#email", "#issue", "#create", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-18", "created_at": "2023-05-17", "description": "This notebook will show how to create a GitHub issue from a specific email using Gmail and Python. It is usefull for organizations that need to track emails and create issues from them.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Create_GitHub_issue_on_specific_email.ipynb", "imports": ["naas", "naas_drivers.email", "re.search", "pandas", "requests"], "image_url": ""}, {"objectID": "4eeb57ee19493997c46d04f94059ef5c2bd3f809491461cfe8c8c065d7d75921", "tool": "Gmail", "notebook": "Create draft email", "action": "", "tags": ["#gmail", "#email", "#draft", "#create", "#python", "#library"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-05-19", "created_at": "2023-05-16", "description": "This notebook will show how to create a draft email using the Gmail API. It is usefull for organizations that need to automate the creation of emails.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Create_draft_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Create_draft_email.ipynb", "imports": ["naas", "googleapiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "google.auth.transport.requests.Request", "pickle", "datetime", "os.path", "base64", "email.mime.text.MIMEText", "email.mime.multipart.MIMEMultipart"], "image_url": ""}, {"objectID": "cf0d71ca4f2f41fa0272cbf9fbe3b1e890e7c4968b3a9f57478f8d65e40f60e8", "tool": "Gmail", "notebook": "Delete email from mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook allows you to update an email status in your Gmail inbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Delete_email_from_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Delete_email_from_mailbox.ipynb", "imports": ["naas", "naas_drivers.email"], "image_url": ""}, {"objectID": "c2c64b6f6dd2e5281a3730230214ff3d877fea2309eb0b74ddeae27e331cac8a", "tool": "Gmail", "notebook": "Get emails by date", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#analytics", "#plotly"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-07", "created_at": "2023-07-07", "description": "This notebook provides an example of how to retrieve emails based on a specified date or filter them by 'before' or 'after' a given date. It demonstrates the process of fetching emails using date-based criteria for more targeted email retrieval.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_emails_by_date.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_emails_by_date.ipynb", "imports": ["naas", "naas_drivers.email", "pandas", "numpy", "plotly.express", "datetime.date"], "image_url": ""}, {"objectID": "9d0515a1c77f00567dfb9833c75af19c3c9b24efd7b7a6e0a6d53ef0de00fcd0", "tool": "Gmail", "notebook": "Get emails stats by sender", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook allows users to get stats from their emailbox by sender.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_emails_stats_by_sender.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_emails_stats_by_sender.ipynb", "imports": ["naas", "naas_drivers.email", "pandas", "numpy", "plotly.express"], "image_url": ""}, {"objectID": "3cc6c378e11b85f9191dac73c7c0f5f5118c8f9f96af0926e9d688849b470db8", "tool": "Gmail", "notebook": "Get most common senders", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#analytics", "#plotly"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-19", "created_at": "2023-07-19", "description": "This notebook analyses users' inbox, identifies a list of the most common senders depending on the emails for the set period of time, and outputs the list of most common senders.\nThis notebook aims to identify unwanted subscriptions or emails that Gmail didn't successfully filter as \"Spam.\"", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_most_common_senders.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_most_common_senders.ipynb", "imports": ["datetime", "os", "imapclient.IMAPClient", "naas", "collections.Counter", "quopri", "email.header"], "image_url": ""}, {"objectID": "714810e2c13b0614a2e4dcca2ea5dade6fb7472a230e20e2bada4b75a1882fee", "tool": "Gmail", "notebook": "Get most important unseen emails", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#automation", "#analytics", "#plotly"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-19", "created_at": "2023-07-19", "description": "This notebook retrieves all emails for a set period of time and calculates the user's reply rate to each sender. By identifying the important senders with a higher reply rate, the code helps prioritize the user's responses and ensures timely communication. The code then outputs the list of unseen emails from these important senders, providing a focused view of the most relevant and pending email conversations.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_most_important_unseen_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_most_important_unseen_emails.ipynb", "imports": ["datetime", "os", "imapclient.IMAPClient", "imapclient.IMAPClient", "naas", "collections.Counter", "quopri", "email.header"], "image_url": ""}, {"objectID": "e8855875aba10e1d9817664191d5f2ae82c89b8addef409700da4edb5c174f1c", "tool": "Gmail", "notebook": "Get seen emails", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook allows you to read your Gmail inbox and get the seen emails. It returns a dataframe as follow:\n- uid: This column represents the unique identifier associated with each row or email in the dataframe.\n- subject: The subject column contains the subject line or title of the email.\n- from: The \"from\" column contains information about the sender of the email. It includes the email address and name of the sender.\n- to: The \"to\" column contains information about the primary recipients of the email. It includes the email addresses and names of the recipients.\n- cc: The \"cc\" column represents the carbon copy recipients of the email. It contains a list of email addresses and names of the cc'd recipients.\n- bcc: The \"bcc\" column contains the blind carbon copy recipients of the email. Similar to the \"cc\" column, it includes a list of email addresses and names.\n- reply_to: This column contains the email addresses and names that should be used when replying to the email.\n- date: The \"date\" column indicates the date and time when the email was sent.\n- text: The \"text\" column contains the plain text content of the email.\n- html: The \"html\" column includes the HTML-formatted content of the email.\n- flags: The \"flags\" column represents any flags or indicators associated with the email, such as important, starred, etc.\n- headers: This column contains additional headers of the email, such as the \"delivered-to,\" \"received,\" and \"X-Google-Smtp-Source\" headers.\n- size_rfc822: The \"size_rfc822\" column indicates the size of the email in RFC822 format.\n- size: The \"size\" column represents the size of the email in bytes.\n- obj: The \"obj\" column contains the object representation of the email.\n- attachments: This column includes any attachments associated with the email, such as files, images, etc.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_seen_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_seen_emails.ipynb", "imports": ["naas", "naas_drivers.email"], "image_url": ""}, {"objectID": "c05ec3727f7f634fa76664cc32f3de7e7cae8ef27a4b8abf2f2eb444406359dc", "tool": "Gmail", "notebook": "Get unseen emails", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook allows you to read your Gmail inbox and get the unseen emails. It returns a dataframe as follow:\n- uid: This column represents the unique identifier associated with each row or email in the dataframe.\n- subject: The subject column contains the subject line or title of the email.\n- from: The \"from\" column contains information about the sender of the email. It includes the email address and name of the sender.\n- to: The \"to\" column contains information about the primary recipients of the email. It includes the email addresses and names of the recipients.\n- cc: The \"cc\" column represents the carbon copy recipients of the email. It contains a list of email addresses and names of the cc'd recipients.\n- bcc: The \"bcc\" column contains the blind carbon copy recipients of the email. Similar to the \"cc\" column, it includes a list of email addresses and names.\n- reply_to: This column contains the email addresses and names that should be used when replying to the email.\n- date: The \"date\" column indicates the date and time when the email was sent.\n- text: The \"text\" column contains the plain text content of the email.\n- html: The \"html\" column includes the HTML-formatted content of the email.\n- flags: The \"flags\" column represents any flags or indicators associated with the email, such as important, starred, etc.\n- headers: This column contains additional headers of the email, such as the \"delivered-to,\" \"received,\" and \"X-Google-Smtp-Source\" headers.\n- size_rfc822: The \"size_rfc822\" column indicates the size of the email in RFC822 format.\n- size: The \"size\" column represents the size of the email in bytes.\n- obj: The \"obj\" column contains the object representation of the email.\n- attachments: This column includes any attachments associated with the email, such as files, images, etc.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Get_unseen_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Get_unseen_emails.ipynb", "imports": ["naas", "naas_drivers.email"], "image_url": ""}, {"objectID": "a2209f3b3f09d821c3270ef170323d3ab2583d4a1c9eb628e3862e887382d6c0", "tool": "Gmail", "notebook": "Mark emails as seen by dates", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook goes through the emails within the date range set by the user and marks them all as seen.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Mark_emails_as_seen_by_dates.ipynb", "imports": ["naas", "imaplib", "email", "datetime.date", "imapclient.IMAPClient", "imapclient.IMAPClient"], "image_url": ""}, {"objectID": "271cd524edb23b21e977fab95d1defea1649ae0caa2dc08f666f1c6e25d6b020", "tool": "Gmail", "notebook": "Read mailbox", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu", "updated_at": "2023-05-12", "created_at": "2021-04-15", "description": "This notebook allows you to read your Gmail inbox and returns a dataframe:\n- uid: This column represents the unique identifier associated with each row or email in the dataframe.\n- subject: The subject column contains the subject line or title of the email.\n- from: The \"from\" column contains information about the sender of the email. It includes the email address and name of the sender.\n- to: The \"to\" column contains information about the primary recipients of the email. It includes the email addresses and names of the recipients.\n- cc: The \"cc\" column represents the carbon copy recipients of the email. It contains a list of email addresses and names of the cc'd recipients.\n- bcc: The \"bcc\" column contains the blind carbon copy recipients of the email. Similar to the \"cc\" column, it includes a list of email addresses and names.\n- reply_to: This column contains the email addresses and names that should be used when replying to the email.\n- date: The \"date\" column indicates the date and time when the email was sent.\n- text: The \"text\" column contains the plain text content of the email.\n- html: The \"html\" column includes the HTML-formatted content of the email.\n- flags: The \"flags\" column represents any flags or indicators associated with the email, such as important, starred, etc. Possible value for flag: 'SEEN', 'ANSWERED', 'FLAGGED', 'DELETED', 'DRAFT', 'RECENT'\n- headers: This column contains additional headers of the email, such as the \"delivered-to,\" \"received,\" and \"X-Google-Smtp-Source\" headers.\n- size_rfc822: The \"size_rfc822\" column indicates the size of the email in RFC822 format.\n- size: The \"size\" column represents the size of the email in bytes.\n- obj: The \"obj\" column contains the object representation of the email.\n- attachments: This column includes any attachments associated with the email, such as files, images, etc.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Read_mailbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Read_mailbox.ipynb", "imports": ["naas", "naas_drivers.email"], "image_url": ""}, {"objectID": "8f12ba6e2beed9a59f7b18f42a101ad2d7336041f95eb7e5bd50bb09f6052184", "tool": "Gmail", "notebook": "Send email", "action": "", "tags": ["#gmail", "#email", "#send", "#python", "#library", "#smtplib"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook will show how to send an email using naas_drivers. It is usefull for organizations that need to send emails from their Gmail account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Send_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Send_email.ipynb", "imports": ["naas", "naas_drivers.email"], "image_url": ""}, {"objectID": "d292b17e6643b9537f5b4f295149979d2c5b081a8e0ab0f0d3ab78bb5c1bfddd", "tool": "Gmail", "notebook": "Update email flag", "action": "", "tags": ["#gmail", "#productivity", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook allows you to update an email flag in your Gmail inbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Gmail/Gmail_Update_email_flag.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Gmail/Gmail_Update_email_flag.ipynb", "imports": ["naas", "naas_drivers.email"], "image_url": ""}, {"objectID": "104108f1cfc4292347929774d2c5e72f8691076a4e1576cd5d3e52a752c9520c", "tool": "Google Analytics", "notebook": "Follow average session duration daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-04-22", "description": "This notebook provides a daily overview of the average session duration for a website tracked with Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_average_session_duration_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "9c612681622da896898b8d2e1234a00856e1515c326db064afae2d84fa7eb702", "tool": "Google Analytics", "notebook": "Follow number of new visitors daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-04-22", "description": "This notebook tracks the daily number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "3fe7b4b211e6b581b521cf3dc9a9ed7c4a9a81e4c89f957444b5d04ec985ca33", "tool": "Google Analytics", "notebook": "Follow number of new visitors hourly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the hourly number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_hourly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "b8a4989937c8ebbec020312fc8d1e7bd427af1ca3f45a9afb9b5c83c55abc1c3", "tool": "Google Analytics", "notebook": "Follow number of new visitors monthly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the monthly number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_monthly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "5b7788ab05dab3b644afdcb2d321dbf68370269934b6d4d53e02331b0d6b8bd1", "tool": "Google Analytics", "notebook": "Follow number of new visitors weekly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the weekly number of new visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_new_visitors_weekly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "c936eb78a90ad7c2a2baf26fe6ccd941e1ae7d29b5853b89fbbd4d0bb3235ee0", "tool": "Google Analytics", "notebook": "Follow number of sessions daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-04-22", "description": "This notebook provides a daily overview of the number of sessions tracked by Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "32df9d633cd4afefc4274cc22048edf92136f7e26c238ec4aa6d593868d90017", "tool": "Google Analytics", "notebook": "Follow number of sessions hourly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the number of sessions on Google Analytics over the course of an hour.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_hourly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "3bdd912e77792584482b7d2b4f975959046378c261b29f97a4b2b65255b1475c", "tool": "Google Analytics", "notebook": "Follow number of sessions monthly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the monthly number of sessions on Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_monthly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "da843f31021b75f4fec31cc2deb7f06f955056d68c2045cf540597f6dd769591", "tool": "Google Analytics", "notebook": "Follow number of sessions weekly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the number of sessions on Google Analytics on a weekly basis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_sessions_weekly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "47b2f1e75d1576ff8090e484fd541f2fe88c07fd94a3ff71e1ab30bb29a426eb", "tool": "Google Analytics", "notebook": "Follow number of visitors daily", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-04-22", "description": "This notebook tracks the daily number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_daily.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "56bd24cb31d186f8cef0bddcfae15554b4f2212fabaf28ef9f232c37acaf5d9f", "tool": "Google Analytics", "notebook": "Follow number of visitors hourly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the hourly number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_hourly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "99e8d32201a65a79018137233c5e2b545ad46814a6de7617ea91a2c53cf918ff", "tool": "Google Analytics", "notebook": "Follow number of visitors monthly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the monthly number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_monthly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "05f3277c0413c03585c01a7b0f7a97cff58554756a85a014fa6ecd61fe5f0d6e", "tool": "Google Analytics", "notebook": "Follow number of visitors weekly", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#csv", "#html", "#plotly", "#image", "#png"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This notebook tracks the weekly number of visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Follow_number_of_visitors_weekly.ipynb", "imports": ["plotly.graph_objects", "naas", "datetime", "pandas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "9efbf241b3610e5a74d4d6c0a06e1364d12516ab32d4dd06960d4af38f317dbb", "tool": "Google Analytics", "notebook": "Get bounce rate", "action": "", "tags": ["#googleanalytics", "#bouncerate", "#plotly", "#linechart", "#naas_drivers", "#scheduler", "#asset", "#naas", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook provides an analysis of the bounce rate of a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_bounce_rate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_bounce_rate.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "fd0747c320e63718180faefdcd4021fd259514b20ba255a20a00aae4fc81a00c", "tool": "Google Analytics", "notebook": "Get pageview ranking", "action": "", "tags": ["#googleanalytics", "#pageviews", "#plotly", "#horizontalbarchart", "#naas_drivers", "#scheduler", "#asset", "#naas", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook provides a ranking of pageviews for a website using Google Analytics data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_pageview_ranking.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_pageview_ranking.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "eb4c394db4b8712ba495abae2c5eef6becfd0cfc413bf2463e82ab76f8c9b973", "tool": "Google Analytics", "notebook": "Get stats per country", "action": "", "tags": ["#googleanalytics", "#statspercountry", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html", "#plotly"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook provides a comprehensive analysis of website traffic by country using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_stats_per_country.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_stats_per_country.ipynb", "imports": ["pycountry", "pycountry", "plotly.graph_objects", "plotly.express", "naas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "b432939ab2679ed5875c113d75531e92776d116566343b19908714fa461a20c5", "tool": "Google Analytics", "notebook": "Get time on landing page", "action": "", "tags": ["#googleanalytics", "#timeonlanding", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html", "#plotly"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook provides an analysis of the amount of time visitors spend on a landing page using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_time_on_landing_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_time_on_landing_page.ipynb", "imports": ["datetime.timedelta", "pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "d07d75e8dd6ee9ce1a85c6a5909028184fd0a04a3030164ac5c6430a5f7e7b56", "tool": "Google Analytics", "notebook": "Get unique visitors", "action": "", "tags": ["#googleanalytics", "#getuniquevisitors", "#plotly", "#barchart", "#naas_drivers", "#scheduler", "#asset", "#naas", "#marketing", "#analytics", "#automation", "#image", "#csv", "#html"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook provides an analysis of unique visitors to a website using Google Analytics.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_unique_visitors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_unique_visitors.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "afb36fe72b75ccd000b3c821eabec5037797e3ea1064bce8e088ba44b82ed1d8", "tool": "Google Analytics", "notebook": "Get unique visitors by country", "action": "", "tags": ["#googleanalytics", "#statspercountry", "#analytics", "#marketing", "#dataframe"], "author": "Charles Demontigny", "author_url": "https://www.linkedin.com/in/charles-demontigny/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook provides a breakdown of unique visitors to a website by country using Google Analytics data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Get_unique_visitors_by_country.ipynb", "imports": ["plotly.graph_objects", "plotly.express", "naas", "naas_drivers.googleanalytics"], "image_url": ""}, {"objectID": "bf81d9bdc059f8647005c3dc6132525ff6c4e7be3881311851324030a9be3eb2", "tool": "Google Analytics", "notebook": "Send visitors traffic graph and trends prediction to Slack channel", "action": "", "tags": ["#googleanalytics", "#analytics", "#marketing", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maxime-jublou", "updated_at": "2023-04-12", "created_at": "2022-05-16", "description": "This notebook allows users to send Google Analytics visitor traffic graphs and trends predictions to a Slack channel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Analytics/Google_Analytics_Send_visitors_traffic_graph_and_trends_prediction_to_Slack_channel.ipynb", "imports": ["naas", "naas_drivers.googleanalytics", "naas_drivers.prediction", "naas_drivers.plotly", "naas_drivers.slack", "plotly.graph_objects", "pandas", "datetime.datetime", "json"], "image_url": ""}, {"objectID": "f28cb2cc683e6496c50f1a68829a0c527ee8e5af9091132ec5c0b87769aba753", "tool": "Google Calendar", "notebook": "Get calendar", "action": "", "tags": ["#googlecalendar", "#calendar", "#get", "#api", "#reference", "#v3"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook will demonstrate how to use the Google Calendar API to get metadata for a calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Calendar/Google_Calendar_Get_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Calendar/Google_Calendar_Get_calendar.ipynb", "imports": ["pprint.pprint", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "image_url": ""}, {"objectID": "7513483959a8c033cb93018a8f4a9eb29cbfbfcbef8eacd5d2f2b9f5dd48ef1c", "tool": "Google Calendar", "notebook": "List calendars", "action": "", "tags": ["#googlecalendar", "#calendarlist", "#list", "#api", "#python", "#reference"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook will demonstrate how to use the Google Calendar API to list the calendars on the user's calendar list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Calendar/Google_Calendar_List_calendars.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Calendar/Google_Calendar_List_calendars.ipynb", "imports": ["pprint.pprint", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "image_url": ""}, {"objectID": "a2db899b2d3b4a8407d9734bb11c66eb169b4a0a55b53fe65902049471de9fc7", "tool": "Google Calendar", "notebook": "List events from calendar", "action": "", "tags": ["#googlecalendar", "#calendar", "#events", "#list", "#api", "#python"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook will demonstrate how to use the Google Calendar API to list events from a calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Calendar/Google_Calendar_List_events_from_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Calendar/Google_Calendar_List_events_from_calendar.ipynb", "imports": ["pprint.pprint", "datetime.datetime", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "image_url": ""}, {"objectID": "4d62505c0b27fe497af44172fffb4bd8ca5ed2bcfcd1945d9434f00347ac442d", "tool": "Google Drive", "notebook": "Download file", "action": "", "tags": ["#googledrive", "#snippet", "#operations", "#naas"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook allows users to download files from their Google Drive account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Drive/Google_Drive_Download_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Drive/Google_Drive_Download_file.ipynb", "imports": ["gdown", "gdown"], "image_url": ""}, {"objectID": "7e5630a4f5744470a9195a186592bb24d9e9900acefba7d9a6ea179bedf905c7", "tool": "Google Maps", "notebook": "Calculate travel costs between two addresses", "action": "", "tags": ["#googlemaps", "#productivity", "#operations", "#automation", "#jupyternotebooks"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-26", "created_at": "2023-07-25", "description": "This notebook calculates the travel costs between two addresses using Google Maps API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Calculate_travel_costs_between_two_addresses.ipynb", "imports": ["os", "requests", "naas"], "image_url": ""}, {"objectID": "54859e1650428404cec4471aa488e37169ff7612eafb140d2ec610458085d181", "tool": "Google Maps", "notebook": "Connect to Routes API", "action": "", "tags": ["#googlemaps", "#productivity", "#operations", "#automation", "#jupyternotebooks"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-25", "created_at": "2023-07-25", "description": "This notebook is designed to perform several functions. Firstly, it acquires the necessary credentials that are required for API access. Then, it proceeds to configure the API endpoint URL. After setting up the URL, it establishes a secure connection between the client and the API. Finally, it validates the user's identity and permissions for interactions with the API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Maps/Google_Maps_Connect_to_Routes_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Connect_to_Routes_API.ipynb", "imports": ["os", "requests", "naas"], "image_url": ""}, {"objectID": "d41f3d68b8aab7d650b71042b444c5e5ebb1d8b4d3ca1487383f3c3aab62dc85", "tool": "Google Maps", "notebook": "Create and display distance matrix", "action": "", "tags": ["#googlemaps", "#productivity", "#operations", "#automation", "#jupyternotebooks"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-08-08", "created_at": "2023-08-08", "description": "This notebook shows how to use the Google Maps Distance Matrix API to determine distances and trip durations between a number of different origins and destinations, giving accurate and efficient geospatial data. Furthermore, it provides a visual representation of the created matrix.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Maps/Google_Maps_Create_and_display_distance_matrix.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Create_and_display_distance_matrix.ipynb", "imports": ["os", "requests", "naas", "folium", "googlemaps", "polyline", "geopy.geocoders.Nominatim"], "image_url": ""}, {"objectID": "cad8fb307d05f4ec0dcf9a7567bc7e5c2fc50a8ec0f9537ac26299130df2987a", "tool": "Google Maps", "notebook": "Create itinerary optimisation on differents waypoints", "action": "", "tags": ["#googlemaps", "#optimization", "#data", "#naas_drivers", "#operations", "#snippet", "#dataframe", "#google_maps_api", "#directions_api"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-08-08", "created_at": "2023-08-08", "description": "This template analyses a given set of waypoints, optimizes the order of visiting them, and outputs a list with the correct order. Thus, making it useful for travelers, who want to visit multiple locations most efficiently.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Create_itinerary_optimisation_on_differents_waypoints.ipynb", "imports": ["naas", "folium", "polyline", "polyline", "geopy.geocoders.Nominatim", "itertools.permutations", "googlemaps", "googlemaps"], "image_url": ""}, {"objectID": "863199793a97917978b0681eac7e59c3615a9e454525435b9a1eb6845f701d40", "tool": "Google Maps", "notebook": "Get coordinates from address", "action": "", "tags": ["#googlemaps", "#productivity", "#operations", "#automation", "#jupyternotebooks"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-26", "created_at": "2023-07-25", "description": "This notebook get coordinates from a given address using Google Maps API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Maps/Google_Maps_Get_coordinates_from_address.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Maps/Google_Maps_Get_coordinates_from_address.ipynb", "imports": ["os", "requests", "naas"], "image_url": ""}, {"objectID": "4524ee41a55c75df72f6dc0d75ada96d8305d81e20b3626f7a785d6be7431b9d", "tool": "Google Search", "notebook": "Get LinkedIn company url from name", "action": "", "tags": ["#googlesearch", "#snippet", "#operations", "#url"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-20", "description": "This notebook provides a method to quickly obtain the LinkedIn URL of a company from its name using Google Search.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Get_LinkedIn_company_url_from_name.ipynb", "imports": ["googlesearch.search", "googlesearch.search", "re"], "image_url": ""}, {"objectID": "d1c949fe9e214226b7df5584548da212d42692f254b3325a5b9a03b14993b5be", "tool": "Google Search", "notebook": "Get LinkedIn profile url from name", "action": "", "tags": ["#googlesearch", "#snippet", "#operations", "#url"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-20", "description": "This notebook provides a method to quickly and easily obtain a LinkedIn profile URL from a given name using Google Search.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Get_LinkedIn_profile_url_from_name.ipynb", "imports": ["googlesearch.search", "googlesearch.search", "re"], "image_url": ""}, {"objectID": "2064667ee2f72eea060b675451e0aa7ce39cae50c52fce3ddd817440bfba9e21", "tool": "Google Search", "notebook": "Perform search", "action": "", "tags": ["#googlesearch", "#snippet", "#operations", "#url"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook allows users to perform Google searches quickly and easily.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Search/Google_Search_Perform_search.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Search/Google_Search_Perform_search.ipynb", "imports": ["googlesearch.search", "googlesearch.search"], "image_url": ""}, {"objectID": "a3806d0e8beb6df74a694e543ef83a8bf1058b7cc2dd05636cdeb22dde4ed654", "tool": "Google Sheets", "notebook": "Add items to Notion databases from new rows in", "action": "", "tags": ["#googlesheets", "#productivity", "#operations", "#automation", "#notion"], "author": "Pooja Srivastava", "author_url": "https://www.linkedin.com/in/pooja-srivastava-bb037649/", "updated_at": "2023-04-12", "created_at": "2022-03-29", "description": "This notebook does the following tasks: \n- Schedule the notebook to run every 15 minutes\n- Connect with Gsheet and get all rows using the gsheet driver's get method\n- Connect with NotionDB and get all pages using the Notion Databases driver's get method\n- Compare the list of pages from notion db with the rows returned from gsheet and add non matching rows to a list\n- Create new pages in Notion db for each row in the non matching list using the Notion Pages driver's create method\n- For each created page, add the properties and values from gsheet and update in notion using the Notion Pages driver's update methods", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Add_items_to_Notion_databases_from_new_rows_in_Google_Sheets.ipynb", "imports": ["pandas", "naas", "naas_drivers.notion, gsheet"], "image_url": ""}, {"objectID": "17edc5fdc7b63b3e6d04eb4faf8645977e854302a90026ec9fd88d666632fc59", "tool": "Google Sheets", "notebook": "Add new github member to team from spreadsheet", "action": "", "tags": ["#github", "#teams", "#automation", "#googlesheets", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-05-20", "description": "This notebook demonstrates how to use Google Sheets to add a new GitHub member to a team from a spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Add_new_github_member_to_team_from_spreadsheet.ipynb", "imports": ["requests", "naas_drivers.github, gsheet", "naas", "pandas"], "image_url": ""}, {"objectID": "b04ee5b4b37c8b2317bef0807a60465579484e42bc08e2d5ccc93e264b98f84d", "tool": "Google Sheets", "notebook": "Calculate distance and price", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet", "#dataframe", "#google_maps_api", "#routes_api"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This template determines the cost and distance between location extracted from a Google Sheet. It uses the Routes API to estimate the price depending on the distance between sites and outputs the updated Google Sheet with distances and prices.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Calculate_Distance_and_Price.ipynb", "imports": ["naas", "naas_drivers.gsheet", "requests"], "image_url": ""}, {"objectID": "ba4899765b01f9b5812cccd925895c501d58721780bc932b6fc4ff040e190f30", "tool": "Google Sheets", "notebook": "Get data", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook demonstrates how to get data from a Google Sheets spreadsheet and return a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Get_data.ipynb", "imports": ["naas_drivers.gsheet"], "image_url": ""}, {"objectID": "05789b41ffcc541325fae77c8579bb900c997f4f995f9e1d4c65a690d6016683", "tool": "Google Sheets", "notebook": "Send LinkedIn invitations from spreadsheet", "action": "", "tags": ["#googlesheets", "#invitation", "#automation", "#content", "#notification", "#email", "#linkedin"], "author": "Valentin Goulet", "author_url": "https://www.linkedin.com/in/valentin-goulet-3a3070152/", "updated_at": "2023-04-12", "created_at": "2022-04-07", "description": "This notebook allows users to quickly and easily send LinkedIn invitations to contacts stored in a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_LinkedIn_invitations_from_spreadsheet.ipynb", "imports": ["naas", "naas_drivers.linkedin, gsheet"], "image_url": ""}, {"objectID": "cf32ecf61a1d6fdcae3273e7e70026564087776ace44ace0a939c08a2085586f", "tool": "Google Sheets", "notebook": "Send data", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook allows to send data to Google Sheets to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_data.ipynb", "imports": ["naas_drivers.gsheet", "pandas"], "image_url": ""}, {"objectID": "209d34f8faf5b05652f9cb4b3fe1045566401b2257c9e18947473dbb1785b092", "tool": "Google Sheets", "notebook": "Send data to MongoDB", "action": "", "tags": ["#googlesheets", "#mongodb", "#nosql", "#operations", "#automation"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-04-12", "created_at": "2022-03-21", "description": "This notebook will help you send data from your spreadsheet to your MongoDB database collection", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_data_to_MongoDB.ipynb", "imports": ["naas_drivers.mongo, gsheet", "pandas", "naas"], "image_url": ""}, {"objectID": "1dc4e7406a9def845c9736a3dba795b33642a578d2f4c4b1fca74ca2c075892b", "tool": "Google Sheets", "notebook": "Send emails from sheet", "action": "", "tags": ["#googlesheets", "#gsheet", "#data", "#naas_drivers", "#operations", "#snippet", "#email"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook allows users to send emails directly from a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Sheets/Google_Sheets_Send_emails_from_sheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Sheets/Google_Sheets_Send_emails_from_sheet.ipynb", "imports": ["naas_drivers.gsheet", "naas_drivers.email"], "image_url": ""}, {"objectID": "ce8167442d31886b2f8cd299da0d39fd5c26e646f8a734d91fc21a0d3372f5ff", "tool": "Google Slides", "notebook": "Create a Slide", "action": "", "tags": ["#googleslides", "#slides", "#create", "#api", "#developers", "#guides"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-20", "description": "This notebook describes how to insert a blank slide to an existing Google Slides presentation establishing a seamless connection using OAuth consent.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Create_a_Slide.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Create_a_Slide.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "uuid"], "image_url": ""}, {"objectID": "c18cd5159f738d52c6c4c7b6c95f1cf6bbc69b830505f91e9e82c9d2b99382ee", "tool": "Google Slides", "notebook": "Create a blank presentation", "action": "", "tags": ["#google", "#slides", "#presentation", "#create", "#blank", "#api"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-20", "description": "This notebook creates a blank presentation with a specified title using Google Slides API while connecting with oauth consent.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Create_a_blank_presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Create_a_blank_presentation.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "image_url": ""}, {"objectID": "a397cec39c6fdad00f731f42c05d051037f4b2f52822c0818359408002f7c450", "tool": "Google Slides", "notebook": "Duplicate slide", "action": "", "tags": ["#googleslides", "#slides", "#duplicate", "#copy", "#presentation", "#slideshow"], "author": "Florent Ravenel", "author_url": "https://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-24", "description": "This notebook explains how to duplicate a slide in Google Slides establishing a seamless connection using OAuth consent. It is usefull for organizations that need to quickly create a presentation with similar slides.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Duplicate_slide.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Duplicate_slide.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "uuid"], "image_url": ""}, {"objectID": "4310bd0e9d59bba6ee8d36901c9519799e4753bb99624ef7f21272d14bc967ac", "tool": "Google Slides", "notebook": "List slides in presentation", "action": "", "tags": ["#googleslides", "#presentation", "#list", "#slides", "#python", "#api"], "author": "Florent Ravenel", "author_url": "https://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-24", "description": "This notebook will list all the slides in a Google Slides presentation and is usefull for organizations that need to quickly access the content of a presentation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_List_slides_in_presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_List_slides_in_presentation.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow"], "image_url": ""}, {"objectID": "5ee4be70aada8b886738cac583ed13df2be5a8597fa7dc4f811f5a8a12861f36", "tool": "Google Slides", "notebook": "Replace text within a shape", "action": "", "tags": ["#googleslides", "#text", "#shape", "#replace", "#api", "#slides"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-25", "created_at": "2023-04-21", "description": "This notebook explains how to use the Slides API to modify the text content of a shape establishing a seamless connection using OAuth consent.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Google%20Slides/Google_Slides_Replace_text_within_a_shape.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Google%20Slides/Google_Slides_Replace_text_within_a_shape.ipynb", "imports": ["apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "googleapiclient.errors.HttpError", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "googleapiclient.errors.HttpError"], "image_url": ""}, {"objectID": "fcfade8d33f639cee874b1956980bbf1c446054e191bec6e66d7ba12f1e1621d", "tool": "HTML", "notebook": "Create a website", "action": "", "tags": ["#html", "#css", "#website", "#page", "#landing", "#custom", "#snippet", "#marketing"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-10-03", "description": "The objective of this notebook is to create an end-to-end website in 5min.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HTML/HTML_Create_a_website.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HTML/HTML_Create_a_website.ipynb", "imports": ["urllib.request.urlopen", "IPython.display.IFrame", "naas"], "image_url": ""}, {"objectID": "dbd059d8bc4a12b38bd1d41128de9f4b6610c0048c178f8d96b57bb1d852f5b0", "tool": "Harvest", "notebook": "Get Filtered List of Time Entries", "action": "", "tags": ["#harvest", "#timeentries", "#api", "#list", "#python", "#get", "#filter"], "author": "Landry Christensen", "author_url": "https://github.com/lchristensen6", "updated_at": "2023-08-01", "created_at": "2023-08-01", "description": "This notebook will create a filtered list of time entries from the Harvest API v2. It is usefull for organizations to quickly access and display time entries based on a specific filter, such as by time period or project.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Harvest/Harvest_Filtered_time_entries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_Filtered_time_entries.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "8a1dc783cc49a4f89c466a896cc8ec97d86bf1efd9a5f1b945cf97a3d73c3e27", "tool": "Harvest", "notebook": "List all clients", "action": "", "tags": ["#harvest", "#clients", "#api", "#list", "#python", "#get"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-16", "created_at": "2023-06-13", "description": "This notebook will list all clients from Harvest API and is usefull for organizations to get a list of their clients.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Harvest/Harvest_List_all_clients.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_clients.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "084fd7fb8f4258a75ef4d470a395f3f4012a8b6663332d19546b8940ade827f4", "tool": "Harvest", "notebook": "List all time entries", "action": "", "tags": ["#harvest", "#timeentries", "#api", "#list", "#python", "#v2"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-13", "created_at": "2023-06-13", "description": "This notebook will list all time entries from the Harvest API v2. It is usefull for organizations to quickly access and display time entries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Harvest/Harvest_List_all_time_entries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_time_entries.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "a4f6376cc053d445a9a1d10372766aeefa9588c710352decfd1af2a049a09310", "tool": "Harvest", "notebook": "List all users", "action": "", "tags": ["#harvest", "#users", "#api", "#list", "#python", "#get"], "author": "Landry Christensen", "author_url": "https://github.com/lchristensen6", "updated_at": "2023-08-03", "created_at": "2023-08-03", "description": "This notebook will list all users from the Harvest API v2. This is helpful as it allows organizations to quickly display all of their users on Harvest.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Harvest/Harvest_List_all_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Harvest/Harvest_List_all_users.ipynb", "imports": ["requests", "pandas", "naas"], "image_url": ""}, {"objectID": "7b4313cc79bea4a013f6abcc10f65b57072015ef0036a00f2ec9eb5002243581", "tool": "Healthchecks", "notebook": "Perfom basic actions", "action": "", "tags": ["#healthchecks", "#snippet", "#operations"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2022-03-20", "description": "This notebook provides a set of basic actions to help monitor and maintain the health of a system.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Healthchecks/Healthchecks_Perfom_basic_actions.ipynb", "imports": ["naas_drivers.healthcheck"], "image_url": ""}, {"objectID": "995754444ddb900c81983085697f28649f333866641490313e567b1e0a3c9396", "tool": "HubSpot", "notebook": "Add LinkedIn message to contact", "action": "", "tags": ["#hubspot", "#communications", "#linkedin", "#snippet", "#contact", "#association"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook demonstrates how to add a LinkedIn message to a given contact in HubSpot. It uses the communication endpoint in HubSpot. It could be useful to create integration directly from your LinkedIn messages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Add_LinkedIn_message_to_contact.ipynb", "imports": ["requests", "naas", "datetime.datetime, date, timezone", "pprint.pprint"], "image_url": ""}, {"objectID": "84696ceb69fada2dae72389c3da1f4cb0d8ed06cce7d33bf3f1e5772859e4c04", "tool": "HubSpot", "notebook": "Add SMS message to contact", "action": "", "tags": ["#hubspot", "#communications", "#SMS", "#snippet", "#contact", "#association"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook demonstrates how to add SMS message to a given contact in HubSpot. It uses the communication endpoint in HubSpot. It could be useful to integrate with tools like Twilio.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Add_SMS_message_to_contact.ipynb", "imports": ["requests", "naas", "datetime.datetime, date, timezone", "pprint.pprint"], "image_url": ""}, {"objectID": "09a2fdd2c66a2ffb4736afbf1c4347feac6703273eccc90780482835a14a7760", "tool": "HubSpot", "notebook": "Add WhatsApp message to contact", "action": "", "tags": ["#hubspot", "#communications", "#whatsapp", "#snippet", "#contact", "#association"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook demonstrates how to add WhatsApp message to a given contact in HubSpot. It uses the communication endpoint in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Add_WhatsApp_message_to_contact.ipynb", "imports": ["requests", "naas", "datetime.datetime, date, timezone", "pprint.pprint"], "image_url": ""}, {"objectID": "4f9aab526231f9a50b619d844a1e874debbbc1d6aaefc90759cf32850a66a802", "tool": "HubSpot", "notebook": "Associate contact to deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook associates a contact to a deal in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Associate_contact_to_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Associate_contact_to_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "21c2ec4f17d5dfd788890b76d6a094c3a8fa3ddd8246a849bd11b1f41f778019", "tool": "HubSpot", "notebook": "Create Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-02-24", "description": "This template will create a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_Task.ipynb", "imports": ["datetime.datetime, timedelta", "requests", "json", "naas"], "image_url": ""}, {"objectID": "41a54dd1b30076c3f50da00bf2b549912f8c38f2209b3752b0c22bd5c465df00", "tool": "HubSpot", "notebook": "Create contact", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows users to create contacts in HubSpot, enabling them to store and manage customer information.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contact.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "a10c1080b82d40f568861bec9c4fb24ff42d65d11b78ddc719282e46a2afffaf", "tool": "HubSpot", "notebook": "Create contact from LinkedIn profile", "action": "", "tags": ["#hubspot", "#linkedin", "#profile", "#naas_drivers", "#snippet", "#sales"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-10-13", "description": "This notebook creates a contact in HubSpot from a LinkedIn profile URL with:\n- email\n- linkedinbio\n- phone and mobilephone\n- website\n- twitterhandle\n- firstname\n- lastname\n- info\n- jobtitle\n- industry\n- city\n- state\n- country\n- job_function\n- company\n- field_of_study", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contact_from_LinkedIn_profile.ipynb", "imports": ["naas", "naas_drivers.hubspot, linkedin", "os.path, mkdir"], "image_url": ""}, {"objectID": "d11c4d245d38c72a488cf4ef73f193f8c1c6618dc2aeedd06e3aee9ce8b807ac", "tool": "HubSpot", "notebook": "Create contacts from linkedin post likes", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#linkedin", "#post", "#contact", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook create new contacts based on LinkedIn post likes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_contacts_from_linkedin_post_likes.ipynb", "imports": ["naas_drivers.linkedin, hubspot", "naas", "requests"], "image_url": ""}, {"objectID": "e4a548d7f36bef053fe0cb094f83c4eaca4a721fd4b7112548bbce0f8f3b102a", "tool": "HubSpot", "notebook": "Create deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows users to create deals in HubSpot, helping them to manage their sales pipeline.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "e4e780e93a73cd817fdaf0b40ce56ea33fb7a9683bbb24aa5cb40d3ba914f031", "tool": "HubSpot", "notebook": "Create note", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#notes", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This template will create a note in HubSpot with the possibility of :\n- Add timestamp to follow history\n- Add associated contacts\n- Add associated companies\n- Add associated deals\n- Add creator\n- Add multiples owners", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Create_note.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Create_note.ipynb", "imports": ["datetime.datetime", "requests", "json", "naas"], "image_url": ""}, {"objectID": "0eafe8fc3415fe94e8707349db0bb4b27d516ecb3850492a06be7d4a0086f2ef", "tool": "HubSpot", "notebook": "Delete Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-03-12", "description": "This template will delete a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_Task.ipynb", "imports": ["datetime.datetime, timedelta", "requests, math", "json", "naas"], "image_url": ""}, {"objectID": "18ba61523d3000719630fd0b6bc6b478568078713221a8163f89e7eadeb10dee", "tool": "HubSpot", "notebook": "Delete communication", "action": "", "tags": ["#hubspot", "#communications", "#snippet", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook demonstrates how to delete a communication using its ID using HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_communication.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_communication.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "758eceb0755d55869262781c0fdbf0ae8897488501d0c5a019bb29f299889448", "tool": "HubSpot", "notebook": "Delete contact", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows users to delete contacts from their HubSpot account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_contact.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "297e616568c4e2565a8f512dd5e4db0a922305d4a2d09e26c6a0b22d5c90472e", "tool": "HubSpot", "notebook": "Delete deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows users to delete deals from their HubSpot account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "42f6566a97e75f9a5683b1536e893e1088ec249bafe87e1601eb982be842a384", "tool": "HubSpot", "notebook": "Delete note", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#note", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-08-21", "created_at": "2022-05-31", "description": "This notebook demonstrates how to delete a note using its ID using HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Delete_note.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Delete_note.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "dca97b52f36c302df5c197d00895c621c69829e47a41bc1869b310a2795d7deb", "tool": "HubSpot", "notebook": "Get Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet", "#json"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-03-12", "description": "This template will get a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_Task.ipynb", "imports": ["datetime.datetime, timedelta", "requests, math", "json", "naas"], "image_url": ""}, {"objectID": "06b11cf336c1e0d493eb89898cd3a39adcb000113e2f74b4d12d64c5e7f04932", "tool": "HubSpot", "notebook": "Get activities from contact", "action": "", "tags": ["#hubspot", "#contact", "#activity", "#notes", "#emails", "#communications", "#meetings", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-21", "created_at": "2023-08-21", "description": "This notebook demonstrates how to retrieve all activities from a contact URL by combining various HubSpot API endpoints.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_activities_from_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_activities_from_contact.ipynb", "imports": ["requests", "naas", "naas_drivers.hubspot", "pandas"], "image_url": ""}, {"objectID": "2cc7be1f4752e97f41db9463ad356b8ae5c6497c16c15317610dc16372f975a1", "tool": "HubSpot", "notebook": "Get all contacts", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows you to retrieve all contacts from HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_all_contacts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_contacts.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "5e8948b2a218d67932167e52f1709186e5a2d6d230316857c687794715b0db73", "tool": "HubSpot", "notebook": "Get all deals", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook provides a comprehensive overview of all deals in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_all_deals.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_deals.ipynb", "imports": ["naas_drivers.hubspot"], "image_url": ""}, {"objectID": "f085c6a0dfb61b23a506b44cb0181599a5bfb15014e5c592e594735aff488582", "tool": "HubSpot", "notebook": "Get all pipelines and dealstages", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#pipelines", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-10", "created_at": "2022-02-21", "description": "This notebook get all your pipelines and dealstages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_all_pipelines_and_dealstages.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "29282cfa4a016e0aa6518f975cf5cd5e4fe644c0a94c7073549cea7aaf3676bd", "tool": "HubSpot", "notebook": "Get communications associated to contact", "action": "", "tags": ["#hubspot", "#api", "#contact", "#communications", "#linkedin", "#whatsapp", "#sms", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook demonstrates how to retrieve all communications associated to a contact in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_communications_associated_to_contact.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "9056bb1dcba589051252c2df8a24c91b9109e99293b11c1fe9d0b5d6fbb08197", "tool": "HubSpot", "notebook": "Get contact details from URL", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-08-21", "created_at": "2022-05-31", "description": "This notebook provides a method to retrieve contact details from a HubSpot contact URL using the HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contact_details_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_details_from_URL.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "6f72d8f451dccc72ecffed406a64ceab0e710237b87052e324d258e0153a6a3e", "tool": "HubSpot", "notebook": "Get contact details from email", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-08-21", "created_at": "2022-05-31", "description": "This notebook provides a method to retrieve contact details from a HubSpot contact email using the HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contact_details_from_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_details_from_email.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "ca0c0d07420d67bbdde9dff74791dd0bcef463a82a10315049cefef33713a892", "tool": "HubSpot", "notebook": "Get contact details from contact id", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-08-21", "created_at": "2022-05-31", "description": "This notebook provides a method to retrieve contact details from a HubSpot contact ID using the HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contact_details_from_id.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contact_details_from_id.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "57e771994762f2f1daf87e33bf4ee92ea4b096811bc09043847d120a66dded70", "tool": "HubSpot", "notebook": "Get contacts associated to deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#contact", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook get association between contacts and deals.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_contacts_associated_to_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "c3a9b9d1e98c629b1cb002d88a40903dc4d592e24e830e00c9b484c2bfa25b4a", "tool": "HubSpot", "notebook": "Get deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook provides a comprehensive overview of the HubSpot platform and its features to help you get the best deals.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_deal.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "871e457a336ded192521c203bce981c5664048760631a9acb48df8ddca1cf81e", "tool": "HubSpot", "notebook": "Get meetings associated to contact", "action": "", "tags": ["#hubspot", "#api", "#meetings", "#retrieve", "#requests", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-11", "created_at": "2023-08-07", "description": "This notebook demonstrates how to retrieve meetings ID associated with a contact in HubSpot using the HubSpot API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_meetings_associated_to_contact.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "1783cc4e20694cf382b843a9fb70e03038ea14b28dae79d0535b10499853f177", "tool": "HubSpot", "notebook": "Get notes from contact", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#notes", "#snippet", "#json", "#contacts"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-31", "description": "This templates will extract all notes from a contact in HubSpot and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_notes_from_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_notes_from_contact.ipynb", "imports": ["datetime.datetime", "requests", "json", "naas", "pandas"], "image_url": ""}, {"objectID": "d468de85f83026e5f3c404ed798b1a95bbbc7def17fc67c2a1f376d5fd7a35e4", "tool": "HubSpot", "notebook": "Get sales emails associated to contact", "action": "", "tags": ["#hubspot", "#api", "#contact", "#sales", "#emails", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-21", "created_at": "2023-08-17", "description": "This notebook demonstrates how to retrieve all sales emails associated to a contact in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Get_sales_emails_associated_to_contact.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "6f16b41d94a94ed30a6a592a36584708965f8a7bde0007c3723d973b49c01984", "tool": "HubSpot", "notebook": "List communication properties", "action": "", "tags": ["#hubspot", "#properties", "#communications", "#linkedin", "#whatsapp", "#sms", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook list all communications properties available in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_List_communication_properties.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_communication_properties.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "1cbde3b04095cadc48040885b0752305f813749b15590ff2c287874e3b3fa1a7", "tool": "HubSpot", "notebook": "List contact properties", "action": "", "tags": ["#hubspot", "#properties", "#contact", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-21", "created_at": "2023-08-21", "description": "This notebook list the contact properties in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_List_contact_properties.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_contact_properties.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "e7ec070fd87d2ff5eb89ca90bbbd98c379e5224d217a3c1ceed6cd39a857e1a6", "tool": "HubSpot", "notebook": "List meeting properties", "action": "", "tags": ["#hubspot", "#api", "#meetings", "#retrieve", "#requests", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-11", "created_at": "2023-08-07", "description": "This notebook provides access to the list of meeting properties in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_List_meeting_properties.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_meeting_properties.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "97f11b70c0c60e6b95fc17a5fadd5030c37c2f97a3e2568cd31238ea6fb5ad34", "tool": "HubSpot", "notebook": "List notes properties", "action": "", "tags": ["#hubspot", "#properties", "#notes", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-21", "created_at": "2023-08-21", "description": "This notebook list the notes properties in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_List_notes_properties.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_notes_properties.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "3c0890cc3cd13e3c6d72bc4ace0a28073c60c6bf770c0d1d68d6119ec12c4fd2", "tool": "HubSpot", "notebook": "List sales emails properties", "action": "", "tags": ["#hubspot", "#api", "#sales", "#emails", "#retrieve", "#requests", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-11", "created_at": "2023-08-07", "description": "This notebook provides access to the list of sales emails properties in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_List_sales_emails_properties.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_List_sales_emails_properties.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "addc66ec405ac0fc7ad20e0d1e0fa3a85fbf06f6aac030dd8f2b4da355d35b1d", "tool": "HubSpot", "notebook": "Retrieve communication details", "action": "", "tags": ["#hubspot", "#get", "#read", "#communication", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-17", "created_at": "2023-08-17", "description": "This notebook fetches detailed information for a specific communication (Linkedin, SMS or WhatsApp message). It can be helpful in obtaining further details from a communication ID, which can be acquired by extraction from a contact.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Retrieve_communication_details.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Retrieve_communication_details.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "05d1f96265b1e2aecae868c680041a298e4813049fab9f79887b6304fa8fcb40", "tool": "HubSpot", "notebook": "Retrieve meetings", "action": "", "tags": ["#hubspot", "#api", "#meetings", "#retrieve", "#requests", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-07", "created_at": "2023-08-07", "description": "This notebook uses requests to retrieve meetings from HubSpot API. It is usefull for organizations to get information about their meetings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Retrieve_meetings.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Retrieve_meetings.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "c3086aff9615d012c42b6cb7ccc977193b8092d7fdf6b1e49084fa7b519cef76", "tool": "HubSpot", "notebook": "Send LinkedIn invitations from contacts", "action": "", "tags": ["#hubspot", "#invitation", "#automation", "#sales", "#linkedin"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-05-04", "description": "This notebook send LinkedIn invitation to your HubSpot contacts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_LinkedIn_invitations_from_contacts.ipynb", "imports": ["naas", "naas_drivers.hubspot, linkedin", "pandas", "os"], "image_url": ""}, {"objectID": "e34b8e2c2e86d41d5ff8cf46f34b81878c899d3c389c43d81261fa1b9f64d7e6", "tool": "HubSpot", "notebook": "Send closed deals weekly", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#scheduler", "#asset", "#html", "#png", "#csv", "#naas_drivers", "#naas", "#analytics", "#automation", "#image", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-11-23", "description": "This notebook send a weekly email based on your deals closed.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_closed_deals_weekly.ipynb", "imports": ["naas_drivers.hubspot", "datetime.datetime, timedelta", "pandas", "plotly.graph_objects", "plotly.subplots.make_subplots", "naas"], "image_url": ""}, {"objectID": "4063affa21ca76b463fb3696bcd1993679d6e2c91d8614b9e1d0f84d57aec6ef", "tool": "HubSpot", "notebook": "Send contacts to gsheet", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#gsheet", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows you to send HubSpot contacts to a Google Sheet for easy tracking and organization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_contacts_to_gsheet.ipynb", "imports": ["naas_drivers.hubspot, gsheet", "naas"], "image_url": ""}, {"objectID": "76a862a59d2f61ce3a6d17fb726390ff287a4c8ab26b8281a7f8e1fa0857de4c", "tool": "HubSpot", "notebook": "Send deals to gsheet", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#gsheet", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows you to send HubSpot deals to a Google Sheet for easy tracking and analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_deals_to_gsheet.ipynb", "imports": ["naas_drivers.hubspot, gsheet", "naas"], "image_url": ""}, {"objectID": "fb271b446d3f68d5c35323574a36baba6d1c855598494a8807a73829a9641327", "tool": "HubSpot", "notebook": "Send new deals created weekly", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#scheduler", "#asset", "#html", "#png", "#csv", "#naas_drivers", "#naas", "#analytics", "#automation", "#image", "#plotly", "#notification", "#email"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-11-23", "description": "This notebook send a weekly email based on your deals created.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_new_deals_created_weekly.ipynb", "imports": ["naas_drivers.hubspot, emailbuilder", "datetime.datetime, timedelta", "pandas", "plotly.graph_objects", "plotly.subplots.make_subplots", "naas"], "image_url": ""}, {"objectID": "a82cec3af17c939d191f8ce0883159014a63484fd77e1ec01c92c4d6358c90aa", "tool": "HubSpot", "notebook": "Send sales brief", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#notification", "#asset", "#emailbuilder", "#scheduler", "#naas", "#analytics", "#automation", "#email", "#text", "#plotly", "#html", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook send a sales brief based on your HubSpot activity.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_sales_brief.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_sales_brief.ipynb", "imports": ["naas_drivers.emailbuilder, hubspot", "naas", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "d49ac09de4eaf9bef7efdf56581a4f54891f80799d0746bfff20181ac130cdf5", "tool": "HubSpot", "notebook": "Send sales pipeline to Notion", "action": "", "tags": ["#hubspot", "#notion", "#sales", "#pipeline", "#automation", "#integration"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-10", "created_at": "2023-04-26", "description": "This notebook automates the process of sending a sales pipeline from HubSpot to Notion. It is useful for organizations that need to keep track of their sales pipeline in both HubSpot and Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Send_sales_pipeline_to_Notion.ipynb", "imports": ["naas", "naas_drivers.hubspot, notion", "pandas", "datetime.datetime", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "a0410dbd5e2e886db5230942a8dd104d62fb9101565a66fba5ea54f12ae0a64e", "tool": "HubSpot", "notebook": "Update Task", "action": "", "tags": ["#hubspot", "#sales", "#crm", "#engagements", "#task", "#snippet"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-03-12", "description": "This template will update a task in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_Task.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_Task.ipynb", "imports": ["datetime.datetime, timedelta", "naas_drivers.hubspot", "requests, math", "json", "naas"], "image_url": ""}, {"objectID": "8a175a5d458b09dfe5dbc8c5e40f3a0bbd41192e6a77aa6f922960b017c043e1", "tool": "HubSpot", "notebook": "Update contact", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows users to update contact information in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_contact.ipynb", "imports": ["naas_drivers.hubspot", "naas"], "image_url": ""}, {"objectID": "fc58ab67c6bf65de49ba644a4fe56839a4aab81c0c594fbfad7fd64ff672f030", "tool": "HubSpot", "notebook": "Update deal", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#deal", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook allows users to update deals in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_deal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_deal.ipynb", "imports": ["naas_drivers.hubspot"], "image_url": ""}, {"objectID": "308ffca5968aaa53ed2e5beaf26fc4270f3ff740e04278f9f51bcaa5b6008cee", "tool": "HubSpot", "notebook": "Update followers from linkedin", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#linkedin", "#network", "#scheduler", "#naas", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook update the LinkedIn followers count for a contact in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_followers_from_linkedin.ipynb", "imports": ["naas_drivers.hubspot, linkedin", "naas", "pandas"], "image_url": ""}, {"objectID": "69dc47c6359ecfdc7f0345ae2afa727bbd0bdea6bd96d614a1d49028f5e87679", "tool": "HubSpot", "notebook": "Update jobtitle country industry from linkedin", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#linkedin", "#identity", "#scheduler", "#naas", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook update the jobtitle, country and industry for a contact in HubSpot.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_jobtitle_country_industry_from_linkedin.ipynb", "imports": ["naas_drivers.hubspot, linkedin", "naas", "pandas"], "image_url": ""}, {"objectID": "73b8a92ef19787ace73fd804dc9fffc4cd440670a11edf54097e734a3151e145", "tool": "HubSpot", "notebook": "Update linkedinbio from google", "action": "", "tags": ["#hubspot", "#crm", "#sales", "#contact", "#naas_drivers", "#googlesearch", "#scheduler", "#naas", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-21", "description": "This notebook update HubSpot linkedin URL based on Google Search with firstname and lastname.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/HubSpot/HubSpot_Update_linkedinbio_from_google.ipynb", "imports": ["naas_drivers.hubspot", "naas", "pandas", "googlesearch.search", "time", "re"], "image_url": ""}, {"objectID": "f86b412a2bb0447988f91dbda5fc2dd925f5d6ec01dc474ecbd1f3be6999ba96", "tool": "Hugging Face", "notebook": "Ask boolean question to T5", "action": "", "tags": ["#huggingface", "#ml", "#sales", "#ai", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-08", "description": "## T5-base finetuned on BoolQ (superglue task)\nThis notebook is for demonstrating the training and use of the text-to-text-transfer-transformer (better known as T5) on boolean questions (BoolQ). The example use case is a validator indicating if an idea is environmentally friendly. Nearly any question can be passed into the `query` function (see below) as long as a context to a question is given.\n\nAuthor: Maximilian Frank ([script4all.com](//script4all.com)) - Copyleft license\n\nNotes:\n- The model from [huggingface.co/mrm8488/t5-base-finetuned-boolq](//huggingface.co/mrm8488/t5-base-finetuned-boolq) is used in this example as it is an already trained t5-base model on boolean questions (BoolQ task of superglue).\n- Documentation references on [huggingface.co/transformers/model_doc/t5.html#training](//huggingface.co/transformers/model_doc/t5.html#training), template script on [programming-review.com/machine-learning/t5](//programming-review.com/machine-learning/t5)\n- The greater the model, the higher the accuracy on BoolQ (see [arxiv.org/pdf/1910.10683.pdf](//arxiv.org/pdf/1910.10683.pdf)):\n t5-small|t5-base|t5-large|t5-3B|t5-11B\n -|-|-|-|-\n 76.4%|81.4%|85.4%|89.9%|91.2%", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Hugging%20Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Hugging%20Face/Hugging_Face_Ask_boolean_question_to_T5.ipynb", "imports": ["json", "torch", "operator.itemgetter", "distutils.util.strtobool", "transformers.AutoTokenizer, AutoModelForSeq2SeqLM", "goods.\", # should be false"], "image_url": ""}, {"objectID": "5968f81ee8ac7fab47f97e24e666efeee74dd873bb1c1444a24459ea0fa9cabf", "tool": "Hugging Face", "notebook": "Naas drivers integration", "action": "", "tags": ["#huggingface", "#nlp", "#huggingface", "#api", "#models", "#transformers", "#sales", "#ai", "#text"], "author": "Gagan Bhatia", "author_url": "https://www.linkedin.com/in/gbhatia30/", "updated_at": "2023-04-12", "created_at": "2021-08-31", "description": "In this notebook, you will be able to explore the Hugging Face transformers package with minimal technical knowledge thanks to Naas low-code drivers.
\nHugging Face is an immensely popular Python library providing pretrained models that are extraordinarily useful for a variety of natural language processing (NLP) tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Hugging%20Face/Hugging_Face_Naas_drivers_integration.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Hugging%20Face/Hugging_Face_Naas_drivers_integration.ipynb", "imports": ["naas_drivers.huggingface", "ant thing in your life right now?\""], "image_url": ""}, {"objectID": "6ae02ceb527a779c1815a5254e6a3b1292f024034c61fa1c62c4dfcb88905990", "tool": "Hugging Face", "notebook": "Question Answering from PDF", "action": "", "tags": ["#huggingface", "#ml", "#question_answer", "#ai", "#text"], "author": "Muhammad Talha Khan", "author_url": "https://www.linkedin.com/in/muhtalhakhan/", "updated_at": "2023-04-12", "created_at": "2022-11-02", "description": "This notebook provides a way to answer questions from PDF documents using Hugging Face's natural language processing capabilities.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Hugging%20Face/Hugging_Face_Question_Answering_from_PDF.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Hugging%20Face/Hugging_Face_Question_Answering_from_PDF.ipynb", "imports": ["transformers.pipeline", "urllib.request", "PyPDF2", "io"], "image_url": ""}, {"objectID": "d7b25ccb94399a05e017b4dbcc1175264b9d63a0846fe91c6e98ae73e7464ce5", "tool": "IFTTT", "notebook": "Post on Twitter", "action": "", "tags": ["#ifttt", "#nocode", "#snippet", "#marketing", "#twitter"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook allows you to post messages to Twitter using IFTTT.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IFTTT/IFTTT_Post_on_Twitter.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IFTTT/IFTTT_Post_on_Twitter.ipynb", "imports": ["naas_drivers.ifttt"], "image_url": ""}, {"objectID": "c2217c4b3eafedeb845aa615041292cacf60fd6aa3366a80e4d85ab17ac0d9a6", "tool": "IFTTT", "notebook": "Trigger workflow", "action": "", "tags": ["#ifttt", "#nocode", "#snippet", "#marketing"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook allows users to create automated workflows based on triggers from IFTTT.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IFTTT/IFTTT_Trigger_workflow.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IFTTT/IFTTT_Trigger_workflow.ipynb", "imports": ["naas_drivers.ifttt"], "image_url": ""}, {"objectID": "d6489bb4d5adeb7d00bb71c99521b750528eb0d76f94b0007a217d5902623f0e", "tool": "IMDB", "notebook": "Top Movie", "action": "", "tags": ["#imdb", "#python", "#webscraping", "#imdb", "#analytics", "#operations", "#csv"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-04-12", "created_at": "2021-11-23", "description": "This notebook provides a list of the top-rated movies according to IMDB ratings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IMDB/Top_IMDB_Movie.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IMDB/Top_IMDB_Movie.ipynb", "imports": ["scrapy", "scrapy", "scrapy.crawler.CrawlerProcess", "scrapy.crawler.CrawlerRunner", "crochet.setup, wait_for", "crochet.setup, wait_for"], "image_url": ""}, {"objectID": "9e77de3cd0e1966b9245a077a2cee42c80084a9a388822b57d33a68f0acb6526", "tool": "INPI", "notebook": "Download PDF recap", "action": "", "tags": ["#inpi", "#pdf", "#snippet", "#url", "#naas", "#societe", "#opendata"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-04", "description": "This notebook downloads a PDF summary of INPI (Instituto Nacional da Propriedade Industrial) data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/INPI/INPI_Download_PDF_recap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/INPI/INPI_Download_PDF_recap.ipynb", "imports": ["urllib"], "image_url": ""}, {"objectID": "2802ff736a7d9f625d7bb08a6e63f44d451728998bc8eacf923f17faedb940f7", "tool": "IPyWidgets", "notebook": "Create button", "action": "", "tags": ["#ipywidgets", "#naas", "#secret", "#snippet", "#operation", "#button"], "author": "Ismail CHIHAB", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "updated_at": "2023-04-12", "created_at": "2022-08-05", "description": "This notebook demonstrates how to use IPyWidgets to create an interactive button.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IPyWidgets/IPyWidgets_Create_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IPyWidgets/IPyWidgets_Create_button.ipynb", "imports": ["IPython.display.display, clear_output", "ipywidgets.widgets"], "image_url": ""}, {"objectID": "f810583e80c41aba6409ca9a2f9c0af3b653ab7a0d807b424564d03f1fd6a773", "tool": "IPyWidgets", "notebook": "Create input text and submit button", "action": "", "tags": ["#ipywidgets", "#naas", "#secret", "#snippet", "#operation", "#button", "#text"], "author": "Ismail CHIHAB", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "updated_at": "2023-04-12", "created_at": "2022-08-05", "description": "This notebook demonstrates how to use IPyWidgets to create an interactive input text box and submit button.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IPyWidgets/IPyWidgets_Create_input_text_and_submit_button.ipynb", "imports": ["IPython.display.display, clear_output", "ipywidgets.widgets"], "image_url": ""}, {"objectID": "a68d46a0afb9b7c23e894afa2019cc7a7a9f4ee51ebf45ca51289f28af308652", "tool": "IPyWidgets", "notebook": "Setup naas secret", "action": "", "tags": ["#ipywidgets", "#naas", "#secret", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-05", "description": "This notebook provides instructions for setting up a secure connection to a NaaS (Network-as-a-Service) using IPyWidgets.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IPyWidgets/IPyWidgets_Setup_naas_secret.ipynb", "imports": ["IPython.display.display, clear_output", "ipywidgets.widgets", "naas"], "image_url": ""}, {"objectID": "2b6a8399ba0ec449ff89d9613b7c9dbefa5e8eb4c3baf8b472fdbdb7847e2b43", "tool": "IUCN", "notebook": "Extinct species", "action": "", "tags": ["#iucn", "#opendata", "#extinctspecies", "#analytics", "#plotly"], "author": "Martin Delasalle", "author_url": "https://github.com/delasalle-sio-martin", "updated_at": "2023-04-12", "created_at": "2021-05-28", "description": "Source : https://www.iucnredlist.org/statistics", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/IUCN/IUCN_Extinct_species.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/IUCN/IUCN_Extinct_species.ipynb", "imports": ["pandas", "plotly.express"], "image_url": ""}, {"objectID": "63e5f68d32da97478d275e24f56052d1b338bc9447562f7df52aca764f0405cf", "tool": "Insee", "notebook": "Download PDF recap", "action": "", "tags": ["#insee", "#pdf", "#snippet", "#url", "#naas", "#societe", "#opendata"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-04", "description": "This notebook downloads PDF summaries of data from the French National Institute of Statistics and Economic Studies (INSEE).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Insee/Insee_Download_PDF_recap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Insee/Insee_Download_PDF_recap.ipynb", "imports": ["urllib"], "image_url": ""}, {"objectID": "8c1d59ba9fc141ddf76ab615ec70620884b5be94f4cde842bd75126ac862db52", "tool": "Instagram", "notebook": "Get stats from posts", "action": "", "tags": ["#instagram", "#snippet", "#dataframe", "#content"], "author": "Mohamed Abidi", "author_url": "https://www.linkedin.com/in/mohamed-abidi-919505192/", "updated_at": "2023-04-12", "created_at": "2022-02-11", "description": "This notebook provides an easy way to analyze Instagram posts and gain insights into their performance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Instagram/Instagram_Get_stats_from_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Instagram/Instagram_Get_stats_from_posts.ipynb", "imports": ["requests", "json", "datetime", "pandas"], "image_url": ""}, {"objectID": "38c44121d518d242dcfd1209fca1b300a11475f5836b8ae8f214c0b4524816a9", "tool": "Instagram", "notebook": "Post image and caption", "action": "", "tags": ["#instagram", "#snippet", "#content"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook allows users to post images and captions to their Instagram account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Instagram/Instagram_Post_image_and_caption.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Instagram/Instagram_Post_image_and_caption.ipynb", "imports": ["instabot.Bot", "instabot.Bot", "naas"], "image_url": ""}, {"objectID": "ea1fbba772a47f2a2f57b1c76935f62728ba2bb7749c0edd2edb475b43a35037", "tool": "Integromat", "notebook": "Trigger workflow", "action": "", "tags": ["#integromat", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-23", "description": "This notebook allows you to create automated workflows that are triggered by specific events.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Integromat/Integromat_Trigger_workflow.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Integromat/Integromat_Trigger_workflow.ipynb", "imports": ["naas_drivers.integromat"], "image_url": ""}, {"objectID": "9366cd2a8b5ebabc8fa6722758d297cf0a47d5b09246c09565bfe44c0f0c5350", "tool": "JSON", "notebook": "Convert Python Objects to", "action": "", "tags": ["#json", "#python", "#convert", "#object", "#serialize", "#deserialize"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook will show how to convert Python objects to JSON and how to deserialize JSON back into Python objects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/JSON/JSON_Convert_Python_Objects_to_JSON.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Convert_Python_Objects_to_JSON.ipynb", "imports": ["json"], "image_url": ""}, {"objectID": "566b67709b26f1097172c3b9c9641f132b8cf9d299ba3b314bda01fa26e3c31f", "tool": "JSON", "notebook": "Pretty print data", "action": "", "tags": ["#json", "#prettyprint", "#data", "#format", "#parse", "#string"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook will show how to pretty print JSON data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/JSON/JSON_Pretty_print_JSON_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Pretty_print_JSON_data.ipynb", "imports": ["json"], "image_url": ""}, {"objectID": "87d99fa50cdfeb99934671dc8dc2667c10df4a549bcea2874106f99651860146", "tool": "JSON", "notebook": "Read local file", "action": "", "tags": ["#json", "#python", "#read", "#file", "#data", "#parse"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2023-03-10", "description": "This notebook will demonstrate how to read a json file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/JSON/JSON_Read_local_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Read_local_file.ipynb", "imports": ["json"], "image_url": ""}, {"objectID": "9cee4953ea85382e65f4d07efd0a162eb35b120f714fd0da9f0de60f6426bddb", "tool": "JSON", "notebook": "Save dataframe to file", "action": "", "tags": ["#json", "#python", "#file", "#save", "#data"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook will demonstrate how to save a DataFrame to a json file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/JSON/JSON_Save_dataframe_to_JSON_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Save_dataframe_to_JSON_file.ipynb", "imports": ["json", "pandas"], "image_url": ""}, {"objectID": "050391ecb5e0318f1aea99870a20423b913b3baef4dfac8b3ecd9d1c32618266", "tool": "JSON", "notebook": "Save dict to file", "action": "", "tags": ["#json", "#python", "#file", "#save", "#data"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-05-09", "created_at": "2023-03-10", "description": "This notebook will demonstrate how to save a dict to a json file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/JSON/JSON_Save_dict_to_JSON_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Save_dict_to_JSON_file.ipynb", "imports": ["json"], "image_url": ""}, {"objectID": "c603c422f9e39d2ea960638448b510dbc4027f4cf6c068d0f196a82a161c3fd2", "tool": "JSON", "notebook": "Send to Google Sheets spreadsheet", "action": "", "tags": ["#json", "#gsheet", "#python", "#read", "#file", "#data", "#parse", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook will demonstrate how to send a json file to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/JSON/JSON_Send_to_Google_Sheets_spreadsheet.ipynb", "imports": ["json", "naas_drivers.gsheet", "pandas"], "image_url": ""}, {"objectID": "d9501bdba4a7b281ae7e32722e5f7f8e7ad52825702b91f62463c937b0ab9129", "tool": "Johns Hopkins", "notebook": "Covid19 Active Cases", "action": "", "tags": ["#johnshopkins", "#opendata", "#analytics", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-27", "description": "This notebook provides an interactive visualization of the active cases of Covid-19 reported by Johns Hopkins University.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Johns%20Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Johns%20Hopkins/Johns_Hopkins_Covid19_Active_Cases.ipynb", "imports": ["pandas", "plotly.express", "plotly.graph_objects", "matplotlib.pyplot"], "image_url": ""}, {"objectID": "d8d061ddd919705d7ea10dbff535f312aa8690112a7689c30b77706e9b482a93", "tool": "Johns Hopkins", "notebook": "Get Covid19 data", "action": "", "tags": ["#johnshopkins", "#opendata", "#analytics", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides an easy way to access and analyze Covid19 data from Johns Hopkins University.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Johns%20Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Johns%20Hopkins/Johns_Hopkins_Get_Covid19_data.ipynb", "imports": ["pandas", "naas"], "image_url": ""}, {"objectID": "db5fcbb8c6b35101661e8ce19138d4b5ffe286f326252acd8c9993a4f8ea822b", "tool": "Jupyter Notebooks", "notebook": "Add cells in notebook json", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook provides instructions on how to add cells to a Jupyter Notebook using JSON.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_cells_in_notebook_json.ipynb", "imports": ["json", "pprint.pprint"], "image_url": ""}, {"objectID": "6896c6a7f08c8189f132dadc917d7260fd09df359c2465592db7987056bca0c0", "tool": "Jupyter Notebooks", "notebook": "Add tags in cells", "action": "", "tags": ["#jupyternotebooks", "#jupyter", "#awesome-notebooks", "#tags", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-17", "description": "This notebook provides a guide to adding tags to cells in Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Add_tags_in_cells.ipynb", "imports": ["os", "json", "pprint.pprint"], "image_url": ""}, {"objectID": "40bc861fbc7e6401524526236bf9efeebd65f31e1cce745a877aa263ff42ac3f", "tool": "Jupyter Notebooks", "notebook": "Apply black on notebook file", "action": "", "tags": ["#jupyter", "#notebook", "#black", "#python", "#formatting", "#style"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-26", "created_at": "2023-04-26", "description": "This notebook explains how to apply the black formatting style to a Jupyter Notebook file. It is usefull for organizations that want to ensure a consistent coding style across their notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Apply_black_on_notebook_file.ipynb", "imports": ["json", "subprocess"], "image_url": ""}, {"objectID": "831c231ab1ea59f38424b6201727c2f8c65b45b75bf6e6513944957fe8399b71", "tool": "Jupyter Notebooks", "notebook": "Count code characters", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#codecharacters", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook provides a tool to count the number of characters in code written in Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_characters.ipynb", "imports": ["json"], "image_url": ""}, {"objectID": "3b184500ce95f1ea2824f7968046188e744c2bf9c912d17b346b15a2831ef97e", "tool": "Jupyter Notebooks", "notebook": "Count code lines", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#codelines", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook provides a tool to count the number of lines of code in a Jupyter Notebook.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Count_code_lines.ipynb", "imports": ["json"], "image_url": ""}, {"objectID": "4a5084bb5ec4b1b23f29c6699dddb97d95fb5bd81eb9cfbbc9c5241b2575f500", "tool": "Jupyter Notebooks", "notebook": "Get installs", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#installs", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook provides instructions for installing Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_installs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_installs.ipynb", "imports": ["json", "pprint.pprint"], "image_url": ""}, {"objectID": "9fbda94a4556947e1be3d9cba5532b7757857f8dc5fab92ec7ab9df63d3a2a7e", "tool": "Jupyter Notebooks", "notebook": "Get libraries", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#libraries", "#snippet", "#operations", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook provides instructions on how to install and use libraries in Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_libraries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Get_libraries.ipynb", "imports": ["json", "pprint.pprint", "\" in source and \".\" in source:", "\")[0]", "\")[-1]", "\" not in source and \".\" in source:", "\")[-1]"], "image_url": ""}, {"objectID": "49c918990b576442820a51fda634fe182ae747b6379542038cc96566e894c3af", "tool": "Jupyter Notebooks", "notebook": "Read file json", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#read", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook provides a guide to reading and manipulating JSON files using Jupyter Notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Read_file_json.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Read_file_json.ipynb", "imports": ["json", "pprint.pprint"], "image_url": ""}, {"objectID": "69cd935098a7bced50fbde048ea679fadd95403925f92771cbfb08e935f17754", "tool": "Jupyter Notebooks", "notebook": "Save file ipynb", "action": "", "tags": ["#jupyternotebooks", "#naas", "#jupyter-notebooks", "#save", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-04", "description": "This notebook allows users to save their work in an interactive, web-based format (.ipynb).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter%20Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter%20Notebooks/Jupyter_Notebooks_Save_file_ipynb.ipynb", "imports": ["json", "pprint.pprint"], "image_url": ""}, {"objectID": "7e1066808d3b59f72af3abe06bd16360aba9c812315e7d4590b08a5ea7e4cc4a", "tool": "Jupyter", "notebook": "Get server uptime", "action": "", "tags": ["#jupyter", "#server", "#uptime", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-17", "description": "This notebook provides a way to check the server uptime using Jupyter.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_server_uptime.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_server_uptime.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "image_url": ""}, {"objectID": "8b7b0d0e546ea07301fe985252766cfa1c1a046fd3771acf0dba7a1bad478638", "tool": "Jupyter", "notebook": "Get user information", "action": "", "tags": ["#jupyter", "#user", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides a way to retrieve user information from Jupyter.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_user_information.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_user_information.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "image_url": ""}, {"objectID": "8853628334515ac0c222cc72944e39192d0127dea12852762c80ced3ea104901", "tool": "Jupyter", "notebook": "Get user session", "action": "", "tags": ["#jupyter", "#user", "#session", "#kernels", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-17", "description": "This notebook provides a way to get information about the current user's Jupyter session.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_user_session.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_user_session.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "image_url": ""}, {"objectID": "580e2e6eb9052fc667d90d6c2853af8778e963531368f1c22199294e3c7f9da5", "tool": "Jupyter", "notebook": "Get user terminal", "action": "", "tags": ["#jupyter", "#user", "#terminal", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-17", "description": "This notebook provides a user-friendly interface to access a terminal for running commands.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Get_user_terminal.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Get_user_terminal.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "image_url": ""}, {"objectID": "6c5de096a088ddb31aecdc20d57173bc5605c61ba81be7298c86cec24288d8c4", "tool": "Jupyter", "notebook": "Restart server", "action": "", "tags": ["#jupyter", "#server", "#restart", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-17", "description": "This notebook provides instructions on how to restart a Jupyter server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Jupyter/Jupyter_Restart_server.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Jupyter/Jupyter_Restart_server.ipynb", "imports": ["naas_drivers.jupyter", "os.environ"], "image_url": ""}, {"objectID": "96e73cf9dc93e28d3e1d87b810d335505e2b1fb7a834579b2aa36f26df1e9f3a", "tool": "Kaggle", "notebook": "Download Data", "action": "", "tags": ["#kaggle", "#dataset", "#download", "#data", "#datascience"], "author": "Muhammad Waqar Gul", "author_url": "https://www.linkedin.com/in/waqar-gul", "updated_at": "2023-04-12", "created_at": "2022-10-11", "description": "This notebook provides instructions on how to download data from Kaggle for use in data analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Kaggle/Kaggle_Download_Data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Kaggle/Kaggle_Download_Data.ipynb", "imports": ["opendatasets", "pandas", "opendatasets", "os.path"], "image_url": ""}, {"objectID": "0c9df728db7a93e2a51b17382bce93ac3e3ac414dc2e0fffb72627a0863f4107", "tool": "Knative", "notebook": "Create command file", "action": "", "tags": ["#knative", "#operations", "#dashboards", "#dash", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-22", "description": "This notebook provides instructions on how to create a command file for Knative.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Knative/Knative_Create_command_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Knative/Knative_Create_command_file.ipynb", "imports": [], "image_url": ""}, {"objectID": "658a8244b01dfe532c4faaf8423ce808aca1020f8afdf491d99810b8e1cb4ba1", "tool": "LangChain", "notebook": "CSV Agent", "action": "", "tags": ["#csv", "#agent", "#langchain", "#questionanswering", "#toolkit", "#example"], "author": "Hamid Mukhtar", "author_url": "https://www.linkedin.com/in/mukhtar-hamid/", "updated_at": "2023-06-21", "created_at": "2023-06-01", "description": "This notebook shows how to use agents to interact with a csv. It is mostly optimized for question answering.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LangChain/LangChain_CSV_Agent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_CSV_Agent.ipynb", "imports": ["langchain", "langchain.agents.create_csv_agent", "langchain.llms.OpenAI", "langchain.chat_models.ChatOpenAI", "langchain.agents.agent_types.AgentType", "pandas", "naas"], "image_url": ""}, {"objectID": "82653462f187b1612eabf3410fb8c69cd5f3bc64d1b6a7828d840867d3d86cfd", "tool": "LangChain", "notebook": "Gmail Toolkit", "action": "", "tags": ["#langchain", "#gmail", "#toolkit", "#api", "#email", "#connect"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook walks through connecting a LangChain email to the Gmail API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LangChain/LangChain_Gmail_Toolkit.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_Gmail_Toolkit.ipynb", "imports": ["langchain", "langchain.llms.OpenAI", "langchain.agents.agent_toolkits.GmailToolkit", "langchain.agents.initialize_agent, AgentType", "naas"], "image_url": ""}, {"objectID": "97b75457b5be4aa0267637c05db4895ccd911ef922cded10242a313ab1245dbb", "tool": "LangChain", "notebook": "JSON Agent", "action": "", "tags": ["#json", "#agent", "#langchain", "#toolkit", "#example", "#python"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-07-31", "created_at": "2023-07-20", "description": "This notebook showcases an agent designed to interact with large JSON/dict objects. This is useful when you want to answer questions about a JSON blob that\u2019s too large to fit in the context window of an LLM. The agent is able to iteratively explore the blob to find what it needs to answer the user\u2019s question.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LangChain/LangChain_JSON_Agent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_JSON_Agent.ipynb", "imports": ["langchain", "validators", "langchain.agents.agent_toolkits.JsonToolkit", "langchain.tools.json.tool.JsonSpec", "langchain.agents.create_json_agent", "langchain.llms.openai.OpenAI", "json", "urllib.request.urlopen", "validators", "naas", "pandas"], "image_url": ""}, {"objectID": "cbffbc54c632f632e483b97eefb687edc995365015f26e51df9e55644b0272ac", "tool": "LangChain", "notebook": "Pandas Dataframe Agent", "action": "", "tags": ["#langchain", "#pandas", "#dataframe", "#agent", "#python", "#toolkit"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-21", "created_at": "2023-06-01", "description": "This notebook shows how to use agents to interact with a pandas dataframe. It is mostly optimized for question answering.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LangChain/LangChain_Pandas_Dataframe_Agent.ipynb", "imports": ["langchain", "langchain.agents.create_pandas_dataframe_agent", "langchain.llms.OpenAI", "pandas", "naas"], "image_url": ""}, {"objectID": "fe3d8478a7a0ec3a8547714e3830c73fe246cb33bbe5bafbf00d39bee94ce2e9", "tool": "LeFigaro", "notebook": "House Price analysis", "action": "", "tags": ["#lefigaro", "#investors", "#immobilier", "#markdown", "#graph", "#chart", "#analytics"], "author": "Mahanamana Andriamiharisoa", "author_url": "https://www.linkedin.com/in/mahanamana/", "updated_at": "2023-04-12", "created_at": "2022-07-08", "description": "This notebook provides an analysis of house prices in France using data from LeFigaro.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LeFigaro/LeFigaro_House_Price_analysis.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LeFigaro/LeFigaro_House_Price_analysis.ipynb", "imports": ["requests", "bs4.BeautifulSoup", "pandas", "numpy", "matplotlib.pyplot", "plotly.express", "naas"], "image_url": ""}, {"objectID": "479b87603a0cbdf9ac2a26af7a59038d199f9ac114b46261f5550b23ab40220d", "tool": "LinkedIn Sales Navigator", "notebook": "Extract Leads List from URL", "action": "", "tags": ["#linkedin", "#salesnavigator", "#extract", "#leads"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-27", "description": "This notebook will show how to extract a list of leads from a URL using LinkedIn Sales Navigator.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Extract_Leads_List_from_URL.ipynb", "imports": ["naas_drivers.linkedin_salesnavigator", "naas"], "image_url": ""}, {"objectID": "1b0477f9d8333372b2c07f480a0d743097d611eff7c7a7600095ae3b813cbded", "tool": "LinkedIn Sales Navigator", "notebook": "Send Leads to Spreadsheet", "action": "", "tags": ["#linkedin", "#salesnavigator", "#extract", "#leads", "#gsheet", "#leadgen"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-02", "description": "This notebook send a list of leads generated by LinkedIn Sales Navigator to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn%20Sales%20Navigator/LinkedIn_Sales_Navigator_Send_Leads_to_Spreadsheet.ipynb", "imports": ["naas_drivers.linkedin_salesnavigator", "naas_drivers.gsheet", "naas"], "image_url": ""}, {"objectID": "9f5596b26533283a108fba2a2dfd62794659f196cef87ccc1649802a6a85844d", "tool": "LinkedIn", "notebook": "Accept all invitations and send first message", "action": "", "tags": ["#linkedin", "#content", "#operations", "#automation", "#invitation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-05-29", "created_at": "2022-04-05", "description": "This notebook helps you quickly and easily accept all LinkedIn invitations and send a personalized introductory message to each new connection.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Accept_all_invitations_and_send_first_message.ipynb", "imports": ["naas", "naas_drivers.linkedin", "pandas"], "image_url": ""}, {"objectID": "e45e2cd2d424c1f1399552df2148f8494e84c0aa7f98f1ab105f7d4cdd0e8a7d", "tool": "LinkedIn", "notebook": "Accept invitation received", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-05-29", "created_at": "2022-04-05", "description": "This notebook allows you to accept invitations to connect on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Accept_invitation_received.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Accept_invitation_received.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "image_url": ""}, {"objectID": "8ba17ce043515c04a2f3081afbd6904e272b708e06388b566b4a286a2fd7d785", "tool": "LinkedIn", "notebook": "Chat about my latest profile posts", "action": "", "tags": ["#linkedin", "#profile", "#post", "#stats", "#naas_drivers", "#content", "#automation", "#csv"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-07-26", "created_at": "2023-07-24", "description": "This notebook enables you to converse inside MyChatGPT about your most recent LinkedIn posts using a CSV file stored in your Naas Lab and a JSON plugin asset. Data is updated and replaced with each run.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Chat_about_my_latest_profile_posts.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "os", "json", "wordcloud.WordCloud", "wordcloud.WordCloud", "matplotlib.pyplot", "tiktoken", "tiktoken"], "image_url": ""}, {"objectID": "b6b615ac66034a7ebfa52b341d1849c0352ec471108d940809c2477e5fa83f15", "tool": "LinkedIn", "notebook": "Create Post", "action": "", "tags": ["#linkedin", "#create", "#api", "#post", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2023-03-20", "description": "This notebook creates a post using Linkedin API and Supabase.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Create_Post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Create_Post.ipynb", "imports": ["os", "supabase.create_client, Client", "supabase.create_client, Client", "naas", "requests", "json", "pprint.pprint"], "image_url": ""}, {"objectID": "78ec6637e7d863b7e458ba7b49172446db1057cb307c1160da7391c0fb19f54c", "tool": "LinkedIn", "notebook": "Create posts metrics dashboard", "action": "", "tags": ["#linkedin", "#dashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-09-06", "description": "This notebook provides a dashboard to track the performance metrics of posts created on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.
", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Create_posts_metrics_dashboard.ipynb", "imports": ["os", "os.environ", "pandas", "naas", "datetime.datetime", "plotly.graph_objects", "plotly.express", "plotly.subplots.make_subplots", "dash", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components._components.Container.Container", "dash.exceptions.PreventUpdate"], "image_url": ""}, {"objectID": "11b2c07be26f4a540e850f376dd2cfffa6b41699fbb48e33fd0a5eecd9155e20", "tool": "LinkedIn", "notebook": "Extract content world cloud", "action": "", "tags": ["#linkedin", "#worldcloud", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook provides a way to extract content from LinkedIn and visualize it in a word cloud. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Extract_content_world_cloud.ipynb", "imports": ["wordcloud.WordCloud", "wordcloud.WordCloud", "matplotlib.pyplot", "pandas"], "image_url": ""}, {"objectID": "f16e388f3fc8807c45263b666b7844f2b411a774e745b508c92314292953a44a", "tool": "LinkedIn", "notebook": "Follow company followers", "action": "", "tags": ["#linkedin", "#company", "#followers", "#naas_drivers", "#analytics", "#automation", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-04-22", "description": "This notebook allows you to track and follow the followers of a company on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_company_followers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_company_followers.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "7d69ccdb7722e129fb596d4ac313a428ceb333e3b508039dd77e8d57002d0530", "tool": "LinkedIn", "notebook": "Follow connections from profile", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#analytics", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-11", "description": "This notebook allows you to follow connections from a LinkedIn profile to build your network.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_connections_from_profile.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "0c1887da9a6a5b0e6944b92de5b8d5fe6809cead583534b47781b405fc1ad407", "tool": "LinkedIn", "notebook": "Follow content comments monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to track and analyze the comments on your LinkedIn content each month. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_comments_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "3add0154c45189d53227375a9eb51eaf962e8d47a92e629fcfdfb5f359658c4c", "tool": "LinkedIn", "notebook": "Follow content comments weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to track and follow comments on content posted on LinkedIn on a weekly basis. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_comments_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "7bd1a5021d27c602388c8453a5e295b65f4ce4e34ebeb32de85ec94654b656d9", "tool": "LinkedIn", "notebook": "Follow content engagements monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook provides a monthly overview of content engagements on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_engagements_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "5ad7f9c5d30b05a69996fc91685fc7039d55107f55b3b76bb9a640fefdf96d05", "tool": "LinkedIn", "notebook": "Follow content engagements weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook helps you track and analyze your weekly content engagements on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_engagements_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "cc1b4c23ccb3f6694fab05812f8888d458df1076bb27bd5d1406a42e8865b339", "tool": "LinkedIn", "notebook": "Follow content frequency", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows users to track how often they post content on LinkedIn and follow the frequency of their posts. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_frequency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_frequency.ipynb", "imports": ["naas_drivers.linkedin", "os.path", "naas", "pandas", "datetime.datetime", "plotly.graph_objects", "plotly.subplots.make_subplots"], "image_url": ""}, {"objectID": "86d43a87776a1959277b4f7cbfea2d6a8c9cd83dc103e7ea40196db6c68366e6", "tool": "LinkedIn", "notebook": "Follow content likes monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to track and follow content on LinkedIn on a monthly basis. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_likes_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "5d645f65d3876fcb8f68ec55b61551bc8fcc9dc16ce4393003cb9355d28022f7", "tool": "LinkedIn", "notebook": "Follow content likes weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to keep track of the content you like on LinkedIn and follow it on a weekly basis. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_likes_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "09c380b66d03f35f056daeb6875ab67d012a9c943260b272f60ced069ad5998d", "tool": "LinkedIn", "notebook": "Follow content published by weekdays by months", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-08-04", "description": "This notebook allows you to track and follow content published on LinkedIn by day of the week and month. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_published_by_weekdays_by_months.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects", "pandas.tseries.offsets.MonthEnd", "calendar", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "12fcfa952a1daa79c27b82ab8f6061ca506e6b7542ebfee9a844df936c90d21d", "tool": "LinkedIn", "notebook": "Follow content published monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to keep track of content published on LinkedIn each month. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_published_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "eac2762bc29e79db13a5652221c17ebee0b37012a8b88da0af2890c432339322", "tool": "LinkedIn", "notebook": "Follow content published weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to stay up-to-date with the latest content published on LinkedIn each week. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_published_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "435a57172667176064f133da7888849c0f1209e8c22bf789fd0e8ab470c3952a", "tool": "LinkedIn", "notebook": "Follow content views by weekdays by hours", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-08-04", "description": "This notebook provides an analysis of the views of content on LinkedIn by day of the week and hour of the day. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_views_by_weekdays_by_hours.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects", "pandas.tseries.offsets.MonthEnd", "calendar", "dateutil.relativedelta.relativedelta"], "image_url": ""}, {"objectID": "c480f026f88fcb2491576b76e6e0e861d709dcbed902fea6ab5407a3394358ac", "tool": "LinkedIn", "notebook": "Follow content views monthly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook provides a monthly overview of the content you are following on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_views_monthly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "c4ef3bf53e18ed4570a193932e08ef3214f5a9ddb23e526db77550e66bc7963c", "tool": "LinkedIn", "notebook": "Follow content views weekly", "action": "", "tags": ["#linkedin", "#html", "#plotly", "#csv", "#image", "#content", "#analytics", "#dependency"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook allows you to track and analyze your weekly content views on LinkedIn. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_content_views_weekly.ipynb", "imports": ["naas", "pandas", "datetime.datetime", "plotly.graph_objects"], "image_url": ""}, {"objectID": "c316be559091eb40bdec9c2b23ad51baf7e859b730cd2fbf93b6b0519b3012a7", "tool": "LinkedIn", "notebook": "Follow number of connections monthly", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#analytics", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-05-17", "description": "This notebook tracks the number of connections made on LinkedIn each month.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Follow_number_of_connections_monthly.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects", "plotly.subplots.make_subplots"], "image_url": ""}, {"objectID": "90e6b184ce0fb7a0025c4af64f6ced3cc38deae800bfed2b23bf3f696371c259", "tool": "LinkedIn", "notebook": "Generate leads from posts", "action": "", "tags": ["#linkedin", "#post", "#comments", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-05-29", "created_at": "2022-01-09", "description": "This notebook provides a guide to leveraging LinkedIn posts to generate leads for your business.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Generate_leads_from_posts.ipynb", "imports": ["naas_drivers.linkedin, hubspot", "pandas", "numpy", "naas", "datetime.datetime, timedelta", "requests", "json"], "image_url": ""}, {"objectID": "38e3a7391f8093e9d1678cb2eb88f6606c087cf81d5dabc31334567fb05b7b55", "tool": "LinkedIn", "notebook": "Get age and gender from profile picture", "action": "", "tags": ["#linkedin", "#machinelearning", "#profile", "#identity", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Nikolaj Groeneweg", "author_url": "https://www.linkedin.com/in/njgroene/", "updated_at": "2023-05-29", "created_at": "2022-06-13", "description": "This notebook estimates a person's age and gender based on their LinkedIn profile picture.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_age_and_gender_from_profile_picture.ipynb", "imports": ["naas_drivers.linkedin", "urllib", "naas", "PIL.Image", "pandas", "numpy", "torch", "torch.nn", "torchvision", "torchvision.datasets, models, transforms", "torchvision", "torchvision.datasets, models, transforms", "torch_mtcnn.detect_faces", "torch_mtcnn.show_bboxes", "torch_mtcnn.detect_faces", "torch_mtcnn.show_bboxes"], "image_url": ""}, {"objectID": "1f9e57be7c17bbd6f7630dec0d4bf80fe2e2184897da9ef6eb74849aa2350da2", "tool": "LinkedIn", "notebook": "Get comments from post", "action": "", "tags": ["#linkedin", "#post", "#comments", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook allows users to retrieve comments from a post on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_comments_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_comments_from_post.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "eb94b13f89163a7980a2cf632af1e207573c35271920d52121659af1d90e0aa5", "tool": "LinkedIn", "notebook": "Get company followers", "action": "", "tags": ["#linkedin", "#company", "#followers", "#naas_drivers", "#automation", "#csv", "#content"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-04-22", "description": "This templates will get all followers from your LinkedIn company and save it into a CSV.

\n**Available columns :**\n- FIRSTNAME : First name\n- LASTNAME : Last name\n- OCCUPATION : Text below the name in the profile page\n- PROFILE_PICTURE : Profile picture URL\n- PROFILE_URL : Profile URL\n- PROFILE_ID : LinkedIn profile id\n- PUBLIC_ID : LinkedIn public profile id\n- FOLLOWED_AT : Date of following company\n- DISTANCE : Distance between your profile", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_company_followers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_company_followers.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas"], "image_url": ""}, {"objectID": "2ed63b3d62d9a60d7600c9811fcb83034ec2ccf8fcebe4d04a0b84c93e7259bd", "tool": "LinkedIn", "notebook": "Get company posts stats", "action": "", "tags": ["#linkedin", "#company", "#post", "#stats", "#naas_drivers", "#content", "#automation", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook provides an analysis of company posts on LinkedIn, including statistics and insights.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_company_posts_stats.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas"], "image_url": ""}, {"objectID": "0a0c8e7351a55631596ec7e7867df20d01ab86dacc006501336aeefc3b9ec15c", "tool": "LinkedIn", "notebook": "Get connections from network", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#analytics", "#csv", "#html", "#image", "#content", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-26", "created_at": "2022-03-03", "description": "This notebook extracts your connections from your LinkedIn profile. It generates a dataframe that includes the following fields: the first and last name of the connection ('FIRSTNAME', 'LASTNAME'), the description present below the name on the profile page ('OCCUPATION'), the date when the connection was made ('CREATED_AT'), the URL of the profile ('PROFILE_URL'), the URL of the profile picture ('PROFILE_PICTURE'), the LinkedIn profile id of the connection ('PROFILE_ID'), and the LinkedIn public profile id of the connection ('PUBLIC_ID').\"", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_connections_from_network.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_connections_from_network.ipynb", "imports": ["naas_drivers.linkedin", "naas", "os"], "image_url": ""}, {"objectID": "3039c637364b8851d8723243b9ac3792d374d33e6e4aa17d7912f7987a3c9fdf", "tool": "LinkedIn", "notebook": "Get contact from profile", "action": "", "tags": ["#linkedin", "#profile", "#contact", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook allows you to extract contact information from LinkedIn profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_contact_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "dba7ad6aa93d52b27f68ac38681d27ba843f3eecf2c50d6f79b56cf7a744a87d", "tool": "LinkedIn", "notebook": "Get conversations", "action": "", "tags": ["#linkedin", "#message", "#getconversations", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-18", "description": "This notebook provides guidance on how to use LinkedIn to start meaningful conversations with potential connections.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_conversations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_conversations.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "ba5a15c282b5e9189b71ddc1dafa3d17bb78e85e011834fece907fad38a80576", "tool": "LinkedIn", "notebook": "Get followers from network", "action": "", "tags": ["#linkedin", "#network", "#followers", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook provides a guide to gaining followers on LinkedIn by leveraging your existing network.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_followers_from_network.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_followers_from_network.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "46d52b8081ec592286caf79ad464265e2ea170f657d869b90154afebc172fdaa", "tool": "LinkedIn", "notebook": "Get guests from event", "action": "", "tags": ["#linkedin", "#event", "#guests", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook provides a guide to using LinkedIn to connect with attendees of an event.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_guests_from_event.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_guests_from_event.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "28a47ab167568046a591d40544558a84e3385a22f3d151363bc6216f8a0b0159", "tool": "LinkedIn", "notebook": "Get identity from profile", "action": "", "tags": ["#linkedin", "#profile", "#identity", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook helps you extract identity information from LinkedIn profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_identity_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "7e64f993d24b11cfe449c8b54a0b60cc51fdabf34ef7ecab7303e3f1cf2b46e4", "tool": "LinkedIn", "notebook": "Get info from company", "action": "", "tags": ["#linkedin", "#company", "#info", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-03-21", "description": "This notebook provides a way to access and analyze data from LinkedIn to gain insights about companies.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_info_from_company.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_info_from_company.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "e810951640a697452790d8df52dcefc6fe0b153852fdbc64b02f6d9d408908dd", "tool": "LinkedIn", "notebook": "Get invitations received", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-05-29", "created_at": "2022-04-05", "description": "This notebook provides an overview of invitations received on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_invitations_received.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_invitations_received.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "image_url": ""}, {"objectID": "0cb2069ad12899638d06c4e58ca80fe82859e4a8b1129cd506a0f5d9cd3f2219", "tool": "LinkedIn", "notebook": "Get invitations sent", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-05-29", "created_at": "2022-04-07", "description": "This notebook helps you to send invitations to connect on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_invitations_sent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_invitations_sent.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "image_url": ""}, {"objectID": "f4b40da212ddcec161cf5ee03acc8fc0ef067e2d7a6994aac0f9baa88261a3aa", "tool": "LinkedIn", "notebook": "Get likes from post", "action": "", "tags": ["#linkedin", "#post", "#likes", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook provides tips and tricks to help you get more likes on your LinkedIn posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_likes_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_likes_from_post.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "5b91ab7f52c2a2419b44012f0eb658599ffb275c6e8215222c2436218f551efa", "tool": "LinkedIn", "notebook": "Get messages from profile", "action": "", "tags": ["#linkedin", "#message", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook allows you to access and respond to messages sent to your LinkedIn profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_messages_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "40b7886be679eaf7d0c1b0d2f739297554c4a26f467bd3cabe692ae7e200d492", "tool": "LinkedIn", "notebook": "Get network from profile", "action": "", "tags": ["#linkedin", "#profile", "#network", "#followers", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook helps you to quickly and easily build your professional network on LinkedIn by extracting contacts from your profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_network_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_network_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "772920fe39026c5b2f7ac54cbe59920fd5190a8a331bbdca43cb6d62412e6dfc", "tool": "LinkedIn", "notebook": "Get polls from post", "action": "", "tags": ["#linkedin", "#post", "#polls", "#naas_drivers", "#content", "#analytics", "#image", "#html", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-01-27", "description": "This notebook allows users to get poll results from their LinkedIn posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_polls_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_polls_from_post.ipynb", "imports": ["naas_drivers.linkedin", "plotly.express"], "image_url": ""}, {"objectID": "c3bbc0a688cb73907fda0ee047c06ac4c28ead5e92bb3c9be20f01a199b9d9c6", "tool": "LinkedIn", "notebook": "Get posts engagements", "action": "", "tags": ["#linkedin", "#posts", "#interactions", "#metrics", "#analytics", "#automation", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-08-04", "description": "This notebook provides insights into how to increase engagement on LinkedIn posts. To run this notebook, you must have already run LinkedIn_Get_profile_posts_stats.ipynb or LinkedIn_Get_company_posts_stats.ipynb to get your post stats in CSV.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_posts_engagements.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_posts_engagements.ipynb", "imports": ["naas", "pandas", "datetime.datetime"], "image_url": ""}, {"objectID": "1da4b1cd630239550bc3c7fab1f27f151766aaec25a552b97308ba1751c8ee8b", "tool": "LinkedIn", "notebook": "Get profile information", "action": "", "tags": ["#linkedin", "#profile", "#resume", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-10-06", "description": "This notebook allows you to access and analyze profile information from LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_profile_information.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_profile_information.ipynb", "imports": ["naas_drivers.linkedin", "naas"], "image_url": ""}, {"objectID": "ff638a6ff20341b8d9c703bd58fb5088b4bfd7df4f07be972ae77d964ad9eb84", "tool": "LinkedIn", "notebook": "Get profile posts stats", "action": "", "tags": ["#linkedin", "#profile", "#post", "#stats", "#naas_drivers", "#content", "#automation", "#csv"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-30", "description": "This notebook provides a way to track and analyze the performance of posts on your LinkedIn profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_profile_posts_stats.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas"], "image_url": ""}, {"objectID": "8b7569435004cb9dd156456bcf7d1d807f5b4fc77c072b46ebc223f9b671ad18", "tool": "LinkedIn", "notebook": "Get resume from profile", "action": "", "tags": ["#linkedin", "#profile", "#resume", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-10-14", "description": "This notebook allows users to extract resumes from LinkedIn profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_resume_from_profile.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "14515451ee7c352417fc76bfd5acc3163dd04872ac20feb2a0a18fe0bda7db51", "tool": "LinkedIn", "notebook": "Get sentiment analysis from post comments", "action": "", "tags": ["#linkedin", "#sentimentanalysis", "#api", "#python", "#nlp", "#textanalysis"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-10", "created_at": "2023-08-10", "description": "This notebook provides a sentiment analysis of comments from LinkedIn post. This is useful to understand the sentiment of their posts and the reactions of their followers. The five adjectives that will be used to analyze comment sentiment on LinkedIn are the following:\n- \"Praise\" - This is for highly positive comments that express admiration or approval. These comments often include compliments or positive feedback.\n- \"Supportive\" - This is for positive comments that may not necessarily contain high praise but show agreement, support, or encouragement.\n- \"Neutral\" - This is for comments that are neither positive nor negative, often factual statements or questions without any clear positive or negative connotations.\n- \"Constructive\" - This is for comments that may seem negative but are intended to provide constructive feedback or suggest improvements.\n- \"Disapproving\" - This is for comments that express disagreement, criticism, or negative feedback.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_sentiment_analysis_from_post_comments.ipynb", "imports": ["naas_drivers.linkedin", "openai", "openai", "pandas", "datetime.datetime", "naas", "plotly.express"], "image_url": ""}, {"objectID": "484bd5a79481d84712cb9422e5af9b6dead06ecd0eb1fb6a1acc01dc13006e29", "tool": "LinkedIn", "notebook": "Get sentiment emotion irony offensiveness from comments", "action": "", "tags": ["#linkedin", "#nlp", "#transformers", "#ai", "#post", "#comments", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Nikolaj Groeneweg", "author_url": "https://www.linkedin.com/in/njgroene/", "updated_at": "2023-05-29", "created_at": "2022-06-20", "description": "This notebook gets all the comments on a LinkedIn post, and performs sentiment analysis, emotion classification and some semantic analysis on them. \nIt classifies each comment and returns the following information:\n\n- is the comment positive, negative or neutral?\n- is the comment ironic?\n- is the comment offensive?\n- does the comment express joy, optimism, anger or sadness?", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_sentiment_emotion_irony_offensiveness_from_comments.ipynb", "imports": ["naas_drivers.linkedin", "transformers.pipeline", "transformers.AutoModelForSequenceClassification", "transformers.TFAutoModelForSequenceClassification", "transformers.AutoTokenizer", "numpy", "scipy.special.softmax", "csv", "urllib.request", "os.path", "naas"], "image_url": ""}, {"objectID": "e60798c0bb96ef5ed0f5bbc38d36550eb2ca05d7a8db31333acbb4e0829ed36d", "tool": "LinkedIn", "notebook": "Get stats from post", "action": "", "tags": ["#linkedin", "#post", "#stats", "#naas_drivers", "#snippet", "#content", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook provides a way to track and analyze the performance of posts on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Get_stats_from_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Get_stats_from_post.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "454ba60f826a23c1da2e7a14200ba258bc48c26ab0b4e2546278884c5fa1967c", "tool": "LinkedIn", "notebook": "Ignore invitation received", "action": "", "tags": ["#linkedin", "#content", "#operations", "#snippet", "#invitation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-05-29", "created_at": "2022-04-05", "description": "This notebook is for tracking invitations received on LinkedIn that have been ignored.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Ignore_invitation_received.ipynb", "imports": ["naas_drivers.linkedin", "pandas"], "image_url": ""}, {"objectID": "cf79c294525d2cb1495b9d0a19e50676f1eadac2aa2fa738fe2be626f61d807d", "tool": "LinkedIn", "notebook": "Send comments from post to gsheet", "action": "", "tags": ["#linkedin", "#post", "#comments", "#gsheet", "#naas_drivers", "#content", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-03-17", "description": "This notebook allows users to automatically send comments from a LinkedIn post to a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_comments_from_post_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "random", "time", "pandas", "datetime.datetime"], "image_url": ""}, {"objectID": "0b5da370401973d25b59a20591783fd711110252b8b455cda4e34c1c0be273c1", "tool": "LinkedIn", "notebook": "Send company followers to Google Sheets", "action": "", "tags": ["#linkedin", "#company", "#followers", "#naas_drivers", "#automation", "#googlesheets", "#content"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-04-22", "description": "This notebook allows users to export their LinkedIn company followers to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_company_followers_to_Google_Sheets.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "pandas", "naas"], "image_url": ""}, {"objectID": "197e953f50f2bd29e259cadd4568587ab0f2ee2cff1f47ed233a69253f419c4f", "tool": "LinkedIn", "notebook": "Send connections from network to gsheet", "action": "", "tags": ["#linkedin", "#network", "#connections", "#naas_drivers", "#csv", "#automation", "#content", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-03-17", "description": "This notebook allows users to export their LinkedIn connections to a Google Sheet for easy organization and tracking.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_connections_from_network_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "naas", "pandas"], "image_url": ""}, {"objectID": "085902bb7fa3c3f0814ec7b5309206de2c60937f383c1765d58bd70581f920df", "tool": "LinkedIn", "notebook": "Send event invitations post engagements", "action": "", "tags": ["#linkedin", "#events", "#invitations", "#naas_drivers", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-07-08", "description": "This notebook allows users to send event invitations and post engagements on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_event_invitations_post_engagements.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "requests", "time"], "image_url": ""}, {"objectID": "8f2f7ab311c3b0058af4aa3dfb216fe0e7f1a9f78d14a2f8bff4661f5f46e89c", "tool": "LinkedIn", "notebook": "Send followers demographic data to a Google Sheets spreadsheet", "action": "", "tags": ["#\"linkedin", "#googlesheets", "#gsheet", "#data", "#naas_drivers", "#demographics", "#content", "#snippet"], "author": "Asif Syed", "author_url": "https://www.linkedin.com/in/asifsyd/", "updated_at": "2023-05-29", "created_at": "2022-07-11", "description": "This notebook allows users to easily export demographic data about their LinkedIn followers to a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_followers_demographic_data_to_a_Google_Sheets_spreadsheet.ipynb", "imports": ["naas_drivers.gsheet", "naas_drivers.linkedin", "pandas", "numpy", "naas"], "image_url": ""}, {"objectID": "b6b084bb3f63093ac35b2d2ddee1537e97e5aa2c5f288f5f1b68baf1871c3eae", "tool": "LinkedIn", "notebook": "Send invitation to company followers", "action": "", "tags": ["#linkedin", "#company", "#followers", "#invitations", "#naas_drivers", "#automation", "#content"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-04-22", "description": "This notebook allows users to send invitations to their company's followers on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_company_followers.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.datetime", "naas", "plotly.graph_objects", "os"], "image_url": ""}, {"objectID": "37c5863ae1a3514167b091d00832094a7c8a267ed37a464de412872cb19c50a6", "tool": "LinkedIn", "notebook": "Send invitation to profile", "action": "", "tags": ["#linkedin", "#invitation", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-18", "description": "This notebook allows users to send invitations to connect on LinkedIn to other profiles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_profile.ipynb", "imports": ["naas_drivers.linkedin", "naas"], "image_url": ""}, {"objectID": "f0fba0385a33845e76e5bcd0c3a61e1c1b6574dcbec369b6f3cc81f4da639439", "tool": "LinkedIn", "notebook": "Send invitation to profile from post likes", "action": "", "tags": ["#linkedin", "#post", "#likes", "#naas_drivers", "#invitation", "#content", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-05-09", "description": "This notebook allows users to send LinkedIn invitations to profiles based on post likes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitation_to_profile_from_post_likes.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "time"], "image_url": ""}, {"objectID": "65002d9da74692480adb03f4deaa5afef7d1561f0bbf6953e2d555eeb1e5837a", "tool": "LinkedIn", "notebook": "Send invitations to post commenters", "action": "", "tags": ["#linkedin", "#post", "#comments", "#invitations", "#connections", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Asif Syed", "author_url": "https://www.linkedin.com/in/asifsyd/", "updated_at": "2023-05-29", "created_at": "2022-07-17", "description": "This notebook allows users to quickly and easily send LinkedIn invitations to people who have commented on their posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_invitations_to_post_commenters.ipynb", "imports": ["naas_drivers.linkedin", "naas", "time"], "image_url": ""}, {"objectID": "c85a3805e5e3536844c2b044e45753ced940951c9442c984d6704354a006eabb", "tool": "LinkedIn", "notebook": "Send like to latest profile post", "action": "", "tags": ["#linkedin", "#socialmedia", "#like", "#profile", "#post", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-03", "created_at": "2023-08-03", "description": "This notebook will follow a profile on LinkedIn and send like to its last posts.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_like_to_latest_profile_post.ipynb", "imports": ["naas_drivers.linkedin", "requests", "naas", "os", "hashlib", "hashlib"], "image_url": ""}, {"objectID": "e3eabf565c9cdb8e722c927522ecfe036376ee19a9d9b119f55a9c5440373e7e", "tool": "LinkedIn", "notebook": "Send like to post", "action": "", "tags": ["#linkedin", "#socialmedia", "#like", "#post", "#python", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-02", "created_at": "2023-08-02", "description": "This notebook will show how to send a like to a post published on LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_like_to_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_like_to_post.ipynb", "imports": ["naas_drivers.linkedin", "requests", "naas"], "image_url": ""}, {"objectID": "e94667908de603647180dc81387e1c2bcfd5d0ad5397217632d78647873462cf", "tool": "LinkedIn", "notebook": "Send likes from post to gsheet", "action": "", "tags": ["#linkedin", "#post", "#likes", "#gsheet", "#naas_drivers", "#content", "#snippet", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-03-17", "description": "This notebook automates the process of sending likes from LinkedIn posts to a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_likes_from_post_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "random", "time", "pandas", "datetime.datetime"], "image_url": ""}, {"objectID": "dd529268f794af9c567c6b89ebda05232650474d2045ffd7ba0800fa866f0e1f", "tool": "LinkedIn", "notebook": "Send message to new connections", "action": "", "tags": ["#linkedin", "#message", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Asif Syed", "author_url": "https://www.linkedin.com/in/www.linkedin.com/in/asifsyd/", "updated_at": "2023-05-29", "created_at": "2022-07-06", "description": "This notebook allows users to quickly and easily send messages to their new LinkedIn connections.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_new_connections.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "datetime.date", "naas"], "image_url": ""}, {"objectID": "a3372b8ea91440ad0889bc2f287878a924198874c1e5f00d36a07ebf360a73c2", "tool": "LinkedIn", "notebook": "Send message to profile", "action": "", "tags": ["#linkedin", "#message", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2021-06-17", "description": "This notebook allows you to send a message to a LinkedIn profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_message_to_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_profile.ipynb", "imports": ["naas_drivers.linkedin"], "image_url": ""}, {"objectID": "a6bf8dc89284ce4e8c4233f645ff59cc200717ca056b7bd1e630a1ed463e9561", "tool": "LinkedIn", "notebook": "Send message to profile from post likes", "action": "", "tags": ["#linkedin", "#post", "#likes", "#naas_drivers", "#message", "#content", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-05-09", "description": "This notebook allows users to send messages to LinkedIn profiles from posts they have liked.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_message_to_profile_from_post_likes.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "time"], "image_url": ""}, {"objectID": "527096707df50d4a343fc763b05e143cd4f346da125d7cd362696fae92628e05", "tool": "LinkedIn", "notebook": "Send posts feed to gsheet", "action": "", "tags": ["#linkedin", "#profile", "#post", "#stats", "#naas_drivers", "#automation", "#content", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-03-17", "description": "This notebook automates the process of sending LinkedIn posts to a Google Sheet for easy tracking and analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_posts_feed_to_gsheet.ipynb", "imports": ["naas_drivers.linkedin, gsheet", "naas", "pandas"], "image_url": ""}, {"objectID": "1d4114e63bdbb69e6e961f9140c1495707caf472877acb48e79061319b7c58c9", "tool": "LinkedIn", "notebook": "Send profile followers by email", "action": "", "tags": ["#linkedin", "#network", "#followers", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-02", "description": "This notebook allows users to send emails to their LinkedIn profile followers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_profile_followers_by_email.ipynb", "imports": ["naas_drivers.linkedin, emailbuilder", "naas", "pandas", "datetime.datetime"], "image_url": ""}, {"objectID": "c68448105b3374452761515cae1f4839a8efd59d518fca9b53bae22b2ee6c25c", "tool": "LinkedIn", "notebook": "Send weekly post engagement metrics by email", "action": "", "tags": ["#linkedin", "#tool", "#posts", "#engagement", "#metrics", "#analytics", "#automation", "#email", "#naas", "#notification"], "author": "Nikolaj Groeneweg", "author_url": "https://www.linkedin.com/in/njgroene/", "updated_at": "2023-05-29", "created_at": "2022-05-11", "description": "This notebook automates the process of sending weekly post engagement metrics from LinkedIn via email.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Send_weekly_post_engagement_metrics_by_email.ipynb", "imports": ["naas_drivers.linkedin", "naas", "dateutil.parser.parse", "matplotlib.pyplot", "seaborn", "seaborn", "pandas", "datetime.datetime, date", "random", "time"], "image_url": ""}, {"objectID": "0826bb1d3a9f1983c0684a8cf33240c5bd6edeef1f65bbdfe89a7ced5138ee0c", "tool": "LinkedIn", "notebook": "Update metrics from company posts in Notion content calendar", "action": "", "tags": ["#linkedin", "#profile", "#post", "#feed", "#naas_drivers", "#notion", "#automation", "#analytics", "#naas", "#scheduler", "#content", "#plotly", "#html", "#csv", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-06-08", "description": "This notebook allows users to track the performance of their company's posts on LinkedIn by updating metrics in Notion's content calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Update_metrics_from_company_posts_in_Notion_content_calendar.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion", "datetime.datetime", "pandas", "plotly.express", "os", "requests"], "image_url": ""}, {"objectID": "e79fd40c42943142b09858493a155dd89ea2399f5fb45070b0ab28de29153c52", "tool": "LinkedIn", "notebook": "Update metrics from posts in Notion content calendar", "action": "", "tags": ["#linkedin", "#profile", "#post", "#feed", "#naas_drivers", "#notion", "#automation", "#analytics", "#naas", "#scheduler", "#content", "#plotly", "#html", "#csv", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-03-22", "description": "This notebook allows users to track the performance of their LinkedIn posts by automatically updating metrics from their Notion content calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Update_metrics_from_posts_in_Notion_content_calendar.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion, emailbuilder", "datetime.datetime", "pandas", "plotly.express", "os", "requests"], "image_url": ""}, {"objectID": "04c698d2af7423916c8813d69fb15a47ac877cb56b2f6a3f81aa8c0ebddb5eda", "tool": "LinkedIn", "notebook": "Withdraw pending profile invitations", "action": "", "tags": ["#linkedin", "#invitation", "#pending", "#naas_drivers", "#content", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-29", "created_at": "2022-09-22", "description": "This notebook allows users to view and manage pending profile invitations sent through LinkedIn.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/LinkedIn/LinkedIn_Withdraw_pending_profile_invitations.ipynb", "imports": ["naas_drivers.linkedin", "pandas", "naas", "time", "datetime.datetime", "dateutil.relativedelta.relativedelta", "json", "requests"], "image_url": ""}, {"objectID": "c4aa64628872dabf26a9f58ad9be5a790a83a704cfcd3b791774f949ce8df046", "tool": "Matplotlib", "notebook": "Create Barchart", "action": "", "tags": ["#matplotlib", "#chart", "#barchart", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "", "updated_at": "2023-07-17", "created_at": "2023-07-17", "description": "This notebook provides instructions on how to create a barchart chart using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Barchart.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "087c2b13300d04d4048791c573da3382591f69fdbeeb3db9d872a17a9c293063", "tool": "Matplotlib", "notebook": "Create Horizontal Barchart", "action": "", "tags": ["#matplotlib", "#chart", "#horizontal barchart", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-17", "created_at": "2023-07-17", "description": "This notebook provides instructions on how to create a horizontal Bar chart using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Horizontal_barchart.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "b44c24fa0f9c6a8934b98015860672c84babcf90aabd201045cef089cac9e10b", "tool": "Matplotlib", "notebook": "Create Stacked Barchart", "action": "", "tags": ["#matplotlib", "#chart", "#stacked barchart", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-24", "created_at": "2023-07-17", "description": "This notebook provides instructions on how to create a stacked Bar chart using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Stacked_barchart.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "6c294eadef488f2bffbf61bdc27d1118210c59ff5131678cf5ea3b9ffb8c8db4", "tool": "Matplotlib", "notebook": "Create Stackplots", "action": "", "tags": ["#matplotlib", "#chart", "#stackplots", "#streamgraphs", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook provides instructions on how to create stackplots using matplotlib. Stackplots draw multiple datasets as vertically stacked areas. This is useful when the individual data values and additionally their cumulative value are of interest.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Stackplot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Stackplot.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "1f3fc35bee4b3150b9147bddd14a9ddcc1b03b43e06219f599ffbf03c0670508", "tool": "Matplotlib", "notebook": "Create Step Demo", "action": "", "tags": ["#matplotlib", "#chart", "#step demo", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-25", "created_at": "2023-07-24", "description": "This notebook provides instructions on how to plot the coherence of two signals using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Step_Demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Step_Demo.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "9776fa7b943cf273829c127952e6b3fa77670a7f6964394f776398982b55a76e", "tool": "Matplotlib", "notebook": "Create Streamgraphs", "action": "", "tags": ["#matplotlib", "#chart", "#stackplots", "#streamgraphs", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook provides instructions on how to create using matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Streamgraphs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Streamgraphs.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "5d656a5d27e392c123ffbf464947fa2704905053ca4492c2f5d4c83b4078df64", "tool": "Matplotlib", "notebook": "Create Waterfall chart", "action": "", "tags": ["#matplotlib", "#chart", "#warterfall", "#dataviz", "#snippet", "#operations", "#image"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a Waterfall chart using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_Waterfall_chart.ipynb", "imports": ["numpy", "pandas", "matplotlib.pyplot", "matplotlib.ticker.FuncFormatter"], "image_url": ""}, {"objectID": "d0d75eac84da33d249e5a02389b33b1d1072ec9fa51c3714cc2d1301bce1a15e", "tool": "Matplotlib", "notebook": "Creating a timeline with lines, dates, and text", "action": "", "tags": ["#matplotlib", "#chart", "#timeline", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-25", "created_at": "2023-07-24", "description": "This notebook provides instructions on how to create a simple timeline using Matplotlib release dates.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Create_timeline%20_with_lines_dates_and_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Create_timeline%20_with_lines_dates_and_text.ipynb", "imports": ["matplotlib.pyplot", "numpy", "matplotlib.dates", "datetime.datetime", "naas", "urllib.request", "json"], "image_url": ""}, {"objectID": "c32df804be451c266b92c3ad55937b47476ccfc6f07ce09ac434fce8e1c5f0e1", "tool": "Matplotlib", "notebook": "Errorbar Limit Selection", "action": "", "tags": ["#matplotlib", "#chart", "#errorbar", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook provides instructions on how to create illustrations of selectively drawing lower and/or upper limit symbols on errorbars using the parameters uplims, lolims of errorbar using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Errorbar_limit_selection.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "ec9d2f3bc763b8c5dab172f1354acd3ef85d13adbcfe201601c7155547bb3429", "tool": "Matplotlib", "notebook": "Mapping marker properties to multivariate data", "action": "", "tags": ["#matplotlib", "#chart", "#stackplots", "#markers", "#dataviz", "#snippet", "#operations", "#image", "#multivariate datasets"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-25", "created_at": "2023-07-24", "description": "This notebook shows how to use different properties of markers to plot multivariate datasets using Matplotlib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Map_marker_properties_to_plot_multivariate_data.ipynb", "imports": ["numpy", "matplotlib.pyplot", "matplotlib.markers.MarkerStyle", "matplotlib.transforms.Affine2D", "matplotlib.text.TextPath", "naas"], "image_url": ""}, {"objectID": "42138b50edc125a7228a7a869f6566ffccf68e03ad9a7f48c4c553f3ff2f00e6", "tool": "Matplotlib", "notebook": "Plotting the Coherence of two signals", "action": "", "tags": ["#matplotlib", "#chart", "#coherence", "#dataviz", "#snippet", "#operations", "#image"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-25", "created_at": "2023-07-24", "description": "This notebook provides instructions on how to plot the coherence of two signals using Matplotlib", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Matplotlib/Matplotlib_Plotting_the_coherence_of_two_signals.ipynb", "imports": ["numpy", "matplotlib.pyplot", "naas"], "image_url": ""}, {"objectID": "4a4589dd47268d7b41670305c96da56350a70ae172778a99f62759ae520ca82d", "tool": "Metrics Store", "notebook": "Content creation Track connections", "action": "", "tags": ["#metricsstore", "#metrics", "#content-creation", "#connections", "#content", "#snippet", "#plotly"], "author": "Riddhi Deshpande", "author_url": "https://www.linkedin.com/in/riddhideshpande/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "This notebook allows users to track connections related to content creation for the Metrics Store.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Metrics%20Store/Content_creation_Track_connections.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Metrics%20Store/Content_creation_Track_connections.ipynb", "imports": ["naas_drivers.notion", "naas", "pandas", "plotly.express"], "image_url": ""}, {"objectID": "32ed25173bd9f466a47c983ffa60c2443f32dfa1abefdb12445840b50f37a01f", "tool": "Microsoft Teams", "notebook": "Send message", "action": "", "tags": ["#microsoftteams", "#snippet", "#operations"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook allows users to send messages through Microsoft Teams.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Microsoft%20Teams/Microsoft_Teams_Send_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Microsoft%20Teams/Microsoft_Teams_Send_message.ipynb", "imports": ["naas_drivers.teams"], "image_url": ""}, {"objectID": "b4452f1b67f4490a67006104ca10458588e76c3188b5d0da2519c9a7d24fcf43", "tool": "Microsoft Word", "notebook": "Convert to HMTL", "action": "", "tags": ["#microsoftword", "#word", "#microsoft", "#html", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook allows users to convert Microsoft Word documents into HTML format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Microsoft%20Word/Microsoft_Word_Convert_to_HMTL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Microsoft%20Word/Microsoft_Word_Convert_to_HMTL.ipynb", "imports": ["mammoth", "mammoth"], "image_url": ""}, {"objectID": "a53f5b5e6b059ad365cf319b58a4a0d99fd1f954bd7c82bb61bdd9d42b9beebc", "tool": "Mixpanel", "notebook": "Get Profile Event Activity", "action": "", "tags": ["#mixpanel", "#activity", "#stream", "#query", "#api", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-06", "created_at": "2023-07-06", "description": "This notebook returns the activity feed for specified users. It is usefull for organizations to track user activity and get insights from it.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Mixpanel/Mixpanel_Get_Profile_Event_Activity.ipynb", "imports": ["requests", "json", "naas"], "image_url": ""}, {"objectID": "4252489d2efa2ce3fd0f5a3307c6b97db4ab6744a01716b56f718411ccb7d4a1", "tool": "MongoDB", "notebook": "Get data", "action": "", "tags": ["#mongodb", "#database", "#naas_drivers", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-03-03", "description": "This notebook provides instructions on how to retrieve data from a MongoDB database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MongoDB/MongoDB_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Get_data.ipynb", "imports": ["naas_drivers.mongo"], "image_url": ""}, {"objectID": "ec3994d9054fd4ae36571978044ce3caca24fc1912451bb7a8d872dada0831fc", "tool": "MongoDB", "notebook": "Send data", "action": "", "tags": ["#mongodb", "#database", "#naas_drivers", "#snippet", "#operations", "#naas"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-03-03", "description": "This notebook provides instructions on how to send data to a MongoDB database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MongoDB/MongoDB_Send_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Send_data.ipynb", "imports": ["naas_drivers.mongo", "pandas"], "image_url": ""}, {"objectID": "d7646a98514c3189281b5bfe97b6c5c639807d7eb9b6d6c1367b0c0934d5d540", "tool": "MongoDB", "notebook": "Send data to Google Sheets", "action": "", "tags": ["#mongodb", "#googlesheets", "#nosql", "#operations", "#automation"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-04-12", "created_at": "2022-03-21", "description": "This notebook will help you send data from your MongoDB database collection to your spreadsheet", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MongoDB/MongoDB_Send_data_to_Google_Sheets.ipynb", "imports": ["naas_drivers.mongo, gsheet", "pandas", "naas"], "image_url": ""}, {"objectID": "47c0e6657c573a3ff0e9d41a364f948a355dee01276d4dca70e25b179bb648a1", "tool": "MoviePy", "notebook": "Convert audio file M4A to MP3", "action": "", "tags": ["#moviepy", "#audio", "#convert", "#m4a", "#mp3", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-23", "created_at": "2023-07-23", "description": "This notebook would allow you to transform an audio file from M4A to MP3. It can be further used by people who want to use their Iphone voice recording m\u00e9mos file and generate transcripts with AI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MoviePy/MoviePy_Convert_audio_file_M4A_to_MP3.ipynb", "imports": ["moviepy.editor.AudioFileClip", "moviepy.editor.AudioFileClip", "requests"], "image_url": ""}, {"objectID": "b8efa6e10ef17925c883986434e62e36da03dc7dd1c07b6660016b7ece44f8ba", "tool": "MySQL", "notebook": "Query database", "action": "", "tags": ["#mysql", "#database", "#snippet", "#operations", "#naas"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides an introduction to querying a MySQL database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/MySQL/MySQL_Query_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/MySQL/MySQL_Query_database.ipynb", "imports": ["os", "pymysql", "pandas"], "image_url": ""}, {"objectID": "334f731f131404dea142a3cf7464a96763daa3cd3b8ce4e28e96a6796f25824c", "tool": "NASA", "notebook": "Artic sea ice", "action": "", "tags": ["#nasa", "#naas", "#opendata", "#analytics", "#asset", "#html", "#png", "#operations", "#image", "#plotly"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-05-10", "description": "AVERAGE SEPTEMBER MINIMUM EXTENT
\nData source: Satellite observations. Credit: NSIDC/NASA\n\n**What is Arctic sea ice extent?**
\nSea ice extent is a measure of the surface area of the ocean covered by sea ice. Increases in air and ocean temperatures decrease sea ice extent; in turn, the resulting darker ocean surface absorbs more solar radiation and increases Arctic warming.
\nDate Range: 1979 - 2020.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Artic_sea_ice.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Artic_sea_ice.ipynb", "imports": ["pandas", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "8c8fa4d995ff61138dd01ab17c04bb8001b05cbb2aeb5f0eaab6a5c27c9ed6f4", "tool": "NASA", "notebook": "Display Exoplanet by Light Curves", "action": "", "tags": ["#nasa", "#naas", "#opendata", "#analytics", "#astronomy", "#html", "#png", "#operations", "#image", "#pylab"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-31", "created_at": "2023-07-05", "description": "This notebook is display Exoplanet by light curves. An exoplanet is any planet beyond our solar system. Most orbit other stars, but free-floating exoplanets, called rogue planets, orbit the galactic center and are untethered to any star.
", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Classify_Exoplanet_by_light_curves.ipynb", "imports": ["pandas", "numpy", "naas"], "image_url": ""}, {"objectID": "1fcde93a2f4eb30a04bb469261370e4772541277ba8e30b726593dd5939d11f6", "tool": "NASA", "notebook": "Global temperature", "action": "", "tags": ["#nasa", "#opendata", "#analytics", "#plotly"], "author": "Colyn TIDMAN", "author_url": "https://www.linkedin.com/in/dylan-pichon/", "updated_at": "2023-04-12", "created_at": "2021-05-28", "description": "This graph illustrates the change in global surface temperature relative to 1951-1980 average temperatures. Nineteen of the warmest years have occurred since 2000, with the exception of 1998. The year 2020 tied with 2016 for the warmest year on record since record-keeping began in 1880 (source: NASA/GISS). This research is broadly consistent with similar constructions prepared by the Climatic Research Unit and the National Oceanic and Atmospheric Administration.\n\nThe time series below shows the five-year average variation of global surface temperatures. Dark blue indicates areas cooler than average. Dark red indicates areas warmer than average.\n\nThe \u201cGlobal Temperature\u201d figure on the home page dashboard shows global temperature change since 1880. One gets this number by subtracting the first data point in the chart from the latest data point.\n\nWebsite : https://climate.nasa.gov/vital-signs/global-temperature/", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Global_temperature.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Global_temperature.ipynb", "imports": ["pandas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "32201bf648e273b41b194575397810ecfb97f21cd37d9d8446341a12f96d0751", "tool": "NASA", "notebook": "Sea level", "action": "", "tags": ["#nasa", "#naas", "#opendata", "#analytics", "#plotly"], "author": "Colyn TIDMAN", "author_url": "https://www.linkedin.com/in/dylan-pichon/", "updated_at": "2023-04-12", "created_at": "2021-05-28", "description": "Sea level rise is caused primarily by two factors related to global warming: the added water from melting ice sheets and glaciers and the expansion of seawater as it warms. The first graph tracks the change in sea level since 1993 as observed by satellites.\n\nThe second graph, derived from coastal tide gauge and satellite data, shows how much sea level changed from about 1900 to 2018. Items with pluses (+) are factors that cause global mean sea level to increase, while minuses (-) are variables that cause sea levels to decrease. These items are displayed at the time they were affecting sea level.\n\nThe data shown are the latest available, with a four- to five-month lag needed for processing.\n\n* You now need to create an Earthdata account to access NASA's sea level data. Register for free by clicking on 'Get data : http'. Once logged in you will access the data.\n\nWebsite : https://climate.nasa.gov/vital-signs/sea-level/", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/NASA/NASA_Sea_level.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/NASA/NASA_Sea_level.ipynb", "imports": ["pandas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "397ec80a5d605618ddb1c746bd5ae1cf2a9cde80101da5a4d1f3b50caf56dd22", "tool": "Naas Auth", "notebook": "Bearer validate", "action": "", "tags": ["#naasauth", "#naas", "#auth", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2022-01-20", "description": "This notebook provides a way to validate Bearer tokens for authentication with the Naas API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Auth/Naas_Auth_bearer_validate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Auth/Naas_Auth_bearer_validate.ipynb", "imports": ["naas_drivers.naasauth"], "image_url": ""}, {"objectID": "707ec48e296bbb6f5fcc8033d750087e362ad452a041e95f21c6d735dedfc4c8", "tool": "Naas Auth", "notebook": "Connect", "action": "", "tags": ["#naasauth", "#naas", "#auth", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2022-01-20", "description": "Naas Auth - Connect is a notebook that allows users to securely authenticate and connect to their Naas account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Auth/Naas_Auth_connect.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Auth/Naas_Auth_connect.ipynb", "imports": ["naas_drivers.naasauth"], "image_url": ""}, {"objectID": "a20de7e2d83d0f89de859559f5cf13c396e48b548762365f135ee5b9711a408f", "tool": "Naas Auth", "notebook": "Users me", "action": "", "tags": ["#naasauth", "#naas", "#auth", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2022-01-20", "description": "This notebook provides a user-friendly interface for authenticating users with Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Auth/Naas_Auth_users_me.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Auth/Naas_Auth_users_me.ipynb", "imports": ["naas_drivers.naasauth"], "image_url": ""}, {"objectID": "0868c0a991f66c0a07b9d6f8f005dd86de34a21d6f03a692962537e3cd119dde", "tool": "Naas Dashboard", "notebook": "Financial Consolidation", "action": "", "tags": ["#naasdashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics", "#snippet", "#datavizualisation"], "author": "Meriem Si", "author_url": "https://www.linkedin.com/in/meriem-si-104236181/", "updated_at": "2023-04-12", "created_at": "2022-09-12", "description": "This notebook provides a comprehensive dashboard for financial consolidation and analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Dashboard/Naas_Dashboard_Financial_Consolidation.ipynb", "imports": ["dash", "dash", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components", "dash_bootstrap_components", "plotly.graph_objects", "plotly.express", "os", "pandas", "naas_drivers.gsheet", "dash_bootstrap_components._components.Container.Container", "plotly.subplots.make_subplots"], "image_url": ""}, {"objectID": "b914e946e624466c61e2bc0891564eedd3c6d8fc5f59c62e5caaff62e612e88b", "tool": "Naas Dashboard", "notebook": "Revenue Cogs by Segment", "action": "", "tags": ["#naasdashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics", "#snippet", "#datavizualisation"], "author": "Fernando Chavez Osuna", "author_url": "https://www.linkedin.com/in/fernando-chavez-osuna-1a420a181", "updated_at": "2023-04-12", "created_at": "2022-09-22", "description": "This notebook provides an analysis of revenue cogs by segment for the Naas Dashboard.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Dashboard/Naas_Dashboard_Revenue_Cogs_by_Segment.ipynb", "imports": ["dash", "dash", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components", "dash_bootstrap_components", "plotly.graph_objects", "plotly.express", "os", "naas_drivers", "naas_drivers.gsheet", "dash_bootstrap_components._components.Container.Container", "pandas"], "image_url": ""}, {"objectID": "16c5518def67a82a87c39ce69fd9ab6a967b9e509c063c8e6541f593ed677b01", "tool": "Naas Dashboard", "notebook": "Social Media KPIs ScoreCard", "action": "", "tags": ["#naasdashboard", "#plotly", "#dash", "#naas", "#asset", "#automation", "#analytics", "#snippet", "#datavizualisation"], "author": "Ismail CHIHAB", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "updated_at": "2023-04-12", "created_at": "2022-09-12", "description": "This notebook provides a comprehensive scorecard of key performance indicators for social media platforms.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas%20Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas%20Dashboard/Naas_Dashboard_Social_Media_KPIs_ScoreCard.ipynb", "imports": ["dash", "dash", "dash.html, dcc, Input, Output, State", "dash_bootstrap_components", "dash_bootstrap_components", "naas", "naas_drivers.gsheet", "dash.html, dash_table", "dash.dependencies.Input, Output, State", "dash.dcc", "pandas", "os"], "image_url": ""}, {"objectID": "49f156224d2f4ba86dc03cb514690634f99d651dd4c8f390d9471bd33666c42e", "tool": "Naas", "notebook": "Add or Update Asset", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations", "#add", "#update"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to copy in production a file as an asset and allow yourself to get it by calling the returned URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Asset.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Asset.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "a8e532c51f125b4b806b25baaa49c531492178fb58f0a6f823bf8b33833fab72", "tool": "Naas", "notebook": "Add or Update Dependency", "action": "", "tags": ["#naas", "#dependency", "#add", "#update", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to add or update a dependency in Naas. The naas dependency feature push files (script, csv) into production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Dependency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Dependency.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "6324a3458ed02970a57df320b23fe3db9e2b49b779c42a0851a2b64b47ad0948", "tool": "Naas", "notebook": "Add or Update Scheduler", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations", "#add", "#update"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to automate a notebook using the scheduler feature of Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Scheduler.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Scheduler.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "9881af429a735a74f8b198299ac81dd7aa1a9f1499269d69dc4673560f47dc67", "tool": "Naas", "notebook": "Add or Update Secret", "action": "", "tags": ["#naas", "#secret", "#add", "#update", "#operation", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to add or uppdate a secret to Naas.\n\nSecrets are an important part of Naas, when you need to interact with other services, you need secret, like any other variable the temptation is big to put it straight in your notebook, but this lead to a big security breach since we replicate a lot the notebook, in the versioning system, the output and your ability to share it or send it to git! \nUse this simple feature instead to have global secure storage share with your sandbox and production.\nSecrets are local to your machine and encoded, that a big layer of security with a little effort.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Secret.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Secret.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "abd7d33c33240f853371346227a2ae5b2c4b78bec62d783f4ce06e07af02da6f", "tool": "Naas", "notebook": "Add or Update Webhook", "action": "", "tags": ["#naas", "#webhook", "#add", "#update", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to add or update a webhook in production using Naas feature. The notebook will be sent to production and you will get an URL that can be triggered.\n\nWebhooks are useful because they enable real-time communication between applications, allowing for automated notifications or data exchange when specific events occur. This eliminates the need for constant polling and manual data retrieval, making webhooks efficient and scalable for various use cases.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Add_or_Update_Webhook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Add_or_Update_Webhook.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "a4c7e1cb7a80573d8aeee8b70bd4bb3aa1a2e3ebc220423757dc6330ac876253", "tool": "Naas", "notebook": "Asset demo", "action": "", "tags": ["#naas", "#asset", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-08-31", "description": "Read the doc on https://naas.gitbook.io/naas/features/asset", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Asset_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Asset_demo.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "7e51dbae8cf766d7bbe70b8e5d811776b60173220ab6eccc75086cf2480daed3", "tool": "Naas", "notebook": "Automate GitHub Auth", "action": "", "tags": ["#naas", "#asset", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-28", "description": "This notebook provides an automated way to authenticate with GitHub using Naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Automate_GitHub_Auth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Automate_GitHub_Auth.ipynb", "imports": [], "image_url": ""}, {"objectID": "42ed86f1ce38ee92bc5c86740032d85a786e7c249673b9895f0ff3e6c5ee3944", "tool": "Naas", "notebook": "Configure Github with ssh", "action": "", "tags": ["#naas", "#git", "#github", "#jupyterlab", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-04-07", "description": "This notebook provides instructions on how to configure Github with SSH for secure access to the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Configure_Github_with_ssh.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Configure_Github_with_ssh.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "55207a267c659be8a52dab480828d899bcb20c49f124060ea6c4a6f1d890531c", "tool": "Naas", "notebook": "Create Kernel", "action": "", "tags": ["#naas", "#ipython", "#conda", "#kernel"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2023-01-11", "description": "This Jupyter Notebook will enable you to establish a new IPython Kernel that you can customize, allowing you to install any desired tools. This kernel, once created, can be selected to run your notebooks and can be used even in a production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_Kernel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Create_Kernel.ipynb", "imports": [], "image_url": ""}, {"objectID": "92ddbcf7c74813cc4c906ca6b7d04cc2590230b5fb16082b396de5b9872be0cf", "tool": "Naas", "notebook": "Create Pipeline", "action": "", "tags": ["#naas", "#pipeline", "#jupyter", "#notebook", "#dataanalysis", "#workflow", "#streamline"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2023-01-20", "description": "This notebook is a guide that teaches you how to create a notebook pipeline using naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_Pipeline.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Create_Pipeline.ipynb", "imports": ["naas.pipeline.pipeline.("], "image_url": ""}, {"objectID": "a1b3a685ea98ec4477699d6993219645300070c5f79b8b8cdbedb74c82fc9f9d", "tool": "Naas", "notebook": "Create onboarding plugin using OpenAI", "action": " ", "tags": ["#onboarding", "#naas", "#openai", "#personas", "#ai", "#machinelearning", "#deeplearning", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-15", "created_at": "2023-06-14", "description": "This notebook will create a onboarding plugin into Naas-MyChatGPT app using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Create_onboarding_plugin_using_OpenAI.ipynb", "imports": ["json", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "b8e8498be8e2a6e4ed47256dd6b987fc934f372db1ce9b0ba198bd19514296ca", "tool": "Naas", "notebook": "Credits Get Balance", "action": "", "tags": ["#naas", "#credits", "#snippet", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-11-17", "description": "This notebook provides a way to view the balance of credits available for use in the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Credits_Get_Balance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Credits_Get_Balance.ipynb", "imports": ["naas_drivers.naascredits"], "image_url": ""}, {"objectID": "faebd17e0e224ea21a9214be8a9831d2b94a5f912ab27836676b26589d608f3f", "tool": "Naas", "notebook": "Delete Asset", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-08-16", "created_at": "2023-03-21", "description": "This notebook will show how to delete an asset from naas production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Asset.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Asset.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "54d4fe233930b6fe96be9c4df3daf94f17ad0a3785c88dc9818b6c126173609f", "tool": "Naas", "notebook": "Delete Dependency", "action": "", "tags": ["#naas", "#dependency", "#snipet", "#operations", "#delete"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to delete a dependency from naas production environment.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Dependency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Dependency.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "e5801f9ba44fba35f2b6845fb88f7e660692550236c17ba3b6189300fdbd905b", "tool": "Naas", "notebook": "Delete Scheduler", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-16", "created_at": "2023-03-15", "description": "This notebook will show how to delete a naas scheduler.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Scheduler.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Scheduler.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "13f4b5a9bef18a2771e6e56c4ecd486c68e6b83c5b8be85e302ec59fcb4fc4ad", "tool": "Naas", "notebook": "Delete Secret", "action": "", "tags": ["#naas", "#secret", "#delete", "#api", "#python", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-27", "created_at": "2023-04-27", "description": "This notebook will show how to delete a secret in Naas.\n\nSecrets are an important part of Naas, when you need to interact with other services, you need secret, like any other variable the temptation is big to put it straight in your notebook, but this lead to a big security breach since we replicate a lot the notebook, in the versioning system, the output and your ability to share it or send it to git! \nUse this simple feature instead to have global secure storage share with your sandbox and production.\nSecrets are local to your machine and encoded, that a big layer of security with a little effort.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Secret.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Secret.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "27ea4180c03a08d23d80e1786c1b59542fa459be8170a2aac537979178d4bdfc", "tool": "Naas", "notebook": "Delete Webhook", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-24", "description": "This notebook will show how to delete a naas webhook.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_Webhook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_Webhook.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "ad17062d674c08958e8d52d2c391a621c91ce8ce90e01be930c7fec90dc78a84", "tool": "Naas", "notebook": "Delete all assets", "action": "", "tags": ["#naas", "#assets", "#delete", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-16", "created_at": "2023-08-16", "description": "This notebook deletes all assets in Naas Lab.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_all_assets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_all_assets.ipynb", "imports": ["naas", "os"], "image_url": ""}, {"objectID": "8c929e981ea24e0ea05c39e9bb399e341431ef3b5c9533df80b4292b78269a2f", "tool": "Naas", "notebook": "Delete all schedulers", "action": "", "tags": ["#naas", "#scheduler", "#delete", "#automation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-08-16", "created_at": "2023-08-16", "description": "This notebook deletes all schedulers in Naas Lab.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Delete_all_schedulers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Delete_all_schedulers.ipynb", "imports": ["naas", "os"], "image_url": ""}, {"objectID": "2b6603209c8adc27d4663ce554cdc239d6eca437c4cbdd0a30923eeca573b888", "tool": "Naas", "notebook": "Dependency demo", "action": "", "tags": ["#naas", "#dependency", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook demonstrates how to use Naas to manage dependencies in a project.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Dependency_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Dependency_demo.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "19034fbe5e15fb13de9738e02f6a5292dd1fcd6cac4aed92315fee5c458c3f95", "tool": "Naas", "notebook": "Doc demo", "action": "", "tags": ["#naas", "#doc", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook provides a demonstration of how to use the Naas Docs API to create, update, and delete documents.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Doc_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Doc_demo.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "1f6c374e05c5935ce272c9d5dc0ae45735b9d21beb8ca9f23fef22cd9a190ff7", "tool": "Naas", "notebook": "Download Content Engine", "action": "", "tags": ["#naas", "#automation", "#linkedin", "#youtube", "#twitter", "#snapchat", "#instagram", "#facebook", "#tiktok", "#dataproduct"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-08-02", "description": "Naas is a content engine that enables users to easily download and manage digital content.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Download_Content_Engine.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Download_Content_Engine.ipynb", "imports": ["IPython.display.display", "ipywidgets.widgets", "naas", "os.path"], "image_url": ""}, {"objectID": "e74b8806f7d7fbcafe79c6713182bc3c7d29e00f8f2e299adb90b2388baadad0", "tool": "Naas", "notebook": "Emailbuilder demo", "action": "", "tags": ["#naas", "#emailbuilder", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-05-28", "description": "This notebook provides a demonstration of the Naas Emailbuilder, a tool for creating and managing email campaigns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Emailbuilder_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Emailbuilder_demo.ipynb", "imports": ["naas_drivers", "naas", "pandas"], "image_url": ""}, {"objectID": "1149e5c1a3d183a41ab530f754117157d2f86e1719516b99e4a263256a582065", "tool": "Naas", "notebook": "Find Asset link from path", "action": "", "tags": ["#naas", "#asset", "#path", "#link", "#find", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-04", "created_at": "2023-05-04", "description": "This notebook will help you find the asset link generated with naas from a given file path.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Find_Asset_link_from_path.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Find_Asset_link_from_path.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "5df9412ae66fd7ab475df0c83cd5f8a2f36ca695bb4292dd5433aded3dc2e890", "tool": "Naas", "notebook": "Get Transactions", "action": "", "tags": ["#naas", "#credits", "#snippet", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-11-17", "description": "This notebook provides an easy way to access and analyze transaction data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_Transactions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_Transactions.ipynb", "imports": ["naas_drivers.naascredits", "pandas"], "image_url": ""}, {"objectID": "ff3a18474c57d0d2d83b9948b2019155f36de2170d1269c715e4bbee2be82c30", "tool": "Naas", "notebook": "Get help", "action": "", "tags": ["#naas", "#help", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook provides helpful resources and guidance for navigating the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_help.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_help.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "bafc9570d7378763e028d2cc37280a8b0358f2e1e876500ea2b2f26622c6fed4", "tool": "Naas", "notebook": "Get number of downloads naas drivers package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-27", "description": "This notebook provides a way to get the number of downloads for the Naas drivers package.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_number_of_downloads_naas_drivers_package.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "a3c80e86afed6d77dcb6463c1a64986dd6506f0b0e67063d62ece0219df17ea7", "tool": "Naas", "notebook": "Get number of downloads naas package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-27", "description": "This notebook provides a way to track the number of downloads of the Naas package.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_number_of_downloads_naas_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_number_of_downloads_naas_package.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "cdc37edf1d19e1738a9b7d3ba99776a599632e661bce3cb24a35e684bf673089", "tool": "Naas", "notebook": "Get total downloads naas libraries", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-27", "description": "This notebook provides a way to track the total number of downloads for Naas libraries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Get_total_downloads_naas_libraries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Get_total_downloads_naas_libraries.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas", "pandas"], "image_url": ""}, {"objectID": "0f98f0161ed02bf496879b2648647afefc830264ade798125d0bc1025eb23164", "tool": "Naas", "notebook": "List Assets", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-21", "description": "This notebook will show how to list current assets in production.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Assets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Assets.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "d140789cfd7892de0efe6e8a0bc0dfe7f63e1bcca0670e3125f08ec0e453ff9e", "tool": "Naas", "notebook": "List Dependencies", "action": "", "tags": ["#naas", "#dependency", "#snipet", "#operations", "#list"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook will show how to list current dependencies in production.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Dependencies.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Dependencies.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "6739d81dea060c5e005aa5b45c062c5babcfc372f44b53065a79051c0caa932d", "tool": "Naas", "notebook": "List Schedulers", "action": "", "tags": ["#naas", "#schedulers", "#list", "#production", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-01", "created_at": "2023-06-01", "description": "This notebook will show how to list current schedulers running in production.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Schedulers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Schedulers.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "7cf4e74bd33a75a559cc1e22ecc9bb70366bde9d0c458855d41f445cb1b8f8a4", "tool": "Naas", "notebook": "List Schedulers with all executions", "action": "", "tags": ["#naas", "#schedulers", "#list", "#production", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-01", "created_at": "2023-06-01", "description": "This notebook will show how to list current schedulers running in production with all their executions meta data and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Schedulers_with_all_executions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Schedulers_with_all_executions.ipynb", "imports": ["naas", "pandas"], "image_url": ""}, {"objectID": "6e0e66eeeef53f91e97285ff107f1c3101bfa1142186dec4122d51dfda1e01e2", "tool": "Naas", "notebook": "List Schedulers with last execution", "action": "", "tags": ["#naas", "#schedulers", "#list", "#production", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-01", "created_at": "2023-06-01", "description": "This notebook will show how to list current schedulers running in production with their last execution meta data and return a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Schedulers_with_last_execution.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Schedulers_with_last_execution.ipynb", "imports": ["naas", "pandas"], "image_url": ""}, {"objectID": "ce518a817ab35c537e18a42c72d3e128ed9c8631f2a01ae33c7371e9e2191c13", "tool": "Naas", "notebook": "List Secrets", "action": "", "tags": ["#naas", "#secret", "#list", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-27", "created_at": "2023-04-27", "description": "This notebook will show how to list of your secrets stored in Naas.\nA dataframe with the following column will be retunred:\n- \"id\"\n- \"lastUpdate\"\n- \"name\"\n- \"secret\"", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Secrets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Secrets.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "745b5079821ad22ad9dffd2bb51faa5e200ff047045a7ce416742854c85e0508", "tool": "Naas", "notebook": "List Webhooks", "action": "", "tags": ["#naas", "#asset", "#snipet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-24", "created_at": "2023-04-24", "description": "**References:**\n- [Naas Documentation](https://docs.naas.ai/)\n- [Naas Webhook Documentation](https://docs.naas.ai/features/api)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_List_Webhooks.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_List_Webhooks.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "1f256fb50ad384b7ca469fca4ec3af4d9e67a7d37dee4022ea3e74246dfc01aa", "tool": "Naas", "notebook": "Manage Pipeline Errors", "action": "", "tags": ["#naas", "#pipeline", "#jupyter", "#notebook", "#dataanalysis", "#workflow", "#streamline"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2023-01-25", "description": "This notebook is a guide that teaches you how to manage errors on your notebook pipeline using naas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Manage_Pipeline_Errors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Manage_Pipeline_Errors.ipynb", "imports": ["naas.pipeline.pipeline.("], "image_url": ""}, {"objectID": "e26291e9d6bfb6a7d09e27a665447ed0ea75c57dde69de0957353a0ba7e6ad0c", "tool": "Naas", "notebook": "NLP Examples", "action": "", "tags": ["#naas", "#nlp", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-08-16", "description": "This notebook provides examples of Natural Language Processing (NLP) using the Naas framework.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_NLP_Examples.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_NLP_Examples.ipynb", "imports": ["naas_drivers.nlp", "ant thing in your life right now?\""], "image_url": ""}, {"objectID": "0262344937e5af7b41831767036ab89858af4db92075018b0924478c1fa68804", "tool": "Naas", "notebook": "Notification demo", "action": "", "tags": ["#naas", "#notification", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-08-31", "description": "This notebook demonstrates how to use Naas to send notifications.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Notification_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Notification_demo.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "e60642c7688856536bd0f8d94b21ef04b589583f51b99100ca685605f1a977b5", "tool": "Naas", "notebook": "Remove Pipeline Executions Outputs", "action": "", "tags": ["#naas", "#scheduler", "#automation", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2023-01-24", "description": "This notebook removes your production pipeline executions outputs automatically.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Remove_Pipeline_Executions_Outputs.ipynb", "imports": ["glob", "os", "naas", "datetime.datetime", "dateutil.relativedelta.relativedelta", "shutil"], "image_url": ""}, {"objectID": "9ee266e99f40eace87c3aecf7828455a65b7bc2218e3c1420619d6f48d959a85", "tool": "Naas", "notebook": "Remove Scheduler Outputs", "action": "", "tags": ["#naas", "#scheduler", "#automation", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-03-14", "description": "This notebook allows users to remove scheduler outputs from the Naas platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Remove_Scheduler_Outputs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Remove_Scheduler_Outputs.ipynb", "imports": ["glob", "os", "naas"], "image_url": ""}, {"objectID": "7a441dc7940c8af0eef50ca209a5b3ed87153419adf5048a7845589a86a0b2e7", "tool": "Naas", "notebook": "Reset Instance", "action": "", "tags": ["#naas", "#scheduler", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-03-14", "description": "This notebook provides a way to reset an instance of Naas, allowing users to start fresh with a clean slate.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Reset_Instance.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Reset_Instance.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "cc6f6c0bb7460dec3abd5121eacdcd5761d972c7525d7ee9ff630df5c532f576", "tool": "Naas", "notebook": "Scheduler demo", "action": "", "tags": ["#naas", "#scheduler", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-06-28", "description": "Transform all your work routines in notebooks and run them even when you sleep.
\nHere we are going to use the Notifications feature to test Scheduler.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Scheduler_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Scheduler_demo.ipynb", "imports": ["IPython.display.IFrame", "naas", "IPython.display.HTML"], "image_url": ""}, {"objectID": "73ad193419ed4c56bb0430e8bd15af0b0c998e973b50790e89b450e08cfc49ca", "tool": "Naas", "notebook": "Secret demo", "action": "", "tags": ["#naas", "#secret", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-08-31", "description": "Read the doc: https://naas.gitbook.io/naas/features/secret", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Secret_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Secret_demo.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "ebdd845a8c40505f123a9e8cbe5afdd1d1acbef753489ec61a74b133e7973c53", "tool": "Naas", "notebook": "Send Asset image to Notion page", "action": "", "tags": ["#naas", "#notion", "#image", "#asset", "#send", "#vizualise"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook sends an naas image asset to a Notion page. It could be usefull to push chart created in plotly to Notion. If your page is in a notion database, you will be able to vizualise the chart in Gallery (display page content). The image asset will be updated (deleted and added) to make sure the graph display is always up to date in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Send_Asset_image_to_Notion_page.ipynb", "imports": ["naas_drivers.notion", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "551be4f36d8e50ce4395892079f25ea4f86bc3f5057eb9c3b85f5664ed741aef", "tool": "Naas", "notebook": "Send notifications from Google Sheets", "action": "", "tags": ["#naas", "#productivity", "#gsheet", "#naas_drivers", "#operations", "#snippet", "#email"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-05-12", "created_at": "2023-05-12", "description": "This notebook allows users to send emails from a Google Sheets spreadsheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Send_notifications_from_Google_Sheets.ipynb", "imports": ["naas_drivers", "naas_drivers.gsheet, emailbuilder, naasauth", "naas"], "image_url": ""}, {"objectID": "a6491850e181fce4c10f4673acf7b7a3ba172aa9246dca51b7408803e66ee3dd", "tool": "Naas", "notebook": "Set timezone", "action": "", "tags": ["#naas", "#timezone", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook allows users to set the timezone for their Naas instance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Set_timezone.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Set_timezone.ipynb", "imports": ["naas"], "image_url": ""}, {"objectID": "17a6818193a07da83c5d6e09deb7bc618424cfbb53e9405b8661bceabcdadd91", "tool": "Naas", "notebook": "Start data product", "action": "", "tags": ["#naas", "#dataproduct", "#automation"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-04-11", "description": "In this notebook, we'll walk you through the process of starting a data product using the Naas data product framework and integrating awesome-notebooks into your project. \n\nPlease note that this notebook can only be used while connected to your Naas account. If you'd like to perform these steps locally, please don't hesitate to contact us \u2013 we're more than happy to assist you.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Start_data_product.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Start_data_product.ipynb", "imports": ["urllib.request", "zipfile", "glob", "os", "shutil", "pandas", "re"], "image_url": ""}, {"objectID": "d9094479c5bfd3f36bf674ca012c3b174702051ba15319d9bd9213fd3454fd9f", "tool": "Naas", "notebook": "Use SSH tunnel to reach network protected resources", "action": "", "tags": ["#naas", "#ssh", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-06-01", "description": "This notebook provides instructions on how to use an SSH tunnel to securely access resources on a network that is otherwise protected.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Use_SSH_tunnel_to_reach_network_protected_resources.ipynb", "imports": ["sshtunnel", "sshtunnel", "psycopg2", "psycopg2"], "image_url": ""}, {"objectID": "def658c3a83d17228a73685b81bbf7979a78a6c56aba2b79ba99b414bacbc26a", "tool": "Naas", "notebook": "Webhook demo", "action": "", "tags": ["#naas", "#webhook", "#snippet", "#operations"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-08-31", "description": "## Basic formulas\nRunning this command will add your this notebook to the \"\u26a1\ufe0f Production\" folder.
\nYou can then, trigger it with the generated URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Naas/Naas_Webhook_demo.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Naas/Naas_Webhook_demo.ipynb", "imports": ["naas", "naas", "naas"], "image_url": ""}, {"objectID": "615ec6a8a79947d3ad3332806a73e9d47724fb113848dfdbff7166e70b84e367", "tool": "Neo", "notebook": "Get currencies live prices", "action": "", "tags": ["#neo", "#bank", "#snippet", "#finance", "#csv"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides live currency prices for various currencies.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Neo/Neo_Get_currencies_live_prices.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Neo/Neo_Get_currencies_live_prices.ipynb", "imports": ["pathlib.Path", "pandas", "requests"], "image_url": ""}, {"objectID": "ad988b3acb38ff32d1a21f78c88a01d3436a580add95cb262464d26b5b65eb39", "tool": "Newsapi", "notebook": "Get data", "action": "", "tags": ["#newsapi", "#news", "#snippet", "#opendata", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides a guide to using the Newsapi service to access and retrieve data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Newsapi/Newsapi_Get_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Newsapi/Newsapi_Get_data.ipynb", "imports": ["naas_drivers.newsapi"], "image_url": ""}, {"objectID": "8c7a4d82d6c655fc8c32095c16c53da8d6a524084ffa01fc55f762ffe5e37c8b", "tool": "Newsapi", "notebook": "Run sentiment analysis", "action": "", "tags": ["#newsapi", "#news", "#sentimentanalysis", "#ai", "#opendata", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-10", "description": "This notebook uses Newsapi to analyze the sentiment of news articles.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Newsapi/Newsapi_Run_sentiment_analysis.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Newsapi/Newsapi_Run_sentiment_analysis.ipynb", "imports": ["naas_drivers.newsapi, sentiment"], "image_url": ""}, {"objectID": "ad3d5031c222cb811084f9a2641946b57cd17649f5b03f8a92a93e9dc8e41b09", "tool": "Newsapi", "notebook": "Send emails briefs", "action": "", "tags": ["#newsapi", "#news", "#emailbrief", "#automation", "#notification", "#opendata", "#email", "#image", "#html", "#text"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-10", "description": "This notebook allows users to send automated email briefs based on news articles from the Newsapi API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Newsapi/Newsapi_Send_emails_briefs.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Newsapi/Newsapi_Send_emails_briefs.ipynb", "imports": ["naas_drivers.newsapi, emailbuilder", "naas"], "image_url": ""}, {"objectID": "4aa241b693f1246fa34f81ec73340d9e657d507c316332d862408e86fed3942b", "tool": "Notion", "notebook": "Add bulleted list in page", "action": "", "tags": ["#notion", "#list", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-30", "created_at": "2023-04-30", "description": "This notebook explains how to add a bulleted list in a Notion page from a list object using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_bulleted_list_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_bulleted_list_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "788383d93e10f1f9b502ed7ff62013a2bf073f2cfeac45af26371468ddfdd8b1", "tool": "Notion", "notebook": "Add code block in page", "action": "", "tags": ["#notion", "#code", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-30", "created_at": "2023-04-30", "description": "This notebook explains how to add a code block in a Notion page using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_code_block_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_code_block_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "bb1c62a68b1e8bed37eb699e857a6e8c1670d91567737b8a3840184e186ff29d", "tool": "Notion", "notebook": "Add cover image to page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-06-30", "description": "This notebook allows you to add a cover image to a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_cover_image_to_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_cover_image_to_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "931f3ae1a90765ff01a284401428ad56c74361da0b992df5a610e52026fd44c4", "tool": "Notion", "notebook": "Add equation in page", "action": "", "tags": ["#notion", "#equation", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-30", "created_at": "2023-04-30", "description": "This notebook explains how to add an equation in a Notion page using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_equation_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_equation_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "d0f211ded04e761c43109a9fbfd6aec9e38174a7ed52fe67e1a08acf1ebdbe25", "tool": "Notion", "notebook": "Add heading in page", "action": "", "tags": ["#notion", "#heading", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-30", "created_at": "2023-04-30", "description": "This notebook explains how to add headings in a Notion page using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_heading_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_heading_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "c4808da990d67ce7069e2d1f01e33141b6d6609af3c3bb90fe732ce8dc98ae8f", "tool": "Notion", "notebook": "Add icon image to page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-06-30", "description": "This notebook allows users to add an icon image to a Notion page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_icon_image_to_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_icon_image_to_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "93987b3107b56dd9a02b79dcba1e47e3af68eaba6f0492e3eb8de9e42684400a", "tool": "Notion", "notebook": "Add new github member to team from database", "action": "", "tags": ["#github", "#teams", "#automation", "#notion", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-05-21", "description": "This notebook allows users to add new GitHub members to their team from a database in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_new_github_member_to_team_from_database.ipynb", "imports": ["requests", "naas_drivers.github, notion", "naas", "pandas"], "image_url": ""}, {"objectID": "56ee3de913cfdbf390142378217d08ff30cf5c01c780d9811b8a15593e60e2a4", "tool": "Notion", "notebook": "Add numbered list in page", "action": "", "tags": ["#notion", "#list", "#page", "#organization", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-30", "created_at": "2023-04-30", "description": "This notebook explains how to add a numbered list in a Notion page from a list object using naas_drivers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_numbered_list_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_numbered_list_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "d23f9df5b983b569726995526e7659c222c8899834f4b7b5b0e5a79f7ca0bd8a", "tool": "Notion", "notebook": "Add paragraph with link in page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#block", "#paragraph", "#link", "#snippet", "#operations"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-03-17", "description": "This notebook allows you to add a paragraph with a link to a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_paragraph_with_link_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_paragraph_with_link_in_page.ipynb", "imports": ["naas_drivers.notion", "naas_drivers.tools.notion.Link"], "image_url": ""}, {"objectID": "a325c9e4b91d0842ed3a531aaf5e9e21c0ff0652bab97a3f95a3eb62cc3ffd1a", "tool": "Notion", "notebook": "Add to do list in page", "action": "", "tags": ["#notion", "#todo", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-28", "created_at": "2023-04-28", "description": "This notebook explains how to add a to do list in a Notion page using naas_drivers from a list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Add_to_do_list_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Add_to_do_list_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "97611fe6842bbe2afb50f53ddebbffd33454595b869913c9d6249105197b4530", "tool": "Notion", "notebook": "Automate transcript generation from recording link in page property", "action": "", "tags": ["#notion", "#aws", "#transcribe", "#S3", "#automation"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-05-12", "description": "This notebook allows users to automatically generate transcripts from audio recordings by linking the recording to a page property in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Automate_transcript_generation_from_recording_link_in_page_property.ipynb", "imports": ["pydash", "threading, queue", "uuid", "rich.print", "rich.print", "sys", "json", "datetime", "codecs", "time", "os", "markdown", "gdown", "gdown", "boto3", "naas_drivers.notion", "naas_drivers.tools.notion.BlockTypeFactory", "naas"], "image_url": ""}, {"objectID": "7597da846b5c5a212d1fe3763deaf09315f9358b9b04523cbea93045eba467e1", "tool": "Notion", "notebook": "Create page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-09-13", "description": "Notion is a powerful tool for creating and organizing digital pages to help you stay organized and productive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Create_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Create_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "429365440a90db93a370330df99e41a4718d24029f7a2a3e24990304ce409614", "tool": "Notion", "notebook": "Create pages in database from dataframe", "action": "", "tags": ["#notion", "#database", "#dataframe", "#python", "#create", "#pages"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-15", "description": "This notebook will show how to create pages in Notion database from a dataframe. It could be very usefull to kick start a new database in Notion with historical data stored in CSV, Excel or Google Sheets.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Create_pages_in_database_from_dataframe.ipynb", "imports": ["naas", "pandas", "naas_drivers.notion"], "image_url": ""}, {"objectID": "bf17bd2f86490d3fbed728c4a602153d357748a2ab81f5e3385f32c116d6fd78", "tool": "Notion", "notebook": "Delete all pages from database", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#database"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-24", "description": "This notebook deletes all page from a Notion database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Delete_all_pages_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Delete_all_pages_from_database.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "458696751173998a5878523a07bf2866a1d97db0aae077ae663183415f6c7178", "tool": "Notion", "notebook": "Delete blocks from page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-06-30", "description": "This notebook allows users to quickly and easily delete blocks from their Notion page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Delete_blocks_from_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Delete_blocks_from_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "4be524b722d7eabf85ecb8dcda5e06cd8559567a9c5ccb55eba8915fb982f337", "tool": "Notion", "notebook": "Delete page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-06-30", "description": "This notebook allows you to delete a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Delete_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Delete_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "47be8362b5f8f8d9db5c0a9dfbc4f912f4f4593f332adfb7f9ae174fceb42ce5", "tool": "Notion", "notebook": "Duplicate page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#duplicate", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-26", "description": "This notebook allows you to quickly and easily duplicate a page in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Duplicate_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Duplicate_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "80547ec83f52f9ee3c926af6f709f3d25b583d2d6d2f4be6d6c7a60f0106f5d5", "tool": "Notion", "notebook": "Explore API", "action": "", "tags": ["#notion", "#productivity", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-08-04", "description": "This notebook provides an exploration of the Notion API, allowing users to access and manipulate data from Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Explore_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Explore_API.ipynb", "imports": ["requests", "pandas", "json"], "image_url": ""}, {"objectID": "98ab1c462dc32c96d8a60d3f8fa617498096792f891ac48924fc03d4b059d655", "tool": "Notion", "notebook": "Generate Google Sheets rows for new items in database", "action": "", "tags": ["#notion", "#operations", "#automation", "#googlesheets"], "author": "Pooja Srivastava", "author_url": "https://www.linkedin.com/in/pooja-srivastava-in/", "updated_at": "2023-04-12", "created_at": "2022-04-05", "description": "This notebook allows users to automatically generate Google Sheets rows for new items added to a database using Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Generate_Google_Sheets_rows_for_new_items_in_Notion_database.ipynb", "imports": ["naas_drivers.notion, gsheet", "pandas"], "image_url": ""}, {"objectID": "68a8540ec1e573bbc2c31b844cc383fa99b73ec2781df0f494fdb9f41965b46a", "tool": "Notion", "notebook": "Get blocks from page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-06-30", "description": "This notebook allows users to quickly and easily add blocks from a page to their Notion workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_blocks_from_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_blocks_from_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "7c5540e6853c6605a0a64c7bd1860d3bcf4b7843ecbae96ae22a318b4f2fa5dc", "tool": "Notion", "notebook": "Get database", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-08-23", "description": "Notion is a powerful database tool that helps you organize and store your data in an intuitive and efficient way.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_database.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "42775adb8e2a5be84c11094169c73f67378aa924d6030d5b0e5cdbcf84e84980", "tool": "Notion", "notebook": "Get page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet", "#page"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-08-16", "description": "This notebook allows you to quickly and easily create and organize webpages for any purpose.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "cf37eca2469767cb53d562a97383fb6cad12c0691fb3b44fabdbfc1030ec3d5d", "tool": "Notion", "notebook": "Get users", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-11-01", "description": "Notion is a powerful tool that helps users organize their thoughts, tasks, and projects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Get_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Get_users.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "77e598f0bed1b6807032066684a6b6aceed5057fd135e73b41791915c998bea3", "tool": "Notion", "notebook": "Send LinkedIn invitations from database", "action": "", "tags": ["#notion", "#invitation", "#automation", "#content", "#linkedin"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-04-07", "description": "This notebook allows users to quickly and easily send LinkedIn invitations to contacts stored in a database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Send_LinkedIn_invitations_from_database.ipynb", "imports": ["naas", "naas_drivers.notion, linkedin", "pandas", "os", "datetime.datetime", "requests"], "image_url": ""}, {"objectID": "e07ad2e7f764a2bd25534ca5e6a87a54d39d7a73d4b297b21b44cc8a4e51518e", "tool": "Notion", "notebook": "Send Slack Messages For New Database Items", "action": "", "tags": ["#notion", "#slack", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://api.slack.com/authentication/basics\n\n- For this use case we need to create & use user token, rather than bot token with the following permissions/scopes -> [channels: history, channels: read, chat: write, users: read]", "updated_at": "2023-04-12", "created_at": "2022-03-31", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Send_Slack_Messages_For_New_Notion_Database_Items.ipynb", "imports": ["naas_drivers.notion, slack", "naas"], "image_url": ""}, {"objectID": "906dd0ec9b68828a094cc58111e34dd14acf152e2491afde7116537297f31733", "tool": "Notion", "notebook": "Sent Gmail On New Item", "action": "", "tags": ["#notion", "#gsheet", "#productivity", "#naas_drivers", "#operations", "#automation", "#email"], "author": "Arun K C", "author_url": "https://www.linkedin.com/in/arun-kc/", "updated_at": "2023-04-12", "created_at": "2022-01-20", "description": "This notebook allows you to quickly send an email notification when a new item is added to Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Sent_Gmail_On_New_Item.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Sent_Gmail_On_New_Item.ipynb", "imports": ["naas", "naas_drivers.notion, gsheet", "naas_drivers.html", "pandas"], "image_url": ""}, {"objectID": "647d794df1c42fc8ef111f4ab6109a20bf4dd82da1279723111080e06d84f250", "tool": "Notion", "notebook": "Update database with GitHub repositories info", "action": "", "tags": ["#notion", "#database", "#update", "#github", "#repositories", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-13", "created_at": "2023-04-12", "description": "This notebook updates a Notion database with information from all repositories within your GitHub organization. The following data will be updated in your Notion database:\n- Name: The name of the repository.\n- GitHub URL: The URL for the repository on GitHub.\n- Description: A brief description of what the repository is for.\n- Default branch: The default branch for the repository (i.e., the branch that is checked out when someone first clones the repository).\n- Visibility: The visibility status of the repository (e.g., public, private, or internal).\n- Created date: The date when the repository was created.\n- Last updated date: The date when the repository was last updated.\n- Open Issues: The number of unresolved issues (i.e., bug reports, feature requests, or other tasks) in the repository.\n- Forks: The number of times the repository has been forked (i.e., copied to another GitHub account).\n- Stargazers: The number of GitHub users who have \"starred\" the repository (i.e., marked it as a favorite).\n- Size: The size of the repository in terms of disk space used.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_database_with_GitHub_repositories_info.ipynb", "imports": ["naas", "naas_drivers.notion", "pandas", "re", "datetime.datetime", "os", "requests", "naas", "github"], "image_url": ""}, {"objectID": "3d62f956e5054214458eaa0d181bcdcf3eb6992b59688563cc9eeb75c60e0ed3", "tool": "Notion", "notebook": "Update database with LinkedIn company info", "action": "", "tags": ["#notion", "#database", "#update", "#linkedin", "#company", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-13", "created_at": "2023-04-07", "description": "This notebook streamlines the process of updating a Notion database containing company names by extracting relevant information from LinkedIn using Google search, as well as utilizing Naas_Drivers.Notion and Naas_Drivers.LinkedIn.The following data will be updated in your Notion database:\n- Name: The name of the company or organization.\n- LinkedIn: The company's LinkedIn page.\n- Website: The company's website URL.\n- Industry: The industry or industries that the company operates in.\n- Specialties: The areas of expertise or specialization for the company or its products/services.\n- Tagline: A brief statement that summarizes the purpose or mission of the company or organization.\n- City: The city or cities where the company is headquartered or operates.\n- Country: The country where the company is headquartered or operates.\n- Staff Count: The number of employees or staff members employed by the company.\n- Staff Range: The range of employee count (e.g., 1-10, 11-50, 51-200, etc.) that the company falls into.\n- Followers: The number of LinkedIn users who follow the company's page or profile.\n\nOverall, this notebook can be useful for any business or individual who needs to keep track of company information for various purposes:\n- Sales prospecting: Sales teams could use the updated database to identify potential new leads and target them with personalized outreach based on their company information.\n- Competitor analysis: Marketers could use the updated database to track changes in their competitors' company information, such as changes in leadership or expansion into new markets.\n- Industry research: Researchers could use the updated database to gather information on companies within a particular industry, such as their size, location, and areas of expertise.\n- Investor relations: Investors could use the updated database to identify potential investment opportunities and track the performance of companies they are interested in.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_database_with_LinkedIn_company_info.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion", "googlesearch.search", "googlesearch.search", "re", "datetime.datetime", "os", "requests", "pandas", "time"], "image_url": ""}, {"objectID": "1033382f0063e3cfe04100c99b1780a7eda0ca450d3e26f634e50217db5c1f0d", "tool": "Notion", "notebook": "Update database with LinkedIn profile info", "action": "", "tags": ["#notion", "#database", "#update", "#linkedin", "#company", "#automation", "#scheduler"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-13", "created_at": "2023-04-13", "description": "This notebook streamlines the process of updating a Notion database containing profile names by extracting relevant information from LinkedIn using Google search, as well as utilizing Naas_Drivers.Notion and Naas_Drivers.LinkedIn. The following data will be updated in your Notion database:\n- Name: The name of the person who owns the LinkedIn profile.\n- LinkedIn: LinkedIn unique URL\n- Occupation: The job or profession that a person is engaged in, listed on their LinkedIn profile.\n- Industry: The field or sector in which a person works, listed on their LinkedIn profile.\n- City: The specific city where a person lives or works, listed on their LinkedIn profile.\n- Region: A broader geographic area that a person's city may be located in, such as a state or province, listed on their LinkedIn profile.\n- Country: The nation where a person is located or from, listed on their LinkedIn profile.\n- Location: The overall geographic location of a person, which may include their city, region, and country, listed on their LinkedIn profile.\nAdditionally, the background picture will be refreshed as the page cover, the profile picture will serve as the page icon, and the occupation and summary will be included in the page block.\n\nOverall, this notebook can be useful for any business or individual who needs to keep track of company information for various purposes:\n- Lead generation: Sales teams could use the updated Notion database to identify potential leads based on their LinkedIn profiles, and initiate targeted outreach to convert them into customers.\n- Talent sourcing: Recruiters could use the updated Notion database to find and evaluate potential job candidates based on their LinkedIn profiles and relevant information stored in the database.\n- Social media marketing: Marketers could use the updated Notion database to build custom audiences for their social media campaigns based on the information stored in the database and on LinkedIn.\n\nDisclamer:\n\nWhen using this script to scrape profiles from LinkedIn, it's important to set a limit on the number of API calls made to avoid being temporarily banned. LinkedIn heavily monitors scraping activities, and excessive usage can result in a ban. We recommend setting a limit of no more than 5 calls per hour to minimize the risk of being banned. As the owner of the script, it's your responsibility to use it responsibly and abide by LinkedIn's terms of service. We assume no liability for any consequences resulting from your use of this script.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_database_with_LinkedIn_profile_info.ipynb", "imports": ["naas", "naas_drivers.linkedin, notion", "googlesearch.search", "googlesearch.search", "re", "datetime.datetime", "os", "requests", "pandas", "time"], "image_url": ""}, {"objectID": "43d0796ae3f58df0ec5a640ddf8e9f266d824f70fa69f7c5040b370b38891ce0", "tool": "Notion", "notebook": "Update page", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-11-01", "description": "This page allows you to update existing content in Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_page.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "235b5d348b55afe007e3513452df95b030d2cc3d20d5b5fcb660fca90b2bb5cc", "tool": "Notion", "notebook": "Update page relation", "action": "", "tags": ["#notion", "#update", "#page", "#relation", "#requests", "#api"], "author": "Florent Ravenel", "author_url": "https://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-24", "created_at": "2023-04-24", "description": "This notebook will show how to update page relation using requests. It is usefull for organization to link different database in Notion and keep track of their data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_page_relation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_page_relation.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "0f1c3555b4539891a61581be2563e3fd819cdb141143895228ae433671329520", "tool": "Notion", "notebook": "Update pages from database", "action": "", "tags": ["#notion", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-02-07", "description": "This notebook allows users to easily update Notion pages with data from a database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Update_pages_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Update_pages_from_database.ipynb", "imports": ["naas_drivers.notion"], "image_url": ""}, {"objectID": "f31df883dd65a1a2a6c484ade655deba402bdba6d0e39ad0c1c39134cd906e05", "tool": "Notion", "notebook": "Upload PDF in page", "action": "", "tags": ["#notion", "#upload", "#pdf", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-28", "created_at": "2023-04-28", "description": "This notebook explains how to upload a PDF in a Notion page using naas_drivers. It is usefull for organizations that need to share PDFs to their Notion pages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Upload_PDF_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Upload_PDF_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "07b01cd0416973045c2e923af3028b3a426dc84dfc193499ee839e0e47bedaba", "tool": "Notion", "notebook": "Upload image in page", "action": "", "tags": ["#notion", "#upload", "#image", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-28", "created_at": "2023-04-28", "description": "This notebook explains how to upload an image in a Notion page using naas_drivers. It is usefull for organizations that need to add visuals to their Notion pages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Upload_image_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Upload_image_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "c0cc2a6a750077e302585962ecee4b2ae5eb1195392b4b4477497044184b4bb2", "tool": "Notion", "notebook": "Upload video in page", "action": "", "tags": ["#notion", "#upload", "#video", "#page", "#snippet", "#naas_drivers"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-28", "created_at": "2023-04-28", "description": "This notebook explains how to upload a video in a Notion page using naas_drivers. It is usefull for organizations that need to add videos to their Notion pages.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Notion/Notion_Upload_video_in_page.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Notion/Notion_Upload_video_in_page.ipynb", "imports": ["naas_drivers.notion", "naas"], "image_url": ""}, {"objectID": "977ec013ec588028ac032ba6a88411db2b70ed9108e892a74d52b4bacec388ac", "tool": "OS", "notebook": "Access environment variable", "action": "", "tags": ["#python", "#environment", "#variables", "#os", "#environ", "#object", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-05", "created_at": "2023-06-05", "description": "This notebook explains how to access a particular environment variable using the Python `os.environ` object. Environment variables are useful in several ways:\n- Portability: Environment variables are independent of the code and can be easily ported across systems. This means that you can define an environment variable once, and use it in multiple scripts, applications, or systems without having to hardcode the variable's value.\n- Security: Environment variables can be used to store sensitive information like passwords or API keys, which can be accessed by the code without exposing them in the script. This is particularly useful when you need to deploy your code to a server or share it with others.\n- Flexibility: Environment variables allow you to change the behavior of your code without modifying the code itself. This is useful when you need to modify the behavior of your code based on different scenarios, such as development, testing, or production environments.\n- Configuration: Environment variables can be used to configure your code, by providing default values for variables that can be overridden by environment variables. This makes your code more flexible and easier to customize.\n\nOverall, environment variables are a useful tool for managing configuration settings and sensitive information in your code, and can make your code more portable, secure, and flexible.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Access_environment_variable.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Access_environment_variable.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "7bb2bd353adc40ef26a95c190775b078cdc6c910196b17c68f2f8b700bcaa585", "tool": "OS", "notebook": "Add new environment variable", "action": "", "tags": ["#python", "#environment", "#variables", "#os", "#environ", "#object", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-05", "created_at": "2023-06-05", "description": "This notebook explains how to add or update variables in environment using the Python `os.environ` object. Environment variables are useful in several ways:\n- Portability: Environment variables are independent of the code and can be easily ported across systems. This means that you can define an environment variable once, and use it in multiple scripts, applications, or systems without having to hardcode the variable's value.\n- Security: Environment variables can be used to store sensitive information like passwords or API keys, which can be accessed by the code without exposing them in the script. This is particularly useful when you need to deploy your code to a server or share it with others.\n- Flexibility: Environment variables allow you to change the behavior of your code without modifying the code itself. This is useful when you need to modify the behavior of your code based on different scenarios, such as development, testing, or production environments.\n- Configuration: Environment variables can be used to configure your code, by providing default values for variables that can be overridden by environment variables. This makes your code more flexible and easier to customize.\n\nOverall, environment variables are a useful tool for managing configuration settings and sensitive information in your code, and can make your code more portable, secure, and flexible.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Add_new_environment_variable.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Add_new_environment_variable.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "141f931922bdd2a673d198df328243e7aed56d0ecd1f1c4c83a1b08a2ba263f5", "tool": "OS", "notebook": "Check path exist", "action": "", "tags": ["#os", "#python", "#path", "#file", "#system", "#library", "#snippet", "#operations", "#check"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-08", "created_at": "2023-06-08", "description": "This notebook will show how to check a path exist using os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Check_path_exist.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Check_path_exist.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "86ee474d174e9f2394b370c69bd4c0de68646b8b9c45c02cbce83cf4edde0a74", "tool": "OS", "notebook": "Create directory", "action": "", "tags": ["#os", "#snippet", "#python", "#operations"], "author": "Moemen Ebdelli", "author_url": "https://www.linkedin.com/in/moemen-ebdelli", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook provides instructions on how to create a directory in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Create_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Create_directory.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "2eca9945533598a7b77fba6dd42d083942103cf78ce933470cfdedc5f385d6da", "tool": "OS", "notebook": "Get access of environment variables", "action": "", "tags": ["#python", "#environment", "#variables", "#os", "#environ", "#object"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-05", "created_at": "2023-06-05", "description": "This notebook explains how to use of `os.environ` to get access of environment variables. Environment variables are useful in several ways:\n- Portability: Environment variables are independent of the code and can be easily ported across systems. This means that you can define an environment variable once, and use it in multiple scripts, applications, or systems without having to hardcode the variable's value.\n- Security: Environment variables can be used to store sensitive information like passwords or API keys, which can be accessed by the code without exposing them in the script. This is particularly useful when you need to deploy your code to a server or share it with others.\n- Flexibility: Environment variables allow you to change the behavior of your code without modifying the code itself. This is useful when you need to modify the behavior of your code based on different scenarios, such as development, testing, or production environments.\n- Configuration: Environment variables can be used to configure your code, by providing default values for variables that can be overridden by environment variables. This makes your code more flexible and easier to customize.\n\nOverall, environment variables are a useful tool for managing configuration settings and sensitive information in your code, and can make your code more portable, secure, and flexible.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Get_access_of_environment_variables.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_access_of_environment_variables.ipynb", "imports": ["os", "pprint"], "image_url": ""}, {"objectID": "c7bf168e0033b04e424d24283c3804f677d20958b8a7519e60e69f4a176cddc1", "tool": "OS", "notebook": "Get current working directory", "action": "", "tags": ["#os", "#python", "#snippet", "#operations", "#operatingsystem"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-05", "created_at": "2023-06-05", "description": "This notebook demonstrates how to get the current working directory using `os` module. The main purpose of the OS module is to interact with your operating system. The primary use I find for it is to create folders, remove folders, move folders, and sometimes change the working directory. You can also access the names of files within a file path by doing listdir(). We do not cover that in this video, but that's an option.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Get_current_working_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_current_working_directory.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "9527abdf0d80d051bbee0006c3948f220d4254591ef205fbd310d2e5f672e8e3", "tool": "OS", "notebook": "Get folder stats", "action": "", "tags": ["#os", "#folder", "#stats", "#python", "#library", "#filesystem"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-05", "created_at": "2023-07-05", "description": "This notebook will get the stats of a folder and its content.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Get_folder_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Get_folder_stats.ipynb", "imports": ["os", "datetime.datetime"], "image_url": ""}, {"objectID": "17ab0d4319f5f16b54359cb73279a21fea85248f5b54e3e982edc251fe0735df", "tool": "OS", "notebook": "List entries in directory", "action": "", "tags": ["#os", "#listdir", "#directory", "#python", "#entries", "#list"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-13", "created_at": "2023-06-13", "description": "This notebook explains how to use the Python method listdir() to list entries in a directory. It is usefull for organizations to quickly access the content of a directory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_List_entries_in_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_List_entries_in_directory.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "fa208f2a6760c8f1d61394c59eb08948b2421d0ca23668df0927b40b12a0ee11", "tool": "OS", "notebook": "Remove file", "action": "", "tags": ["#os", "#python", "#remove", "#file", "#system", "#library", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook will show how to remove file from system using os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Remove_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Remove_file.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "41e782306e5647529deb821db88d07feef810caef4389f00189aaaf47a7207c8", "tool": "OS", "notebook": "Rename file", "action": "", "tags": ["#os", "#python", "#snippet", "#operations"], "author": "Divakar", "author_url": "https://www.linkedin.com/in/divakar-r-9b34b86b/", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook will show how to rename file using os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OS/OS_Rename_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OS/OS_Rename_file.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "b536a539006dced496f5dee0a0054d535f4880f440631c3b26f6f8d5f626c7d6", "tool": "OWID", "notebook": "Visualize GDP per capita through the years", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-07-25", "created_at": "2023-07-25", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's GDP per capita data. The values are calculated by taking the expenditure-side real GDP at chained PPPs and dividing by the population.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_GDP_per_capita_through_the_years.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "6e7757204de2a51a6e8288197ddf9daa841e3eb0df0cbf09e51e26d7ed655035", "tool": "OWID", "notebook": "Visualize Human Development Index", "action": "", "tags": ["#owid", "#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-08-07", "created_at": "2023-08-07", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's HDI data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_Human_Development_Index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_Human_Development_Index.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "efd4c086cffe158c960a2bc7ea8dc9f71663b0deca619bccc47ec7ce81729245", "tool": "OWID", "notebook": "Visualize oil consumption throughout the years", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-06-26", "created_at": "2023-06-26", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's oil consumption data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_Oil_Consumption_through_the_Years.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "4b06d4ef00af69ff2b94b5dd3745d5d6b9d2544014f0e2f317599a3a4174f360", "tool": "OWID", "notebook": "Visualize Population of Different Age Groups", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-08-04", "created_at": "2023-07-12", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's popultion by age group data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_Population_of_Different_Age_Groups.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express", "naas"], "image_url": ""}, {"objectID": "7db31d10c4b5b92d0d39f1d3dc6ee14dc4e511f4718304f9cfb63394215ce6e8", "tool": "OWID", "notebook": "Visualize economic freedom through the years", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's economic freedom ranking data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_economic_freedom_through_the_years.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "54dbdfd194259317e5cc940745c978c24d6b9369f598c3db583326036b883167", "tool": "OWID", "notebook": "Visualize greenhouse gas per capita", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's greenhouse gas emissions per capita data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_greenhouse_gas_per_capita.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "cc3affc15c3291bab55e3463dfad9686c656e095970dbcfdce0e1000938d1b0e", "tool": "OWID", "notebook": "Visualize Life expectancy at birth for both sexes throughout the years", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-07-25", "created_at": "2023-07-25", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's life exepctancy data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_life_expectancy_at_birth_for_both_sexes_through_out_the_years.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "cdf2fb54787b4191d2516b1cc6e7000a531dfa63a2142118ccd6c91cf6435684", "tool": "OWID", "notebook": "Tourist depature per 1000", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's tourist departures per 1000 data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_tourist_departures_per_1000.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_tourist_departures_per_1000.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "304c492a6ad755b2370ccec6705ca275e6fd9dd894580e1e4f7663bb73341059", "tool": "OWID", "notebook": "Visualize wealth distribuition of certain major economic powers", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-07-31", "created_at": "2023-07-31", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's wealth distribution data. It shows the percentage of personal wealth obtained by the top 1% and the top 10%.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_wealth_distribution.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_wealth_distribution.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "b0de207f2a64ae314c14994522d6994a3c3cbae7fc6d5b79be15da7d8e223d0e", "tool": "OWID", "notebook": "Visualize world population growth", "action": "", "tags": ["#dash", "#dashboard", "#plotly", "#naas", "#asset", "#analytics", "#dropdown", "#callback", "#bootstrap", "#snippet"], "author": "Zihui Ouyang", "author_url": "https://www.linkedin.com/in/zihui-ouyang-539626227/", "updated_at": "2023-08-07", "created_at": "2023-08-07", "description": "This notebook creates an interactive plot using Dash app infrastructure with OWID's world population growth data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OWID/OWID_Visualize_world_population_growth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OWID/OWID_Visualize_world_population_growth.ipynb", "imports": ["dash", "os", "dash", "dash_bootstrap_components", "dash_bootstrap_components", "pandas", "numpy", "dash.Dash, html, dcc, callback, Output, Input", "plotly.express"], "image_url": ""}, {"objectID": "dd67e8c7161225db2d49f17a8c6a4a6cc7271cedae8a67457fd0c8f93a77fe27", "tool": "OpenAI", "notebook": "Act as a AI enthusiast", "action": " ", "tags": ["#ai", "#aienthusiast", "#artificialintelligence", "#aitrends", "#aiconcepts", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as an AI enthusiast.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_AI_enthusiast.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "e089ce867bca0f37f131ec352c85601eff2db8edd0911052eac3475fc655090e", "tool": "OpenAI", "notebook": "Act as a Business Analyst", "action": " ", "tags": ["#ai", "#businessanalyst", "#businessdata", "#businessprocess", "#strategicrecommendations", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Business Analyst.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Business_Analyst.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "fd738792e7b58c349a01bc30c83d122ce30392568a232eda55191d80dc6814d9", "tool": "OpenAI", "notebook": "Act as a CEO", "action": " ", "tags": ["#ai", "#ceo", "#businessstrategy", "#leadership", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a CEO.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CEO.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "3e28fb1c0bcee19d8c363e9e8addc7cee4ad8969a4f6c9921f2a3e8ce96b9e83", "tool": "OpenAI", "notebook": "Act as a COO", "action": " ", "tags": ["#ai", "#coo", "#operationsmanagement", "#processimprovement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a COO.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_COO.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_COO.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_COO.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "eec5d99cbc73d38ea2e7400ca902510b35ec5ebdbe153092031f147f43267fbc", "tool": "OpenAI", "notebook": "Act as a CTO", "action": " ", "tags": ["#ai", "#cto", "#technologystrategy", "#innovation", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a CTO.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_CTO.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "65dc3f7dae157ebebe828bd8061d78213f87fc22fc9fd49d327c35513ec477cd", "tool": "OpenAI", "notebook": "Act as a Creative Writer or Artist", "action": " ", "tags": ["#ai", "#creativewriter", "#artist", "#creativity", "#artistictechniques", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Creative Writer or Artist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Creative_Writer_or_Artist.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "1afec4ff0f173c25314065d105a85838b48804ff47595ce2444ccfb5ca26fcb6", "tool": "OpenAI", "notebook": "Act as a Data Analyst", "action": " ", "tags": ["#ai", "#dataanalyst", "#datadrivendecisions", "#datamining", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Data Analyst.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Data_Analyst.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "a6c10ae13d722f012562c528deb87b8e69e98b94554d16adbd3f38269cbe5b51", "tool": "OpenAI", "notebook": "Act as a Data Scientist", "action": " ", "tags": ["#ai", "#datascientist", "#predictivemodels", "#machinelearning", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Data Scientist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Data_Scientist.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "55fd10670c15ad9320e3aa49bcb93b4c066c52f0cf509efd9fc98c280d6ddfe7", "tool": "OpenAI", "notebook": "Act as a Educator or student", "action": " ", "tags": ["#ai", "#educator", "#student", "#academictopics", "#teachingstrategies", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as an Educator or Student.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Educator_or_student.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "55eae5ebdc323c73316e2e081956e9eac4bbeb2a0839a125a3cfe59b862194ca", "tool": "OpenAI", "notebook": "Act as a Hobbyist", "action": " ", "tags": ["#ai", "#hobbyist", "#personalprojects", "#hobbyimprovement", "#skilllearning", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Hobbyist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Hobbyist.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "940a2ff7ae284b98d7de3461aa5d1e39e7f81da8c48e3625eee2a2f0489a1733", "tool": "OpenAI", "notebook": "Act as a Homeowner", "action": " ", "tags": ["#ai", "#homeowner", "#homeimprovement", "#homemaintenance", "#interiordesign", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Homeowner.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Homeowner.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "43d678efc249da05fe4325e50508c8b2b8daa6223fbb14959a550c6266f8ae6f", "tool": "OpenAI", "notebook": "Act as a IT Professional", "action": " ", "tags": ["#ai", "#itprofessional", "#technicalsupport", "#itinfrastructure", "#ittrends", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as an IT Professional.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_IT_Professional.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "99f62044e567ead43fe936c1e72f88cd37d15b79a0c89cca5a9e21c00ef98a13", "tool": "OpenAI", "notebook": "Act as a Lifelong learner", "action": " ", "tags": ["#ai", "#lifelonglearner", "#knowledgeseeker", "#skilllearning", "#subjectexploration", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Lifelong Learner.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Lifelong_learner.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "f54c6d7a2daa62c82a631fa4ab51c338f914000cd3f1d19da7c969fff7d188a2", "tool": "OpenAI", "notebook": "Act as a Marketer", "action": " ", "tags": ["#ai", "#marketer", "#marketingstrategy", "#markettrends", "#brandengagement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Marketer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Marketer.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Marketer.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Marketer.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "084134f6feae47a6c539c638604e7d552f8893513c977ff459d76fced826328e", "tool": "OpenAI", "notebook": "Act as a Parent or Child", "action": " ", "tags": ["#ai", "#parent", "#child", "#parentingchallenges", "#schoolwork", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Parent or Child.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Parent_or_Child.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "ca91e684a5fc178a0b1dbb80ab49c3e5386ce19b51eda90c63427cb68e6b5025", "tool": "OpenAI", "notebook": "Act as a Product Manager", "action": " ", "tags": ["#ai", "#productmanager", "#productdevelopment", "#marketresearch", "#userexperience", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Product Manager.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Product_Manager.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "24bd8cd6a348ded1f22936aec33f1a0522c76226c9a996dddd8c73dad98049f3", "tool": "OpenAI", "notebook": "Act as a Project Manager", "action": " ", "tags": ["#ai", "#projectmanager", "#projectplanning", "#resourcemanagement", "#riskmanagement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Project Manager.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Project_Manager.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "3c3958d3f040b8f3d30c0d40b70f64c1af78aa46103f47a7d10b2c2af6072c7b", "tool": "OpenAI", "notebook": "Act as a Retiree", "action": " ", "tags": ["#ai", "#retiree", "#retirementactivities", "#newskills", "#retirementmanagement", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Retiree.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Retiree.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Retiree.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Retiree.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "bca43175667c72622b34f1fb4feac25f63315fda2ec00144181e56f6620145b4", "tool": "OpenAI", "notebook": "Act as a Sales Professional", "action": " ", "tags": ["#ai", "#salesprofessional", "#salesstrategies", "#customerrelations", "#salestechniques", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Sales Professional.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Sales_Professional.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "12d9e1e7fe7284ba1cd450267f66313c8eb3580426bcac8b44048910f6870162", "tool": "OpenAI", "notebook": "Act as a Software Developer", "action": " ", "tags": ["#ai", "#softwaredeveloper", "#coding", "#softwaredevelopment", "#programminglanguages", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Software Developer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Software_Developer.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "1e73b76a7ed2ddd2004c409dcfa0e5b4d768f38ba91a690233b9fe071ec97e8a", "tool": "OpenAI", "notebook": "Act as a Software Engineer", "action": " ", "tags": ["#ai", "#softwareengineer", "#softwareengineering", "#systemdesign", "#scalability", "#optimization", "#plugin"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will create a plugin to act as a Software Engineer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_Software_Engineer.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "f35bc89e26b1b3cffbedd7e3dee835cbd5a12a497b536b2399f7c82462ec2953", "tool": "OpenAI", "notebook": "Act as a chef", "action": " ", "tags": ["#openai", "#chef", "#cooking", "#ai", "#machinelearning", "#deeplearning", "#plugin"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-19", "created_at": "2023-05-29", "description": "This notebook will create a plugin to act as a chef and use OpenAI to create delicious recipes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_chef.ipynb", "open_in_chat": "https://naas.ai/chat/use?plugin_url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Act_as_a_chef.ipynb", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Act_as_a_chef.ipynb", "imports": ["json", "naas"], "image_url": ""}, {"objectID": "2b4754fa5dd2c8e1691f721e48e3e11917c629c0fb2438ffd78503ee63e4bc57", "tool": "OpenAI", "notebook": "Brainstorm ideas", "action": "", "tags": ["#openai", "#brainstorm", "#ideas", "#ai", "#machinelearning", "#deeplearning"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will help brainstorm ideas on a specific topic using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Brainstorm_ideas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Brainstorm_ideas.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "64991d5e7374c52b3e71bbb365667239daea4ce7f872425c483d7da87c59b9f0", "tool": "OpenAI", "notebook": "Count tokens with tiktoken", "action": "", "tags": ["#openai", "#tiktoken", "#count", "#token", "#tokens", "#cookbook"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-16", "created_at": "2023-06-16", "description": "This notebook shows how to count tokens used from a string with tiktoken to use OpenAI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Count_tokens_with_tiktoken.ipynb", "imports": ["tiktoken", "tiktoken"], "image_url": ""}, {"objectID": "af9a04ddc27f4c638f42e4ea923fc3a24aad1d38516af8f9dc4ad3b262d29647", "tool": "OpenAI", "notebook": "Create Completion", "action": "", "tags": ["#openai", "#gpt3", "#textcompletion", "#ai", "#machinelearning", "#deeplearning", "#nlp", "#datascience", "#artificialintelligence", "#tech", "#innovation", "#creativity"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-31", "created_at": "2023-02-06", "description": "This notebook guides you through the process of using OpenAI's Generative Pretrained Transformer 3 (GPT-3) model to build a text completion application. This notebook will show you how to fine-tune GPT-3 to generate text based on a given prompt, and then integrate it into a web application for easy usage. The end result will be a working text completion tool that can be used to generate new ideas, suggestions, or even entire texts with just a few inputs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Create_Completion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Create_Completion.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "ce29f2ffe243c1ea092cd43ea7e5e42e8d39d6180230ab0ab9db873d168cbb4b", "tool": "OpenAI", "notebook": "Create chat completion", "action": "", "tags": ["#openai", "#chat", "#completion", "#model", "#response", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-31", "created_at": "2023-05-12", "description": "This notebook creates a model response for the given chat conversation. It uses OpenAI's API to generate a response based on the conversation context. This is useful for organizations that need to generate automated responses to customer inquiries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Create_chat_completion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Create_chat_completion.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "80af0a91b7797150d190e1dbab405133c6fb5be12cf1043b33c2709ee7eacdaa", "tool": "OpenAI", "notebook": "Create chatbot", "action": "", "tags": ["#openai", "#chatbot", "#conversation", "#ai", "#nlp", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-31", "created_at": "2023-05-31", "description": "This notebook create a chat conversation with OpenAI based on the initial system information. To stop it, just write \"STOP\" in the user input section.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Create_chatbot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Create_chatbot.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "c51c4610007ed74a0ecde9c8fd0a9fc269e96164e2ba4f6fe7fc971bf86943e6", "tool": "OpenAI", "notebook": "Generate_Act_as_a_x_notebook", "action": "", "tags": ["#openai", "#ai", "#machinelearning", "#deeplearning", "#notebooks", "#automation", "#gsheet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook creates \"Act as a ...\" notebooks from a Google Sheets spreadsheet using OpenAI_Act_as_a_chef.ipynb as template.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Act_as_a_x_notebook.ipynb", "imports": ["papermill.iorw.(", "naas", "naas_drivers.gsheet", "copy", "json", "subprocess"], "image_url": ""}, {"objectID": "00885f380a5e98de1dfc84407a532f4ee99e7db3944644806fe32800b7c70a17", "tool": "OpenAI", "notebook": "Generate Dialogue", "action": "", "tags": ["#openai", "#gpt", "#api", "#prompt"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2023-03-18", "description": "This template shows how to use the OpenAI API to generate responses to user input within a Naas notebook, allowing users to create interactive chatbots or dialogue systems.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Dialogue.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Dialogue.ipynb", "imports": ["naas", "openai", "openai"], "image_url": ""}, {"objectID": "388967283e9e6cc7c2fb3566e6e171bf2d3a1ec9a74ee315d6751e0efe6e850c", "tool": "OpenAI", "notebook": "Generate Q&A", "action": "", "tags": ["#openai", "#q&a"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-04-12", "created_at": "2023-03-16", "description": "This notebook shows how to use the OpenAI API to generate answer to a question.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Q%26A.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Q%26A.ipynb", "imports": ["naas", "os", "openai", "openai"], "image_url": ""}, {"objectID": "f4334e52da15c82c96fa2ba1ebc2a7e0e769de9f92ed2b06ff6db3e4ac828cb3", "tool": "OpenAI", "notebook": "Generate README for GitHub repository", "action": "", "tags": ["#openai", "#github", "#readme", "#repository", "#generate", "#automation"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-04-11", "description": "This notebook will generate a README for a GitHub repository based on the project name and description.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_README_for_GitHub_repository.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "5435d7164828670bd059f0d88f7fad45e8ccd8ed1ae0893b4685b6b3d5debbbd", "tool": "OpenAI", "notebook": "Generate Text to Speech", "action": "", "tags": ["#openai"], "author": "Sriniketh Jayasendil", "author_url": "http://linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2023-02-10", "description": "This notebook focusses on using OpenAI for text-to-speech generation using [gTTS](https://pypi.org/project/gTTS/)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_Text_to_Speech.ipynb", "imports": ["os", "naas", "openai", "openai", "gtts.gTTS", "gtts.gTTS"], "image_url": ""}, {"objectID": "7c89c1b529294dde50d26637c99788c03044af0f901bd4986f554996a3e2e8f3", "tool": "OpenAI", "notebook": "Generate image from text", "action": "", "tags": ["#openai", "#image", "#text", "#generation"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel", "updated_at": "2023-06-09", "created_at": "2023-06-06", "description": "This notebook shows how to use the OpenAI API to make create images from text using Dall-E.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_image_from_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_image_from_text.ipynb", "imports": ["os", "openai # OpenAI Python library to make API calls", "requests # used to download images", "os # used to access filepaths", "PIL.Image # used to print and edit images", "naas # used to generate shareable image link", "openai"], "image_url": ""}, {"objectID": "60e910eeeaabf738f5c0852cc429357d0e707b935b2cd1fbbbae96d09e0ccca6", "tool": "OpenAI", "notebook": "Generate language translations", "action": "", "tags": ["#openai", "#language", "#translation", "#ai", "#translator", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2023-02-05", "description": "This notebook translates a given text to a language of choice using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_language_translations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_language_translations.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "5e3fa80c5c4704e4070b51b8cc7f3b4cd631b82a81621d798a826780aa00e474", "tool": "OpenAI", "notebook": "Generate text based prediction", "action": "", "tags": ["#openai", "#prediction", "#text"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-04-12", "created_at": "2023-03-08", "description": "This notebook shows how to use the OpenAI API to make predictions based on text data", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_text_based_prediction.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_text_based_prediction.ipynb", "imports": ["os", "openai", "openai"], "image_url": ""}, {"objectID": "fd2a1ab9606a02f8b8004c754a617821290a3e99ba1f9c7e610be1423d93a261", "tool": "OpenAI", "notebook": "Generate text replacements", "action": "", "tags": ["#openai", "#text_replacement"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-04-12", "created_at": "2023-03-23", "description": "This notebook shows how to use the OpenAI API to generate text replacements such as correcting grammatical errors or making text more formal.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_text_replacements.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_text_replacements.ipynb", "imports": ["naas", "os", "openai", "openai"], "image_url": ""}, {"objectID": "2961a8fa985173e1fe7bc9ecd7dded9230b4249964c082484466ef3c7e8b95d5", "tool": "OpenAI", "notebook": "Generate text summaries", "action": "", "tags": ["#openai", "#text", "#summary"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-05-24", "created_at": "2023-05-24", "description": "This notebook shows how to use the OpenAI API to generate text summaries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Generate_text_summaries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Generate_text_summaries.ipynb", "imports": ["naas", "openai", "openai"], "image_url": ""}, {"objectID": "b9e07c5aa5d74211244f408194927ef89fa7cb5a191606fe230c798269d684f9", "tool": "OpenAI", "notebook": "Write a blog post", "action": "", "tags": ["#openai", "#blogpost", "#writing", "#ai", "#machinelearning", "#deeplearning"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will provide a step-by-step guide to writing a blog post using OpenAI.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_blog_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_blog_post.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "3afca0fde41d0b659bad065a920c3475ddfb1367a5df0fa4d2cb7a5a32143e49", "tool": "OpenAI", "notebook": "Write a job description", "action": "", "tags": ["#openai", "#jobdescription", "#writing", "#hiring", "#recruiting", "#position"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook provides a guide to write a job description for a specific position for your company.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_job_description.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_job_description.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "5b4533cb454ccc100d98e31d949ea6ba5d605e25d4f166a169bc1444facce745", "tool": "OpenAI", "notebook": "Write a press release", "action": "", "tags": ["#openai", "#pressrelease", "#writing", "#communication", "#publicrelations", "#journalism"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will provide a guide to write using OpenAI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_press_release.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_press_release.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "96e1ff47c1c4011d1a31e25cba022771284016208eec7cdb625e49d2a326f65e", "tool": "OpenAI", "notebook": "Write a social media post", "action": "", "tags": ["#openai", "#socialmedia", "#post", "#prompt", "#tone", "#platform"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will create a prompt to write a social media post and be able to set the topic, the tone and the platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_a_social_media_post.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_a_social_media_post.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "77e886f6f04a14ced07e702a5722295c4ad6dd3ce080c11e25dd2f7d5cbc5874", "tool": "OpenAI", "notebook": "Write an outline", "action": "", "tags": ["#openai", "#outline", "#writing", "#topic", "#structure", "#organize"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-24", "description": "This notebook will provide an outline for writing a specific topic. An outline is a structured plan or framework that serves as a blueprint for organizing and presenting information in a clear and logical way. Outlines can be used for a variety of purposes, such as organizing an essay or research paper, preparing a speech or presentation, or planning a project.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAI/OpenAI_Write_an_outline.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAI/OpenAI_Write_an_outline.ipynb", "imports": ["openai", "openai", "naas"], "image_url": ""}, {"objectID": "29a4f52536d76475d169c74de659e2d0d3f557860ecc062b0374adbf28db05c2", "tool": "OpenAlex", "notebook": "Get lists of authors", "action": "", "tags": ["#openalex", "#api", "#entities", "#authors", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of authors from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_authors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_authors.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "37dd53baf05766a23edd9b0c3d2efd0e35997d2ea98448c2649d27533c46348a", "tool": "OpenAlex", "notebook": "Get lists of concepts", "action": "", "tags": ["#openalex", "#api", "#entities", "#concepts", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of concepts from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_concepts.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "0f7ad43306b5ffe0ac30096d2e74b67a4e2e968aba801e33bfb33de97dffc902", "tool": "OpenAlex", "notebook": "Get lists of funders", "action": "", "tags": ["#openalex", "#api", "#entities", "#funders", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of funders from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_funders.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_funders.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "daa55946917d46e91f745d8bb80015bb01c9b089f8d593cb295f068eba737713", "tool": "OpenAlex", "notebook": "Get lists of institutions", "action": "", "tags": ["#openalex", "#api", "#entities", "#institutions", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of institutions from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_institutions.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "deac59c6ef3ad57a0c139099d6e1967888bf53c250eae9228230aacbcff5aa3e", "tool": "OpenAlex", "notebook": "Get lists of publishers", "action": "", "tags": ["#openalex", "#api", "#entities", "#publishers", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of publishers from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_publishers.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "c7d44879bd6ddfd704a5edeea24d1aa2ad3f3a2f31e01e96559faa13274465b3", "tool": "OpenAlex", "notebook": "Get lists of sources", "action": "", "tags": ["#openalex", "#api", "#entities", "#sources", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of sources from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_sources.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_sources.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "c7d23e7145aa523f18b4b2d09a9c05ed3a857b0fc3a2fd9ad417256bed440d3c", "tool": "OpenAlex", "notebook": "Get lists of works", "action": "", "tags": ["#openalex", "#api", "#entities", "#works", "#get", "#lists"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook will show how to get lists of works from OpenAlex API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenAlex/OpenAlex_Get_lists_of_works.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenAlex/OpenAlex_Get_lists_of_works.ipynb", "imports": ["requests", "pandas"], "image_url": ""}, {"objectID": "4aba3ab8d023730a829408b7fa52a3ae14366326c9e47fa801a2384e5569c73d", "tool": "OpenBB", "notebook": "Create an kernel on Naas", "action": "", "tags": ["#openbb", "#naas", "#ipython", "#conda", "#kernel"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2023-01-11", "description": "This Jupyter Notebook will enable you to establish a new IPython Kernel that you can customize, allowing you to install any desired tools, here OpenBB. This kernel, once created, can be selected to run your notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenBB/OpenBB_Create_an_OpenBB_kernel_on_Naas.ipynb", "imports": [], "image_url": ""}, {"objectID": "bdebeee1fe5060091a5671ca9ea02112b9539ad2f8e26b584f668c3339c30745", "tool": "OpenPIV", "notebook": "Openpiv-python-template", "action": "", "tags": ["#piv", "#openpiv", "#fluidmechanics", "#openpiv-python"], "author": "Alex Liberzon", "author_url": "https://www.linkedin.com/in/alexliberzon/", "updated_at": "2023-04-12", "created_at": "2022-12-07", "description": "This notebook provides a template for using the open source Python library OpenPIV to analyze particle image velocimetry data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenPIV/openpiv-python-template.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenPIV/openpiv-python-template.ipynb", "imports": ["openpiv.tools, validation, filters, scaling, pyprocess", "numpy", "matplotlib.pyplot", "IPython.display.display", "ipywidgets.interact_manual, interactive, fixed, IntSlider, HBox, VBox, Layout", "openpiv.piv, tools", "ipywidgets.interact, interactive, fixed, interact_manual", "IPython.display.Image", "imageio", "skimage.img_as_uint"], "image_url": ""}, {"objectID": "84c4cccf44f66d7957f7c938252f5b5582637a13eed6818af52b2dbd038d582c", "tool": "OpenWeatherMap", "notebook": "Get City Weather", "action": "", "tags": ["#openweathermap", "#opendata", "#snippet", "#dataframe"], "author": "Christophe Blefari", "author_url": "https://www.linkedin.com/in/christopheblefari/", "updated_at": "2023-04-12", "created_at": "2021-07-21", "description": "This notebook provides an easy way to access current weather data for any city using the OpenWeatherMap API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenWeatherMap/OpenWeatherMap_Get_City_Weather.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "f4d4d561d540e27d1820edc3f73ffc5d3cffab1fb7d280c1c6fb8780c3804056", "tool": "OpenWeatherMap", "notebook": "Get City temperature weather-type wind-speed", "action": "", "tags": ["#openweathermap", "#opendata", "#snippet", "#dataframe"], "author": "Kanishk Pareek", "author_url": "https://in.linkedin.com/in/kanishkpareek", "updated_at": "2023-06-14", "created_at": "2022-10-06", "description": "This notebook helps to get the temperature and wind speed of your city by only giving the city as input.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenWeatherMap/OpenWeatherMap_Get_City_temperature_weather-type_wind-speed.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "7ed1b4da0f14ddd2edc45c590983df0307cbbfe311cd4289de3e9d39765c6a41", "tool": "OpenWeatherMap", "notebook": "Send daily email with predictions", "action": "", "tags": ["#openweathermap", "#weather", "#plotly", "#prediction", "#email", "#naas_drivers", "#automation", "#opendata", "#analytics", "#ai", "#image", "#html", "#text"], "author": "Gautier Vivard", "author_url": "https://www.linkedin.com/in/gautier-vivard-1811b877/", "updated_at": "2023-04-12", "created_at": "2022-02-11", "description": "This notebook sends a daily email with weather predictions from OpenWeatherMap.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OpenWeatherMap/OpenWeatherMap_Send_daily_email_with_predictions.ipynb", "imports": ["requests", "markdown2", "time", "pandas", "naas", "naas_drivers.plotly, prediction"], "image_url": ""}, {"objectID": "a01f17dcdd69a089120f8effd220d3a92241221e9c143270fe441934be4d8e67", "tool": "OwnCloud", "notebook": "Download file", "action": "", "tags": ["#owncloud", "#cloud", "#storage", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-08", "description": "This notebook allows users to download files from their OwnCloud account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OwnCloud/OwnCloud_Download_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OwnCloud/OwnCloud_Download_file.ipynb", "imports": ["naas", "owncloud"], "image_url": ""}, {"objectID": "80e640b22b8ac5254779988dbd2db06195ea2efa222ca5076c6cd225b76fb848", "tool": "OwnCloud", "notebook": "Upload file", "action": "", "tags": ["#owncloud", "#cloud", "#storage", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-08", "description": "This notebook allows users to securely upload files to their own personal cloud storage.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/OwnCloud/OwnCloud_Upload_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/OwnCloud/OwnCloud_Upload_file.ipynb", "imports": ["naas", "owncloud"], "image_url": ""}, {"objectID": "24264f1dc83845e25fdf023a95210e84987b196ef0a99dfd78a662d984443f96", "tool": "PDF", "notebook": "Extract Text from file", "action": "", "tags": ["#pdf", "#extract", "#snippet", "#operations", "#text"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-07-04", "created_at": "2022-10-03", "description": "This notebook extracts text from a PDF file in local or an URL.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PDF/PDF_Extract_Text_from_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Extract_Text_from_file.ipynb", "imports": ["io", "requests", "urllib.parse.urlparse", "urllib", "PyPDF2.PdfReader", "PyPDF2.PdfReader"], "image_url": ""}, {"objectID": "8bb6225a686349e47e170097cd65d15a077192613a84eeadafb1747d28342177", "tool": "PDF", "notebook": "Merge multiple documents", "action": "", "tags": ["#pdf", "#extract", "#snippet", "#operations", "#text"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-10-05", "description": "This notebook allows users to combine multiple PDF documents into a single file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PDF/PDF_Merge_multiple_PDF_documents.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Merge_multiple_PDF_documents.ipynb", "imports": ["io", "requests", "urllib.parse.urlparse", "PyPDF2.PdfFileReader, PdfFileWriter", "PyPDF2.PdfFileReader, PdfFileWriter"], "image_url": ""}, {"objectID": "260f8c6ceef5c7c165c4591bc6db22389b0eb540c849af035040ff3f31230c28", "tool": "PDF", "notebook": "Transform to MP3", "action": "", "tags": ["#pdf", "#text2audio", "#snippet", "#operations", "#mp3"], "author": "Sanjay Sabu", "author_url": "https://www.linkedin.com/in/sanjay-sabu-4205/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook converts PDF documents into MP3 audio files.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PDF/PDF_Transform_to_MP3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PDF/PDF_Transform_to_MP3.ipynb", "imports": ["io.StringIO", "pdfminer.converter.TextConverter", "pdfminer.layout.LAParams", "pdfminer.pdfdocument.PDFDocument", "pdfminer.pdfinterp.PDFResourceManager, PDFPageInterpreter", "pdfminer.pdfpage.PDFPage", "pdfminer.pdfparser.PDFParser", "gtts.gTTS"], "image_url": ""}, {"objectID": "5d27e3bd7fdfda696205d0e879b9a00e31ece1a64cae3c864ab22b006a0ab495", "tool": "Pandas", "notebook": "Apply custom styles on column", "action": "", "tags": ["#pandas", "#dataframe", "#style", "#column", "#apply", "#custom"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-25", "created_at": "2023-07-24", "description": "This notebook will show how to apply custom styles on a column of a Pandas DataFrame. It is usefull for data analysis and data visualization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Apply_custom_styles_on_column.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Apply_custom_styles_on_column.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "3f4e8e954fbc8a7f0e0ef3c8d8fc7e2296a180433067b08baee8d3258699f2fc", "tool": "Pandas", "notebook": "Check Columns type", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-11-29", "description": "This notebook checks columns in a dataframe. It could be very usefull to apply specific rules regarding columns format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Check_Columns_type.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Check_Columns_type.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "1cdf0c27d04d84326ec48579541ee6ba9fb14172a2854e61231d11721984cea2", "tool": "Pandas", "notebook": "Check if column is in date format", "action": "", "tags": ["#pandas", "#dataframe", "#date", "#datetime", "#column", "#format"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-27", "created_at": "2023-06-13", "description": "This notebook will check if a column of a Pandas DataFrame is in date format. It is usefull for organizations to quickly check if a column is in the right format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Check_if_column_is_in_date_format.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Check_if_column_is_in_date_format.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "01ec5aa3d067f1b4fe7b0e50d1a69fbffe59bb202fb9162ccdada4e82ef1174b", "tool": "Pandas", "notebook": "Concatenate dataframes", "action": "", "tags": ["#pandas", "#concatenate", "#dataframe", "#snippet", "#operations"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-30", "created_at": "2023-06-06", "description": "This notebook demonstrates how to concatenate dataframes across rows or columns using the Pandas library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Concatenate_dataframes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Concatenate_dataframes.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "3747b1ba5d9239ad75873c8918a7988f1253b0d87fe30db99b29078203d3fd2f", "tool": "Pandas", "notebook": "Convert datetime series", "action": "", "tags": ["#pandas", "#python", "#date", "#conversion", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2022-05-12", "description": "This notebook provides instructions on how to use the Pandas library to convert a datetime series into a usable format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Convert_datetime_series.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Convert_datetime_series.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "9af61c9bfbaa205ab7a89d08fd076daa97551b36e768b0e2e388f71702a8d4e4", "tool": "Pandas", "notebook": "Create Pivot Table", "action": "", "tags": ["#pandas", "#pivot", "#operations", "#snippet", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-10-06", "description": "This notebook provides an example of how to use the Pandas library to create a pivot table.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Create_Pivot_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_Pivot_Table.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "5dea1727d2325c2d39e0c97291eaad55fbaac39738b6f9870fcc25d9994de449", "tool": "Pandas", "notebook": "Create conditional column enrichment using DataFrame.loc", "action": "", "tags": ["#pandas", "#snippet", "#datenrichment", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-04", "created_at": "2023-06-04", "description": "This notebook demonstrates the practical application of `DataFrame.loc` for implementing conditions, enabling users to seamlessly enrich a DataFrame by generating new columns based on conditions derived from existing ones. Its versatility makes it an invaluable tool for DataFrame manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_conditional_column_enrichment_using_DataFrame.loc.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "08aa6d5c2fcc85a4d1298f7c041485ceae994f6a8646b16f49dc3a1dd2c737c6", "tool": "Pandas", "notebook": "Create dataframe from dict", "action": "", "tags": ["#pandas", "#dict", "#snippet", "#dataframe", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-06-07", "created_at": "2022-03-07", "description": "This notebook provides a step-by-step guide to creating a dataframe from a dictionary using the Pandas library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Create_dataframe_from_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Create_dataframe_from_dict.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "3b5664bbc6d912853acf24f4abd081bf5d0f7be6dc03b6c64adb8d2a0ef347af", "tool": "Pandas", "notebook": "Drop Columns By Index", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Sunny Chugh", "author_url": "https://www.linkedin.com/in/sunny-chugh-ab1630177/", "updated_at": "2023-04-12", "created_at": "2023-01-12", "description": "This notebook shows how to drop columns in Pandas DataFrame by index.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_Columns_By_Index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_Columns_By_Index.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "9dc849f238938acd6d80c65a1dc602684a11c7650ba75ad919d1f36e183ceca1", "tool": "Pandas", "notebook": "Drop First column", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-11-28", "description": "This notebook shows how to drop First Column in Pandas DataFrame (3 Methods).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_First_column.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_First_column.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "10766514d077aaf045278657b7690bc7719fc6962cd9a47afe2312f1c3e9b91a", "tool": "Pandas", "notebook": "Drop columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook shows how to define a new DataFrame that drops columns defined in Input section.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "d6fb1e632b01ef9b6537987e8a40f196a59dbe2dc049961dbfaeeea7833d9f17", "tool": "Pandas", "notebook": "Drop duplicates", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Sunny Chugh", "author_url": "https://www.linkedin.com/in/sunny-chugh-ab1630177/", "updated_at": "2023-06-04", "created_at": "2023-06-04", "description": "This notebook shows how to drop duplicates in a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Drop_duplicates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Drop_duplicates.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "24261058569d9db319d5a70d1be2371ff1cc19b5b47bf391fdc996437e3d2506", "tool": "Pandas", "notebook": "Enforce data types to columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-04", "created_at": "2023-06-04", "description": "This notebook enforces specific data types to columns using Pandas, elevating your data consistency and accuracy. Availables types:\n- Numeric types: int, float, complex\n- Textual types: str\n- Date and time types: datetime, timedelta\n- Categorical types: category\n- Boolean type: bool\n- Object type: object", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Enforce_data_types_to_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Enforce_data_types_to_columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "b412dd6032e5b39b130a8a012daaa8edda669ca6a9ff60187cdd86e1a8140a35", "tool": "Pandas", "notebook": "Fill emtpy values", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2022-11-29", "description": "This notebook fill empty values in dataframe columns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Fill_emtpy_values.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Fill_emtpy_values.ipynb", "imports": ["pandas", "numpy"], "image_url": ""}, {"objectID": "314b97f33ad0926c9bcdc4dd545c9bee424e648c6e041e35454f084d140fa51f", "tool": "Pandas", "notebook": "Filter DataFrame", "action": "", "tags": ["#pandas", "#dataframe", "#filter", "#python", "#dataanalysis"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-04", "created_at": "2023-03-02", "description": "This notebook will show how to filter a DataFrame using Pandas.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Filter_DataFrame.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Filter_DataFrame.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "17af8c0029b88a375ce0ca2eada983c97f6d6c0f4bab83a36a524026cc5e74d4", "tool": "Pandas", "notebook": "Flatten MultiIndex Columns", "action": "", "tags": ["#pandas", "#dataframe", "#multiindex", "#flatten", "#columns"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-03-29", "description": "This notebook explains how to flatten a MultiIndex column in a Pandas DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Flatten_MultiIndex_Columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "58c0be4a754b9695c5d1bb790222ff5c3d8426dc0fa876d1f948fce48d4730c5", "tool": "Pandas", "notebook": "Format URL as clickable link on column", "action": "", "tags": ["#pandas", "#dataframe", "#url", "#link", "#column", "#format"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-24", "created_at": "2023-07-24", "description": "This notebook will show how to format a URL as a clickable link on a column of a Pandas DataFrame. This is usefull for organizations to quickly access to a website from a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Format_URL_as_clickable_link_on_column.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "2ddb6eb54c1253c857cef66aeec26ee3d1fe3c61864951d3b23ca2dfda2f3cf6", "tool": "Pandas", "notebook": "Format number to string", "action": "", "tags": ["#pandas", "#dataframe", "#format", "#snippet", "#yahoofinance", "#naas_drivers", "#operations", "#jupyternotebooks"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides an example of how to convert numerical values to strings using the Pandas library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Format_number_to_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Format_number_to_string.ipynb", "imports": ["naas_drivers.yahoofinance"], "image_url": ""}, {"objectID": "15c411f00d45474fa8f6c3e97c526d6e56dfd00b2dbebacafc15823ff5ea5618", "tool": "Pandas", "notebook": "Get n largest", "action": "", "tags": ["#pandas", "#dataframe", "#nlargest", "#python", "#data", "#analysis"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-14", "created_at": "2023-06-13", "description": "This notebook will demonstrate how to use the `nlargest` function in Pandas to get the n largest values from a DataFrame. This is useful for data analysis and data manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Get_n_largest.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Get_n_largest.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "11148b2df16b8fc1df13c6aaa2928e94e1335bda5e3cb7410191d4772db14fc1", "tool": "Pandas", "notebook": "Get n smallest", "action": "", "tags": ["#pandas", "#dataframe", "#nsmallest", "#python", "#data", "#analysis"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-13", "created_at": "2023-06-13", "description": "This notebook explains how to use the `nsmallest` function from the Pandas library to get the n smallest values from column in a DataFrame.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Get_n_smallest.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Get_n_smallest.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "2f781b99d1e3e490fc5110f16be03119b1ab962d2b8ec93cfaf384332518ec74", "tool": "Pandas", "notebook": "Groupby and Aggregate", "action": "", "tags": ["#pandas", "#snippet", "#datamining", "#dataaggragation", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2022-11-30", "description": "This notebook groups and perform aggregation on columns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Groupby_and_Aggregate.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Groupby_and_Aggregate.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "bbc337a0d36c172e2e37ae7f50ffe79583936213893f036e3e538450012a1a46", "tool": "Pandas", "notebook": "ISO Date Conversion", "action": "", "tags": ["#pandas", "#python", "#date", "#conversion", "#isoformat", "#dateconversion", "#operations", "#snippet", "#dataframe"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-04-12", "created_at": "2021-10-06", "description": "This notebook provides a guide to converting ISO dates into Pandas-compatible formats.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_ISO_Date_Conversion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_ISO_Date_Conversion.ipynb", "imports": ["pandas", "dateutil.parser.parse"], "image_url": ""}, {"objectID": "dff9d7790f99b4c6981061774c7fcfc49b0814bc0b161ec88d96f69c857a6af2", "tool": "Pandas", "notebook": "Insert column", "action": "", "tags": ["#pandas", "#column", "#insert", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-04", "created_at": "2023-06-04", "description": "This notebook show how to insert column into DataFrame at specified location.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Insert_column.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Insert_column.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "c27a3508278911a39eefd92d7cbd38a4a34ff68c0ca048ad6a5871647f86af3d", "tool": "Pandas", "notebook": "Iterate over DataFrame rows", "action": "", "tags": ["#pandas", "#python", "#loops", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook demonstrates how to iterate over DataFrame rows as (index, Series) pairs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Iterate_over_DataFrame_rows.ipynb", "imports": ["pandas", "numpy"], "image_url": ""}, {"objectID": "56f61acbe2bb3fb0a64d18a0d1d86efe024967f9d0f7640c21efbc6fab85d961", "tool": "Pandas", "notebook": "Iterate over DataFrame rows as namedtuples", "action": "", "tags": ["#pandas", "#python", "#loops", "#snippet", "#operations", "#namedtuples", "#dataframe"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-08", "created_at": "2023-06-07", "description": "This notebook demonstrates how to iterate over DataFrame rows as namedtuples", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Iterate_over_DataFrame_rows_as_namedtuples.ipynb", "imports": ["pandas", "numpy", "collections.namedtuple"], "image_url": ""}, {"objectID": "66637c0e78b1cafa7d6ad81906a679a160528a45efad2fc436c804d12b40ca49", "tool": "Pandas", "notebook": "Keep columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook shows how to define a new DataFrame that only keeps columns defined in Input section.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Keep_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Keep_columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "0b45752d1f47b9ea195133d22bb8a86066c2eb1baad4a0308a994c5a424e9fbc", "tool": "Pandas", "notebook": "Looping Over Dataframe", "action": "", "tags": ["#pandas", "#python", "#loops", "#dataframes", "#forloop", "#loop", "#snippet", "#operations"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-06-06", "created_at": "2021-10-07", "description": "This notebook provides an overview of multiples ways to use loops to iterate over a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Looping_Over_Dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Looping_Over_Dataframe.ipynb", "imports": ["pandas", "numpy"], "image_url": ""}, {"objectID": "4ad864c7c502f13639fafe2b968aa7346943bb6330ba7557259e9e431848adcc", "tool": "Pandas", "notebook": "Map column with values in dict", "action": "", "tags": ["#pandas", "#dict", "#map", "#series"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-08", "description": "This notebook shows how to map a column of a Pandas DataFrame with values from a dictionary.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Map_column_with_values_in_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Map_column_with_values_in_dict.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "ea957a5f2454415ccc337c1c056b1e7a9e2cb345f786c1938a3ef0b4a434955e", "tool": "Pandas", "notebook": "Merge Dataframes", "action": "", "tags": ["#pandas", "#python", "#merging", "#merge", "#dataframes", "#consolidate", "#operations", "#snippet", "#dataframe"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-06-04", "created_at": "2021-10-07", "description": "This notebook provides an overview of how to use the Pandas library to merge two or more dataframes.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Merge_Dataframes.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Merge_Dataframes.ipynb", "imports": ["pandas", "numpy"], "image_url": ""}, {"objectID": "dfd4c9e70e3517613da38637dc496216b24dd65e6305d5edc6f1eae5d0172d6c", "tool": "Pandas", "notebook": "Pivot rows to columns", "action": "", "tags": ["#pandas", "#pivot", "#snippet", "#operations", "#utils", "#data"], "author": "Ismail Chihab", "author_url": "https://www.linkedin.com/in/ismail-chihab-4b0a04202/", "updated_at": "2023-04-12", "created_at": "2022-09-09", "description": "This notebook demonstrates how to use the Pandas library to transform data by pivoting rows into columns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Pivot_rows_to_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Pivot_rows_to_columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "4932d57368797cb77d7866263669d24705499a09d49a57e4c15f334eba2cf2a1", "tool": "Pandas", "notebook": "Read CSV", "action": "", "tags": ["#pandas", "#csv", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook show how to read a CSV file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Read_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Read_CSV.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "de43d3c8b9aa8a86b8179624cf2d7dc2cfeb49e5c922858f7419de9daa6b2dc2", "tool": "Pandas", "notebook": "Read Excel", "action": "", "tags": ["#pandas", "#excel", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook show how to read a Excel file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Read_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Read_Excel.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "846a0b00f4ab77df51ec9a47797b3a4440bb682426600b7a7a3b7b5fbdf0c652", "tool": "Pandas", "notebook": "Rename columns", "action": "", "tags": ["#pandas", "#snippet", "#datacleaning", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook renames columns in a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Rename_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Rename_columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "5af9dafa2814c72a3b62ec58dbe2de6fc94c096c7cf3ec68e341701bed102914", "tool": "Pandas", "notebook": "Save dataframe to CSV", "action": "", "tags": ["#pandas", "#csv", "#snippet", "#operation"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-03", "created_at": "2023-06-03", "description": "This notebook show how to save a dataframe to a CSV file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Save_dataframe_to_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Save_dataframe_to_CSV.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "c2f8f6055e4d62602616107e3d9098ce962d1a64c169978495b1ffe2b51ac751", "tool": "Pandas", "notebook": "Save dataframe to Excel", "action": "", "tags": ["#pandas", "#excel", "#snippet", "#operation", "#dataframe", "#save"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-09", "created_at": "2023-06-07", "description": "This notebook show how to save a dataframe to Excel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Save_dataframe_to_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Save_dataframe_to_Excel.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "1d2d1155e7b45a7959095737ba4ecd08e96ffc02a72d097d5271eae4b71902a5", "tool": "Pandas", "notebook": "Sort values by multiples columns", "action": "", "tags": ["#pandas", "#dataframe", "#sort", "#columns", "#values", "#multiples"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-16", "created_at": "2023-06-13", "description": "This notebook will show how to sort values by multiples columns in Pandas. It is usefull for data analysis and data manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Sort_values_by_multiples_columns.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "b27675b70ee0475d12381be158a83a7888089de73a76f6f28e4f4d3c1088bfad", "tool": "Pandas", "notebook": "Transform DataFrame to json file", "action": "", "tags": ["#pandas", "#dataframe", "#json", "#transform", "#file", "#dict", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-09", "created_at": "2023-05-09", "description": "This notebook will show how to transform a DataFrame into a json file. It is usefull for organizations that need to store data in a json format.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Transform_DataFrame_to_json_file.ipynb", "imports": ["pandas", "json"], "image_url": ""}, {"objectID": "1961a79a86f4ee0ee0e0b29f136404431cb29587979223fe04ef6dec574cbc69", "tool": "Pandas", "notebook": "Transform Dataframe to dict", "action": "", "tags": ["#pandas", "#dataframe", "#dict", "#snippet", "#yahoofinance", "#naas_drivers", "#operations", "#jupyternotebooks"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-09", "created_at": "2023-05-09", "description": "This notebook provides an example of how to use the Pandas library to convert a dataframe into a dictionary.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandas/Pandas_Transform_Dataframe_to_dict.ipynb", "imports": ["naas_drivers.yahoofinance"], "image_url": ""}, {"objectID": "76ce3d48a02d92cc6ef4e068ea8883a5381c4583f32d993f672106b1f295be90", "tool": "Pandasql", "notebook": "Query CSV Using SQL", "action": "", "tags": ["#pandas", "#csv", "#snippet", "#read", "#dataframe", "#sql", "#pandasql", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2023-02-04", "description": "This notebook demonstrates how to use Pandasql to query CSV files as if they were relational databases, using SQL syntax. The aim is to provide an alternative to traditional Pandas methods for filtering, grouping, and aggregating data, and make it easier for users who are familiar with SQL to perform these tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandasql/Pandasql_Query_CSV_Using_SQL.ipynb", "imports": ["pandas", "pandasql.sqldf", "pandasql.sqldf"], "image_url": ""}, {"objectID": "bb199c1091a4a9f5a538365d093d290b3d47e406206122d2fbe8fec17af8ab0a", "tool": "Pandasql", "notebook": "Query Excel Using SQL", "action": "", "tags": ["#pandas", "#excel", "#snippet", "#read", "#dataframe", "#sql", "#pandasql", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2023-04-07", "description": "This notebook demonstrates how to use Pandasql to query Excel files as if they were relational databases, using SQL syntax. The aim is to provide an alternative to traditional Pandas methods for filtering, grouping, and aggregating data, and make it easier for users who are familiar with SQL to perform these tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandasql/Pandasql_Query_Excel_Using_SQL.ipynb", "imports": ["pandas", "pandasql.sqldf", "pandasql.sqldf"], "image_url": ""}, {"objectID": "6a9d3147aa50285ac5a92cd7539565be2378fdb41aea7a36da585c2187e03632", "tool": "Pandasql", "notebook": "Query Parquet Using SQL", "action": "", "tags": ["#pandas", "#parquet", "#snippet", "#read", "#dataframe", "#sql", "#pandasql", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2023-04-07", "description": "This notebook demonstrates how to use Pandasql to query Parquet files as if they were relational databases, using SQL syntax. The aim is to provide an alternative to traditional Pandas methods for filtering, grouping, and aggregating data, and make it easier for users who are familiar with SQL to perform these tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pandasql/Pandasql_Query_Parquet_Using_SQL.ipynb", "imports": ["pandas", "pandasql.sqldf", "pandasql.sqldf"], "image_url": ""}, {"objectID": "1f5b6f5d2d919274a737d5b13f4427d7cc779367fb8efffbd61ea6c7d767a2b0", "tool": "Panel", "notebook": "Create a kernel on Naas", "action": "", "tags": ["#panel", "#ipython", "#conda", "#naas", "#kernel"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2023-01-11", "description": "This Jupyter Notebook will enable you to establish a new IPython Kernel that you can customize, allowing you to install any desired tools. This kernel, once created, can be selected to run your notebooks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Panel/Panel_Create_a_Panel_kernel_on_Naas.ipynb", "imports": [], "image_url": ""}, {"objectID": "43a2d5488f55091c2a69c598836fe3680e4003c3117c71b687912fc67b7611c0", "tool": "Pillow", "notebook": "Add data to image", "action": "", "tags": ["#pillow", "#opendata", "#snippet", "#data", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-04-19", "description": "This notebook demonstrates how to use the Pillow library to add data to an existing image.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Add_data_to_image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Add_data_to_image.ipynb", "imports": ["PIL.Image, ImageDraw, ImageFont", "naas"], "image_url": ""}, {"objectID": "5ac6df900da4dc00365e842c34cceb80b361d19e824618b4b49ddc8275d355cf", "tool": "Pillow", "notebook": "Create indicator", "action": "", "tags": ["#pillow", "#opendata", "#snippet", "#data", "#image", "#indicator", "#kpi"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-12-06", "description": "This notebook creates an indicator with title and kpi using Pillow.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Create_indicator.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Create_indicator.ipynb", "imports": ["PIL.Image, ImageDraw, ImageFont", "urllib"], "image_url": ""}, {"objectID": "36a46b8dea31448e6c96ce86e134eb3596ca9606f23ba38d98c952a3bc8246b4", "tool": "Pillow", "notebook": "Create new image", "action": "", "tags": ["#pillow", "#opendata", "#snippet", "#data", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-12-06", "description": "This notebook creates and saves an image using Pillow. You can setup its width, height and background color.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Create_new_image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Create_new_image.ipynb", "imports": ["PIL.Image"], "image_url": ""}, {"objectID": "ed2a0acd5f746906d09577c801960c8a21014484ac59e04b2875b57fad351e2c", "tool": "Pillow", "notebook": "Generate A Certificate Template", "action": "", "tags": ["#Pillow", "#Python", "#certificate-template", "#naas"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "updated_at": "2023-04-12", "created_at": "2022-10-06", "description": "This notebook provides a template for generating a personalized certificate using the Pillow library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pillow/Pillow_Generate_A_Certificate_Template.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pillow/Pillow_Generate_A_Certificate_Template.ipynb", "imports": ["PIL.Image, ImageDraw, ImageFont", "requests", "io.BytesIO", "bs4.BeautifulSoup"], "image_url": ""}, {"objectID": "f67f0e92ee4940e9983e194e6375686842a22bcbc68eec6f4066e69b528aeaf0", "tool": "Pipedrive", "notebook": "Get contact", "action": "", "tags": ["#pipedrive", "#crm", "#contact", "#sales", "#snippet", "#dataframe"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2021-10-18", "description": "This notebook provides a way to quickly and easily get contact information from Pipedrive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pipedrive/Pipedrive_Get_contact.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pipedrive/Pipedrive_Get_contact.ipynb", "imports": ["pipedrive.client.Client", "pipedrive.client.Client", "pandas"], "image_url": ""}, {"objectID": "d6e7f95dbe41f7777d676406ded33033d8f4320cf952759eb61fc8638a3f7f28", "tool": "Plaid", "notebook": "Get accounts", "action": "", "tags": ["#plaid", "#bank", "#accounts", "#snippet", "#finance", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides an easy way to access financial accounts and transactions through Plaid's API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plaid/Plaid_Get_accounts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plaid/Plaid_Get_accounts.ipynb", "imports": ["os", "plaid", "IPython.core.display", "uuid", "naas", "json", "pandas"], "image_url": ""}, {"objectID": "1c0a3c221963dae426dec4dcc8f110df19362ac20b1950d88159dcc05db17305", "tool": "Plaid", "notebook": "Get transactions", "action": "", "tags": ["#plaid", "#bank", "#transactions", "#snippet", "#finance", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides a guide to retrieving financial transaction data from Plaid.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plaid/Plaid_Get_transactions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plaid/Plaid_Get_transactions.ipynb", "imports": ["os", "plaid", "naas", "IPython.core.display", "uuid", "json"], "image_url": ""}, {"objectID": "8c98be6f5ca47cc8237544ca1fd6637230bb0e9ec0d7d55da7e49d0aa05cbe82", "tool": "Plotly", "notebook": "Create Balance Sheet Treemaps", "action": "", "tags": ["#plotly", "#treemap", "#snippet", "#dataviz", "#balancesheet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-31", "description": "This notebook displays Balance Sheet items into treemap graphs. In a balance sheet, treemap templates can be used to show the distribution of assets and liabilities. The assets can be divided into smaller categories such as cash, marketable securities, accounts receivable, and inventory, while the liabilities can be separated into categories like loans payable, bonds payable, and accounts payable. With a treemap, it is easy to see the relative proportions of each category, making it easier to identify any trends or patterns in the data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Balance_Sheet_Treemaps.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "pandas", "naas"], "image_url": ""}, {"objectID": "c484ebf9f234ef9eee9185595ec6d6d402641b76aade153dd892444ef3b299c9", "tool": "Plotly", "notebook": "Create Barline chart", "action": "", "tags": ["#plotly", "#naas", "#snippet", "#operations", "#barline"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2022-05-26", "description": "This notebook provides instructions on how to create a barline chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Barline_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Barline_chart.ipynb", "imports": ["pandas", "plotly.graph_objects", "plotly.subplots.make_subplots", "naas"], "image_url": ""}, {"objectID": "f6d7102dbaeec65604e69539224a108362eacf8079a71cc0dbd46bf166fc0062", "tool": "Plotly", "notebook": "Create Bubblechart", "action": "", "tags": ["#plotly", "#chart", "#bubblechart", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a bubble chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Bubblechart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Bubblechart.ipynb", "imports": ["naas", "plotly.express", "pandas"], "image_url": ""}, {"objectID": "662519b80629a12be69f987f9d8875dddf515b461d05e9055158e24ff7fc2207", "tool": "Plotly", "notebook": "Create Bubblemap by City", "action": "", "tags": ["#plotly", "#bubblemap", "#city", "#python", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook will show how to creates a bubblemap with values by city using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Bubblemap_by_City.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Bubblemap_by_City.ipynb", "imports": ["pandas", "plotly.express", "naas"], "image_url": ""}, {"objectID": "517e1dc7f83b92be09f8be6d565dc49f1b608178f833c7e3aa8b30f5b4687c7f", "tool": "Plotly", "notebook": "Create Candlestick", "action": "", "tags": ["#plotly", "#chart", "#candlestick", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides an example of how to create a candlestick chart using the Plotly library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Candlestick.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Candlestick.ipynb", "imports": ["naas", "naas_drivers.yahoofinance", "plotly.graph_objects", "pandas"], "image_url": ""}, {"objectID": "d4631b09503ea4ffa69803e63b11d3c51800ee8a8468c962406c93f0398abbde", "tool": "Plotly", "notebook": "Create Gantt chart", "action": "", "tags": ["#plotly", "#chart", "#gant", "#project", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a Gantt chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Gantt_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Gantt_chart.ipynb", "imports": ["plotly.express", "pandas"], "image_url": ""}, {"objectID": "38ddb9935318bf5698eae5b352037f790c225ef788173972b6896f6f028a0814", "tool": "Plotly", "notebook": "Create Heatmap", "action": "", "tags": ["#plotly", "#chart", "#heatmap", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides an example of how to create a heatmap using the Plotly library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Heatmap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Heatmap.ipynb", "imports": ["naas", "plotly.graph_objects", "plotly.express", "pandas"], "image_url": ""}, {"objectID": "f71d07001cfdc2d67718ef0fd91d6bcab1b1c98e043fdbf770d52276f6449f3b", "tool": "Plotly", "notebook": "Create Horizontal Barchart", "action": "", "tags": ["#plotly", "#chart", "#horizontalbar", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a horizontal bar chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Horizontal_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Horizontal_Barchart.ipynb", "imports": ["plotly.graph_objects"], "image_url": ""}, {"objectID": "363d1b3f489a134479cfec35ff780e213e571c9d2356959cc5daff21d5dea34a", "tool": "Plotly", "notebook": "Create Leaderboard", "action": "", "tags": ["#plotly", "#chart", "#horizontalbar", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides an interactive way to visualize and compare data using Plotly to create a leaderboard.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Leaderboard.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Leaderboard.ipynb", "imports": ["plotly.express", "pandas"], "image_url": ""}, {"objectID": "a64b46ba602d154f700f434315aea461c9170c8f939d1062ae9277dd131941c8", "tool": "Plotly", "notebook": "Create Leaderboard stacked", "action": "", "tags": ["#plotly", "#chart", "#horizontalbar", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides an example of how to create a leaderboard using Plotly's stacked bar chart visualization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Leaderboard_stacked.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Leaderboard_stacked.ipynb", "imports": ["plotly.express", "pandas"], "image_url": ""}, {"objectID": "e83171a9bd64008af6a5ea1e0510c738dc249f6741a28092160b5e3f3e8a68a9", "tool": "Plotly", "notebook": "Create Linechart", "action": "", "tags": ["#plotly", "#chart", "#linechart", "#trend", "#dataviz", "#yahoofinance", "#naas_drivers", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-11-23", "description": "This notebook provides instructions on how to create a line chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Linechart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Linechart.ipynb", "imports": ["naas", "naas_drivers.yahoofinance, plotly"], "image_url": ""}, {"objectID": "ae9899cd48c331274221a68cb0007765c4f1f79dbb8a197ffc9e19729393b3ff", "tool": "Plotly", "notebook": "Create Mapchart world", "action": "", "tags": ["#plotly", "#chart", "#worldmap", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides a step-by-step guide to creating an interactive mapchart of the world using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Mapchart_world.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Mapchart_world.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "image_url": ""}, {"objectID": "77b1042719f22bd7aec139151ff411e84fa83863e854fddce69e34042a4b90fa", "tool": "Plotly", "notebook": "Create Treemaps with plotly.express", "action": "", "tags": ["#plotly", "#treemap", "#snippet", "#dataviz", "#plotly.express", "#px"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-31", "description": "This notebook creates Treemaps with plotly.express. Plotly Express is the easy-to-use, high-level interface to Plotly, which operates on a variety of types of data and produces easy-to-style figures.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Treemaps_with_plotly.express.ipynb", "imports": ["plotly.express", "numpy", "pandas", "naas"], "image_url": ""}, {"objectID": "33642dbaa758ab80c8d181a5e069bbd51c833d71d3f5b8802bd45cd6f7062ff9", "tool": "Plotly", "notebook": "Create Treemaps with plotly.graph objects", "action": "", "tags": ["#plotly", "#treemap", "#snippet", "#dataviz", "#plotly.graph_objects", "#go"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-31", "description": "This notebook creates Treemaps with plotly.graph_objects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Treemaps_with_plotly.graph_objects.ipynb", "imports": ["plotly.graph_objects", "plotly.subplots.make_subplots", "numpy", "pandas", "naas"], "image_url": ""}, {"objectID": "63c55ffff60a0fc449fa140924c522ce65f38ad178f439c9bdd11f61817b50aa", "tool": "Plotly", "notebook": "Create Vertical Barchart", "action": "", "tags": ["#plotly", "#chart", "#verticalbarchart", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a vertical barchart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Vertical_Barchart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Vertical_Barchart.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "image_url": ""}, {"objectID": "f71af3953b75a90bc666f15072437705826d17bad8625bdc8561353a683b6931", "tool": "Plotly", "notebook": "Create Vertical Barchart group", "action": "", "tags": ["#plotly", "#chart", "#verticalbarchart", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a vertical barchart group using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Vertical_Barchart_group.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "image_url": ""}, {"objectID": "ad519db0908de78d9d45a66e5b96a2682fe6b2a85fc2ea9410841cae78e0247a", "tool": "Plotly", "notebook": "Create Vertical Barchart stacked", "action": "", "tags": ["#plotly", "#chart", "#verticalbarchart", "#group", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a vertical barchart with stacked bars using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Vertical_Barchart_stacked.ipynb", "imports": ["naas", "plotly.graph_objects", "pandas"], "image_url": ""}, {"objectID": "e90ce80fa0c56a2714a58552d3ca00e07d35d53d5d2a89216f1449170e347e6d", "tool": "Plotly", "notebook": "Create Waterfall chart", "action": "", "tags": ["#plotly", "#chart", "#warterfall", "#dataviz", "#snippet", "#operations", "#image", "#html"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a Waterfall chart using Plotly.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Plotly/Plotly_Create_Waterfall_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Plotly/Plotly_Create_Waterfall_chart.ipynb", "imports": ["naas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "49ed2a1b8e8e4d090e53319021c0d31dff5664db5991ffdf6ec49d5620eec924", "tool": "Polars", "notebook": "Concatenate DataFrames", "action": "", "tags": ["#polars", "#dataframes", "#concatenate", "#python", "#pandas", "#data", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-25", "created_at": "2023-07-25", "description": "This notebook explains how to concatenate DataFrames using Polars and Python. It is usefull for data analysis and data manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Concatenate_DataFrames.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Concatenate_DataFrames.ipynb", "imports": ["polars", "polars"], "image_url": ""}, {"objectID": "b0ec8cb4ccca4c7e92db03bd0282150b5301b49d4afd039cd3d6d134bc302247", "tool": "Polars", "notebook": "Create DataFrame", "action": "", "tags": ["#polars", "#dataframe", "#read", "#python", "#library", "#data", "#csv"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-06", "created_at": "2023-07-06", "description": "This notebook demonstrates how to create a DataFrame using `polars` library.\n\nAbout Polars:\n- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Create_DataFrame.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Create_DataFrame.ipynb", "imports": ["polars", "polars"], "image_url": ""}, {"objectID": "5ad976a4ad2a8c89054f8c2676b823083a4ffa05d5d8803d3ad6164a6649f777", "tool": "Polars", "notebook": "Read CSV", "action": "", "tags": ["#polars", "#dataframe", "#read", "#python", "#library", "#data", "#csv"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2023-04-07", "description": "This notebook will demonstrate how to read a csv using the Polars library.\n\nAbout Polars:\n- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Read_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Read_CSV.ipynb", "imports": ["polars", "polars"], "image_url": ""}, {"objectID": "3521a51627aded39438fb89161151234ff86772c86c9ffee7fd4cef55c3cac79", "tool": "Polars", "notebook": "Select columns", "action": "", "tags": ["#polars", "#dataframe", "#read", "#python", "#library", "#data", "#csv"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-06", "created_at": "2023-07-06", "description": "This notebook demonstrates how to select columns in a DataFrame using `polars` library.\n\nAbout Polars:\n- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Select_Columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Select_Columns.ipynb", "imports": ["polars", "polars"], "image_url": ""}, {"objectID": "fa25e3ec1012dad1c63aeda4b86a6f93f308c4643b6260611d01662a65f294e7", "tool": "Polars", "notebook": "Select rows", "action": "", "tags": ["#polars", "#dataframe", "#read", "#python", "#library", "#data", "#csv"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-06", "created_at": "2023-07-06", "description": "This notebook demonstrates how to select rows in a DataFrame using `polars` library.\n\nAbout Polars:\n- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Select_Rows.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Select_Rows.ipynb", "imports": ["polars", "polars"], "image_url": ""}, {"objectID": "7a9f09587076ee0c3192e964f346d57f656558be530916d518954ff4dcf37679", "tool": "Polars", "notebook": "Select both rows and columns", "action": "", "tags": ["#polars", "#dataframe", "#read", "#python", "#library", "#data", "#csv"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-06", "created_at": "2023-07-06", "description": "This notebook demonstrates how to select columns, rows, and both columns and rows at once in a DataFrame using `polars` library.\n\nAbout Polars:\n- `polars` is a Python library for data manipulation that is built on top of Rust's `Apache Arrow` and `DataFusion` projects.\n- It offers fast and efficient data processing and manipulation capabilities for large datasets, with a Pandas-like API and support for advanced data types.\n- `polars` is especially useful for data-intensive applications such as machine learning, data analysis, and data visualization, and can handle datasets that are too large to fit into memory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Polars/Polars_Select_Rows_and_Columns.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Polars/Polars_Select_Rows_and_Columns.ipynb", "imports": ["polars", "polars"], "image_url": ""}, {"objectID": "228a81ed357d309e1ec921bcacf182615172dd1fabda1a70ac76cc2403589444", "tool": "PostgresSQL", "notebook": "Get data from database", "action": "", "tags": ["#postgressql", "#database", "#operations", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou/", "updated_at": "2023-04-12", "created_at": "2022-05-02", "description": "This notebook provides instructions on how to query a PostgreSQL database and retrieve data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PostgresSQL/PostgresSQL_Get_data_from_database.ipynb", "imports": ["psycopg2", "psycopg2", "pandas", "naas"], "image_url": ""}, {"objectID": "d407f6c7c08a81f0c5871257274d21d6b1ca36d44fdb2483cc0caab78c998412", "tool": "PowerPoint", "notebook": "Add Slide With Image", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-30", "description": "This notebook provides instructions on how to add an image to a PowerPoint slide.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_Slide_With_Image.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches"], "image_url": ""}, {"objectID": "85d11fb04a9f5d15ba18c7cad27cc4241d0cbb163c4d27551bec621c5896932d", "tool": "PowerPoint", "notebook": "Add Slide With Textbox", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-30", "description": "This notebook allows users to create a new slide in PowerPoint with a textbox.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_Slide_With_Textbox.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches, Pt"], "image_url": ""}, {"objectID": "e3d8e2acd0d06ddfb9d30c2f126b22ec639ec52fb578e2bf890674239ab7e4b6", "tool": "PowerPoint", "notebook": "Add Slide With Title Subtitle", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-30", "description": "This notebook allows users to quickly and easily create a new slide in PowerPoint with a title and subtitle.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_Slide_With_Title_Subtitle.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches"], "image_url": ""}, {"objectID": "f8ca7d5fbaed2f83b5a5b90bfd54a5d9965f635427725abef04601fc7c340129", "tool": "PowerPoint", "notebook": "Add title + line in presentation", "action": "", "tags": ["#powerpoint", "#naas", "#python", "#python_pptx"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/in/ayoub-berdeddouch", "updated_at": "2023-04-12", "created_at": "2022-11-01", "description": "This notebook Adds a title + Line to a presentation in PowerPoint", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Add_title_%2B_line_in_presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Add_title_%2B_line_in_presentation.ipynb", "imports": ["pptx.Presentation", "pptx.enum.shapes.MSO_CONNECTOR", "pptx.util.Inches"], "image_url": ""}, {"objectID": "4944a903bfe77005932df44840be3cc20f84adb51aa8fc7a18eb411e04aef75a", "tool": "PowerPoint", "notebook": "Create Presentation", "action": "", "tags": ["#powerpoint", "#naas", "#python", "#pythonpptx", "#asset", "#snippet", "#operations", "#slide", "#microsoft"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/in/ayoub-berdeddouch", "updated_at": "2023-04-12", "created_at": "2022-10-23", "description": "This notebook creates a PowerPoint presentation with a cover page, 3 pages with graphs and text and a last page.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Create_Presentation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Create_Presentation.ipynb", "imports": ["pptx.Presentation", "pptx.enum.shapes.MSO_SHAPE", "pptx.dml.color.RGBColor", "pptx.util.Inches, Pt", "pptx.enum.dml.MSO_THEME_COLOR", "pptx.chart.data.CategoryChartData", "pptx.enum.chart.XL_CHART_TYPE", "pptx.chart.data.ChartData", "pptx.util.Inches", "numpy", "datetime", "requests", "plotly.graph_objects", "pandas", "naas"], "image_url": ""}, {"objectID": "87b9a5c96c8ceccefe39e7dbb996c586cdd15f07b0317200b63be92aeb8d3281", "tool": "PowerPoint", "notebook": "Set portrait format", "action": "", "tags": ["#powerpoint", "#slide", "#portrait", "#pptx", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-09-30", "description": "This notebook allows you to easily set the portrait format for your PowerPoint presentation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PowerPoint/PowerPoint_Set_portrait_format.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PowerPoint/PowerPoint_Set_portrait_format.ipynb", "imports": ["pptx.Presentation", "pptx.Presentation", "pptx.util.Inches"], "image_url": ""}, {"objectID": "6dc53ab8a25919a7cd0c364aec804a3e259bce5341b0ac2694bc44c4cc19ff65", "tool": "PyCaret", "notebook": "Automl classification", "action": "", "tags": ["#automl", "#pandas", "#snippet", "#classification", "#dataframe", "#visualize", "#pycaret", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-05-28", "description": "This notebook demonstrates how to use PyCaret to quickly and easily build and evaluate machine learning models for classification tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyCaret/PyCaret_automl_classification.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyCaret/PyCaret_automl_classification.ipynb", "imports": ["pandas", "pycaret.classification.setup, compare_models, evaluate_model, predict_model, finalize_model, \\", "pycaret.classification.setup, compare_models, evaluate_model, predict_model, finalize_model, \\"], "image_url": ""}, {"objectID": "7836b18a1acc436173deeed60d42ff7bd8ddf36559c8275931e2ec346a0b7087", "tool": "PyCaret", "notebook": "Automl regression", "action": "", "tags": ["#automl", "#pandas", "#snippet", "#regression", "#dataframe", "#visualize", "#pycaret", "#operations"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-05-28", "description": "This notebook demonstrates how to use PyCaret's automated machine learning capabilities to perform regression tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyCaret/PyCaret_automl_regression.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyCaret/PyCaret_automl_regression.ipynb", "imports": ["pandas", "pycaret.regression.setup, compare_models, evaluate_model, predict_model, finalize_model, \\", "pycaret.regression.setup, compare_models, evaluate_model, predict_model, finalize_model, \\"], "image_url": ""}, {"objectID": "47b1d63eba6e37dd5d1ed7fe4be46bb37f6914de53819f21fadae86a6f19acdf", "tool": "PyGWalker", "notebook": "Analyze Pandas dataframe", "action": "", "tags": ["#pandas", "#dataframe", "#tableau", "#pygwalker", "#analyze", "#jupyter"], "author": "Abraham Israel", "author_url": "https://www.linkedin.com/in/abraham-israel/", "updated_at": "2023-04-12", "created_at": "2023-03-07", "description": "This notebook will demonstrate how to analyze a Pandas dataframe in Jupyter using a Tableau-style interface.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyGWalker/PyGWalker_Analyze_Pandas_dataframe.ipynb", "imports": ["pandas", "numpy", "pygwalker", "pygwalker"], "image_url": ""}, {"objectID": "8da37e2aaf56e0b26e7ee696dc16f492d45a2e204454444b107880aac4b15824", "tool": "PyPI", "notebook": "- Get number of downloads any package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-27", "description": "This notebook provides a way to retrieve the download count of any package from the Python Package Index (PyPI).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyPI/PyPI_Get_number_of_downloads_any_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyPI/PyPI_Get_number_of_downloads_any_package.ipynb", "imports": ["pypistats", "pypistats", "pprint.pprint", "datetime.datetime", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "5b61a4c4382b4f68bdf9dd662ae75f7e84c36a567a9eabf26257aa87cf5c4046", "tool": "PyPI", "notebook": "Get release dates from package", "action": "", "tags": ["#pypi", "#downloads", "#package", "#operations", "#analytics", "#plotly", "#html", "#csv", "#image", "#png"], "author": "Mardiat-Iman", "author_url": "https://www.linkedin.com/in/mardiat-iman-ibrahim-imam-726027262", "updated_at": "2023-07-27", "created_at": "2023-07-27", "description": "This notebook get the release dates a package from the Python Package Index (PyPI) and plot a Barchart and Scatter Plot to display the release by month. \n\nNB: We have noticed that sometimes not all versions are accessible via this endpoint in comparison with the website. Please let us know if you manage to find a solution to this issue, we would appreciate.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/PyPI/PyPI_Get_release_dates_from_package.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/PyPI/PyPI_Get_release_dates_from_package.ipynb", "imports": ["requests", "numpy", "matplotlib.pyplot", "matplotlib.dates", "dateutil.parser.parse"], "image_url": ""}, {"objectID": "1285d5b317f4b36ebfc42542b8f98c906a4c3ea71f825078f09766ea31bc076e", "tool": "Python", "notebook": "Check if string is number", "action": "", "tags": ["#python", "#string", "#number", "#check", "#isnumber", "#function"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-25", "created_at": "2023-07-25", "description": "This notebook will check if a string is a number and how it is useful for organizations. It will help to identify if a string is a number or not.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Check_if_string_is_number.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Check_if_string_is_number.ipynb", "imports": ["string"], "image_url": ""}, {"objectID": "03bc3ba50473a4aff2cfca6b15c26f19dd51443a7e99da17d33864435520c19e", "tool": "Python", "notebook": "Clean your download folder", "action": "", "tags": ["#python", "#automation", "#clean_folder"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-04-12", "created_at": "2023-04-01", "description": "This notebook will go through your given folder and check each file last modification time, and if it's been more than 30 days it will move those file to new folder 'files_to_delete'", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Clean_your_download_folder.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Clean_your_download_folder.ipynb", "imports": ["os", "shutil", "datetime.datetime, timedelta"], "image_url": ""}, {"objectID": "6803ffcd1c5475d13f4ef26dd7761f41d317f9a20677f2e8e30352537c2c9cf5", "tool": "Python", "notebook": "Compress images", "action": "", "tags": ["#python", "#PIL", "#images", "#compress"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-05-23", "created_at": "2023-05-23", "description": "This notebook uses PIL library to compress the image.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Compress_images.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Compress_images.ipynb", "imports": ["PIL.Image", "PIL.Image", "os", "requests"], "image_url": ""}, {"objectID": "ccf490cb6569994548b9c95421373ae1e94bb10fa7fb61dadd3576a073277f1d", "tool": "Python", "notebook": "Consolidate Excel files", "action": "", "tags": ["#python", "#consolidate", "#files", "#productivity", "#snippet", "#operations", "#excel"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2021-10-07", "description": "The objective of this notebook is to consolidate multiple Excel files (.xlsx) into one.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Consolidate_Excel_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Consolidate_Excel_files.ipynb", "imports": ["os", "pandas"], "image_url": ""}, {"objectID": "d41e9d952be285475cb26b5226195474cd7ba62ace4f711fe492d5f79b7ba97c", "tool": "Python", "notebook": "Convert CSV to Excel", "action": "", "tags": ["#python", "#csv", "#excel", "#pandas", "#file"], "author": "Sophia Iroegbu", "author_url": "www.linkedin.com/in/sophia-iroegbu", "updated_at": "2023-04-12", "created_at": "2022-10-10", "description": "This notebook provides a step-by-step guide to converting CSV files to Excel spreadsheets using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_CSV_to_Excel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_CSV_to_Excel.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "5b5dee3ead8fd96908827f51ac99cb0b72b7dbfc37239147e2dfb6feba7426ef", "tool": "Python", "notebook": "Convert degrees-minutes-seconds to decimal degrees", "action": "", "tags": ["#python", "#geopy", "#snippet", "#navigation"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook shows how to convert degrees-minutes-seconds to decimal degrees. Converting coordinates from Degrees, Minutes, and Seconds (DMS) to decimal degrees can be useful for compatibility with modern systems that use decimal format. It also simplifies calculations and data processing, as working with decimal numbers is often easier and more straightforward than working with degrees, minutes, and seconds.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_DMS_to_decimal_degrees.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_DMS_to_decimal_degrees.ipynb", "imports": [], "image_url": ""}, {"objectID": "0069c1c7add214fdd2655b1fa2238a2f17d761feb5403f7dfeb95c27114911eb", "tool": "Python", "notebook": "Convert PNG Images To JPG", "action": "", "tags": ["#jpg", "#png", "#to", "#image", "#images", "#convert"], "author": "Ahmed Mousa", "author_url": "https://www.linkedin.com/in/akmousa/", "updated_at": "2023-04-12", "created_at": "2022-11-10", "description": "This notebook converts png images to jpg images.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_PNG_Images_To_JPG.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_PNG_Images_To_JPG.ipynb", "imports": ["PIL.Image"], "image_url": ""}, {"objectID": "ea5c6ad4046dea2b3a2e3f412203b3899b9f88cffa458917a9b828ee0b6dd11b", "tool": "Python", "notebook": "Convert URL to string", "action": "", "tags": ["#python", "#urllib", "#string", "#url", "#convert", "#library"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-03-29", "description": "This notebook will show how to convert a URL to a string using urllib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_URL_to_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_URL_to_string.ipynb", "imports": ["urllib.parse"], "image_url": ""}, {"objectID": "bb57377a72ad818450b8065fe617392e959e8c11b27e830a1548a57af32e054c", "tool": "Python", "notebook": "Convert audiofile from wav to mp3", "action": "", "tags": ["#python", "#audio", "#wavtomp3", "#pydub"], "author": "Mohit Singh", "author_url": "", "updated_at": "2023-04-12", "created_at": "2023-03-08", "description": "This notebook uses the Pydub library to convert audio file from wav to mp3.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_audiofile_from_wav_to_mp3.ipynb", "imports": ["os", "pydub.AudioSegment", "pydub.AudioSegment", "requests"], "image_url": ""}, {"objectID": "efc49f04ec827f01ebc298a6468803093908ebcaa46a2f7fcd8353cf67289731", "tool": "Python", "notebook": "Convert coordinates to degrees-minutes-seconds", "action": "", "tags": ["#python", "#geopy", "#snippet", "#navigation"], "author": "Antonio Georgiev", "author_url": "www.linkedin.com/in/antonio-georgiev-b672a325b", "updated_at": "2023-07-28", "created_at": "2023-07-28", "description": "This notebook shows how to convert coordinates to to Degrees, Minutes, and Seconds (DMS). Converting coordinates to Degrees, Minutes, and Seconds (DMS) can be beneficial for compatibility with systems that use DMS as their standard format. It can also improve precision in fields like surveying or navigation, where accurate measurements are crucial.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_coordinates_to_DMS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_coordinates_to_DMS.ipynb", "imports": [], "image_url": ""}, {"objectID": "1b0f742b14019f6471df8b63da4b92c06192acbe92d849987e62afafb2dac907", "tool": "Python", "notebook": "Convert currency", "action": "", "tags": ["#python", "#exchange", "#currency", "#converter", "#convert", "#snippet", "#operations"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-19", "created_at": "2023-06-19", "description": "This workbook shows you how to convert any currency into any other currency in real time using `forex_python` library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_currency.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_currency.ipynb", "imports": ["forex_python.converter.CurrencyRates", "forex_python.converter.CurrencyRates"], "image_url": ""}, {"objectID": "30b65ea2617db409e1fba9cc5ff0c4b258e5a8e58ebde18fe4ff5314a177810e", "tool": "Python", "notebook": "Convert length", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#length"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-21", "created_at": "2023-06-21", "description": "This notebook shows you how to convert length using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_length.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_length.ipynb", "imports": [], "image_url": ""}, {"objectID": "a16c1298d415f1c4c24ae79bf540d33cbde9150d81bae2d196bbbba37a742116", "tool": "Python", "notebook": "Convert speed", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#speed"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-21", "created_at": "2023-06-21", "description": "This notebook shows you how to convert speed using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_speed.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_speed.ipynb", "imports": [], "image_url": ""}, {"objectID": "c3b9f65c829ea7dd7c8fe689d18199671b582c28e65ca5ab0544da17e9566633", "tool": "Python", "notebook": "Convert string boolean to boolean", "action": "", "tags": ["#python", "#string", "#boolean", "#convert", "#type", "#data"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-07-25", "created_at": "2023-07-25", "description": "This notebook will show how to convert a string boolean to a boolean type in Python. It is usefull for data cleaning and data manipulation.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_string_boolean_to_boolean.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_string_boolean_to_boolean.ipynb", "imports": ["ast"], "image_url": ""}, {"objectID": "8dacf09e80d19c288d77ccdf43ba69339901ed23a093c040857e1e6abdc05eee", "tool": "Python", "notebook": "Convert string to URL", "action": "", "tags": ["#python", "#urllib", "#string", "#url", "#convert", "#library"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-03-29", "description": "This notebook will show how to convert a string to a URL using urllib.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_string_to_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_string_to_URL.ipynb", "imports": ["urllib.parse"], "image_url": ""}, {"objectID": "067b3975c0bfb9d91f586f52bc48f9b131588dccf939568abb539de93f96b308", "tool": "Python", "notebook": "Convert temperature", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#temperature"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-21", "created_at": "2023-06-21", "description": "This notebook shows you how to convert units temperature using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_temperature.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_temperature.ipynb", "imports": [], "image_url": ""}, {"objectID": "56b5020fb5de6bd618fd2b48c7fdf5e338135bbc4cb8b7a39b8a847fdabf45a3", "tool": "Python", "notebook": "Convert time", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#time"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-21", "created_at": "2023-06-21", "description": "This notebook shows you how to convert time using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_time.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_time.ipynb", "imports": [], "image_url": ""}, {"objectID": "03791db2779f73d9044c86f3b1f51a2f2c9b4343f9717fd1e2ccf0aa65da85c6", "tool": "Python", "notebook": "Convert time delta to months", "action": "", "tags": ["#python", "#datetime", "#timedelta", "#calculate", "#date", "#time"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-22", "created_at": "2023-05-22", "description": "This notebook convert the time delta between two dates to months.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_time_delta_to_months.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_time_delta_to_months.ipynb", "imports": ["datetime.datetime"], "image_url": ""}, {"objectID": "e124d5cbb19b3fbe5b868dcf46bb16fa5e5b8c2d1caf34e712fd11ce10360bf5", "tool": "Python", "notebook": "Convert units", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#length", "#temperature", "#weight", "#time", "#volume", "#speed"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-19", "created_at": "2023-06-19", "description": "This notebook shows you how to convert units (length, temperature, weight, time, volume, speed) using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_units.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_units.ipynb", "imports": [], "image_url": ""}, {"objectID": "7b235c7c8db12861213c775e7d7ae25d6d24f1ab8ef535cb438e651f2e7a2d47", "tool": "Python", "notebook": "Convert volume", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#volume"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-21", "created_at": "2023-06-21", "description": "This notebook shows you how to convert volume using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_volume.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_volume.ipynb", "imports": [], "image_url": ""}, {"objectID": "f5e386585bbd320a3d0dde509039baec9d255f0945b148fba09d94b400642d56", "tool": "Python", "notebook": "Convert weight", "action": "", "tags": ["#python", "#convert", "#units", "#snippet", "#operations", "#weight"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-21", "created_at": "2023-06-21", "description": "This notebook shows you how to convert weight using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Convert_weight.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Convert_weight.ipynb", "imports": [], "image_url": ""}, {"objectID": "8b78cb9c1482a8aa5d796c3cb0084b2af3a3e9efaeebeb65de5a5c82143af234", "tool": "Python", "notebook": "Copy files and subdir from directory to another directory", "action": "", "tags": ["#python", "#os", "#shutil", "#operations", "#snippet"], "author": "Parth Panchal", "author_url": "https://www.linkedin.com/in/parthpanchal8401/", "updated_at": "2023-04-12", "created_at": "2022-10-14", "description": "This notebook provides a Python script to copy files and subdirectories from one directory to another.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Copy_files_and_subdir_from_directory_to_another_directory.ipynb.ipynb", "imports": ["shutil", "os"], "image_url": ""}, {"objectID": "7a22581a89abec8e9064d61cbe041eb2714389315534606904bb777e73f3eb7b", "tool": "Python", "notebook": "Create Email Combination with Firstname Lastname Domain address", "action": "", "tags": ["#python", "#email", "#combination", "#firstname", "#lastname", "#domain", "#sales", "#prospect"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-27", "description": "This notebook will create a list of emails combination with firstname, lastname and domain address. This notebook can be used to find and test an email address for a prospect.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_Email_Combination_with_Firstname_Lastname_Domain_address.ipynb", "imports": [], "image_url": ""}, {"objectID": "287f76fafc85efc85412756d89bbbcfe44730e5f2bb38149ac0374522f23c2dd", "tool": "Python", "notebook": "Create Strong Random Password", "action": "", "tags": ["#python", "#password", "#random", "#snippet", "#operations"], "author": "Sunny", "author_url": "https://www.linkedin.com/in/sunny-chugh-ab1630177/", "updated_at": "2023-04-12", "created_at": "2022-11-30", "description": "The objective of this notebook is to Create Strong random password.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_Strong_Random_Password.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_Strong_Random_Password.ipynb", "imports": ["random", "string"], "image_url": ""}, {"objectID": "dc2e29332347a26e140e365029573d514acb1dae172eb15ce21ad5c557bba2c6", "tool": "Python", "notebook": "Create dataframe from lists", "action": "", "tags": ["#python", "#list", "#dataframe", "#snippet", "#pandas", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to use Python to create a dataframe from lists.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_dataframe_from_lists.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_dataframe_from_lists.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "d7d863424921d5fede902600607bd28d9bf4753d1c27af768c5b35cc1d1abe0c", "tool": "Python", "notebook": "Create dict from lists", "action": "", "tags": ["#python", "#list", "#dict", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides instructions on how to create a dictionary from two lists in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Create_dict_from_lists.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Create_dict_from_lists.ipynb", "imports": [], "image_url": ""}, {"objectID": "03afcf02c7e061c5c2deb5f4d6cd7467b149399644cb1bba64ea2e36dd15f196", "tool": "Python", "notebook": "Delete entire directory tree", "action": "", "tags": ["#python", "#shutil", "#delete", "#folder", "#file", "#directory"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-04-26", "created_at": "2023-04-26", "description": "This notebook will show how to delete an entire directory tree using the shutil library. \n\nShutil module in Python provides many functions of high-level operations on files and collections of files. It comes under Python\u2019s standard utility modules. This module helps in automating the process of copying and removal of files and directories. \n\n`shutil.rmtree()` is used to delete an entire directory tree, path must point to a directory (but not a symbolic link to a directory).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Delete_entire_directory_tree.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Delete_entire_directory_tree.ipynb", "imports": ["shutil"], "image_url": ""}, {"objectID": "7a281dea954ab667015391ddacef8e3c6f808fa79c747bb70d288124ffbdd5cb", "tool": "Python", "notebook": "Download Image from URL", "action": "", "tags": ["#python", "#image", "#url", "#naas", "#snippet"], "author": "Abraham Israel", "author_url": "https://www.linkedin.com/in/abraham-israel/", "updated_at": "2023-07-03", "created_at": "2022-10-09", "description": "This notebook demonstrates how to download an image from a URL using Python and `wget` library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_Image_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_Image_from_URL.ipynb", "imports": ["wget", "wget", "IPython.display.Image"], "image_url": ""}, {"objectID": "872420f12cee8df45fe4b26b0fd0b0626f804e3babb46767478343b72b8a9577", "tool": "Python", "notebook": "Download PDF from URL", "action": "", "tags": ["#python", "#pdf", "#snippet", "#url", "#naas", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-04-29", "description": "This notebook provides a step-by-step guide to downloading a PDF file from a URL using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_PDF_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_PDF_from_URL.ipynb", "imports": ["urllib"], "image_url": ""}, {"objectID": "957c6b7099115e2ae404fdeea269f27e570a97ae941a603faad6a55502ce016f", "tool": "Python", "notebook": "Download ZIP from URL", "action": "", "tags": ["#python", "#urllib", "#download", "#zip", "#url", "#request"], "author": "Hamid Mukhtar", "author_url": "https://www.linkedin.com/in/mukhtar-hamid/", "updated_at": "2023-05-04", "created_at": "2023-04-11", "description": "This notebook will show how to download a ZIP file from a URL using urllib.request.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_ZIP_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_ZIP_from_URL.ipynb", "imports": ["os", "shutil", "urllib"], "image_url": ""}, {"objectID": "4c668b1964bb6e1a96dfe7a4ae9cfd6e4a9054a13f2852badfef2a5f5cc31077", "tool": "Python", "notebook": "Download audio file from URL", "action": "", "tags": ["#python", "#download", "#snippet", "#url", "#naas", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-07-23", "created_at": "2023-07-23", "description": "This notebook demonstrates how to download audio file from an URL using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Download_audio_file_from_URL.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Download_audio_file_from_URL.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "aed246dedce0dfc3440f08d081ff16e62e1dda1fd1cc0b6c5f39b88ea8617e89", "tool": "Python", "notebook": "Explore Dataset with Pivot Table", "action": "", "tags": ["#python", "#dataset", "#pivottable", "#dataexploration"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2023-01-30", "description": "This notebook allows you to interactively explore and analyze a dataset using a pivot table. It uses the `pivottablejs` library to generate a dynamic pivot table in your web browser, giving you the ability to sort, filter, and aggregate data in real-time. This template provides a simple and intuitive way to explore and gain insights from your dataset, making it a valuable tool for data analysis and visualization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Explore_Dataset_with_Pivot_Table.ipynb", "imports": ["pandas", "pivottablejs.pivot_ui", "pivottablejs.pivot_ui"], "image_url": ""}, {"objectID": "4d33b51aeb8bff0d6e56610f53de035ed263c78d3f2399eaee3990e4ccac4b85", "tool": "Python", "notebook": "Extract characters from string", "action": "", "tags": ["#python", "#extract", "#string", "#character"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-13", "created_at": "2023-06-08", "description": "This notebook will show how to extract characters from a string.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Extract_characters_from_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Extract_characters_from_string.ipynb", "imports": [], "image_url": ""}, {"objectID": "f0ed397656db4d35042f2e3dba5ca56a23ab02a7d4a4642cccc077086eaf0e1f", "tool": "Python", "notebook": "Find Phone Number in string", "action": "", "tags": ["#python", "#string", "#number", "#naas", "#operations", "#snippet"], "author": "Anas Tazir", "author_url": "https://github.com/anastazir", "updated_at": "2023-04-12", "created_at": "2022-10-06", "description": "This notebook provides a Python script to identify and extract phone numbers from a given string.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Find_Phone_Number_in_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Find_Phone_Number_in_string.ipynb", "imports": [], "image_url": ""}, {"objectID": "c53dc95597572e013944cf90ff5480eabd8f4deb4a7d116fcb2ef26ad5e76181", "tool": "Python", "notebook": "Find differences between strings", "action": "", "tags": ["#python", "#strings", "#differences", "#compare", "#find", "#string"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-14", "created_at": "2023-06-14", "description": "This notebook will compare two strings and find the differences between them. It is useful for users to quickly identify the differences between two strings.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Find_differences_between_strings.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Find_differences_between_strings.ipynb", "imports": [], "image_url": ""}, {"objectID": "c481bc8d4efd4aff05e1577eb197f2cfeed1834b5fd496a8438a190c5684c9f8", "tool": "Python", "notebook": "Flatten nested dict", "action": "", "tags": ["#python", "#dict", "#flatten", "#nested", "#data", "#structure"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook will show how to flatten a nested dict in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Flatten_nested_dict.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Flatten_nested_dict.ipynb", "imports": [], "image_url": ""}, {"objectID": "333b5d2d5a8adf1385cca957efd4e1193793c91593fdb4ba7eae7593fe88d64f", "tool": "Python", "notebook": "Get Word Definition and Translation", "action": "", "tags": ["#python", "#dictionary", "#project", "#word", "#snippet"], "author": "Sriniketh Jayasendil", "author_url": "https://twitter.com/srini047/", "updated_at": "2023-04-12", "created_at": "2022-10-18", "description": "This notebook get world definition and translation from English using PyDictionary.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_Word_Definition_and_Translation.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_Word_Definition_and_Translation.ipynb", "imports": ["PyDictionary.PyDictionary", "PyDictionary.PyDictionary"], "image_url": ""}, {"objectID": "712b3b28a79e451c9bcce99b1cfd032a25416ce695e3c59f9f455df31523b8da", "tool": "Python", "notebook": "Get all files from directory", "action": "", "tags": ["#python", "#naas", "#glob", "#pprint", "#snippet"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/ayoub-berdeddouch", "updated_at": "2023-04-12", "created_at": "2022-10-18", "description": "This notebook gives you the ability to get all files from a directory even in a sub-directory.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_all_files_from_directory.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_all_files_from_directory.ipynb", "imports": ["glob", "os.path"], "image_url": ""}, {"objectID": "99b7889c02066945ea9978b756ab4b00c081c15b2f18dc3f7161b8a4f08923d8", "tool": "Python", "notebook": "Get coordinates from address", "action": "", "tags": ["#python", "#snippet", "#naas", "#geocoder"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook get coordinates from a given address.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_coordinates_from_address.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_coordinates_from_address.ipynb", "imports": ["geocoder", "geocoder"], "image_url": ""}, {"objectID": "8a57a4125fe02a9041a6723a3e80eea843fe2a5efb705b899c2558c8bbd5248e", "tool": "Python", "notebook": "Get last file modified from directy", "action": "", "tags": ["#python", "#os", "#library", "#file", "#modified", "#directory"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-23", "description": "This notebook will show how to get the last file modified from a directory using the os library.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_last_file_modified_from_directy.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_last_file_modified_from_directy.ipynb", "imports": ["os"], "image_url": ""}, {"objectID": "ebc58d505f37c456cff8fedcc2252596d0f3957a268f00d45856b1231f12e98e", "tool": "Python", "notebook": "Get next occurrences of a cron job", "action": "", "tags": ["#python", "#cron", "#croniter", "#job", "#occurrences", "#scheduling"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-09", "created_at": "2023-05-09", "description": "This notebook will show how to get the next x occurrences of your cron job using croniter. It is usefull for organizations to schedule tasks and jobs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_next_occurrences_of_a_cron_job.ipynb", "imports": ["croniter", "croniter", "pytz", "datetime.datetime"], "image_url": ""}, {"objectID": "273a29ff310403095ebba2c30813413cdbea48f497eb114a7224762e8ae1ebf3", "tool": "Python", "notebook": "Get random number", "action": "", "tags": ["#python", "#number", "#generation", "#random", "#snippet", "#operation"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-08", "created_at": "2023-06-07", "description": "This notebook demonstrates how to get random numbers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_random_number.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_random_number.ipynb", "imports": ["random"], "image_url": ""}, {"objectID": "528d537bbac178bf8781873b2a2aad8e0496c9e1536508e3585d6ad24f41addc", "tool": "Python", "notebook": "Get a random word", "action": "", "tags": ["#python", "#word", "#random", "#snippet"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-19", "created_at": "2023-06-14", "description": "This notebook show how to get a random word.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Get_random_word.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Get_random_word.ipynb", "imports": ["random", "nltk.corpus.wordnet", "nltk.corpus.wordnet", "nltk"], "image_url": ""}, {"objectID": "381a06edafb0d844bae219bab0e7cd6772d3ed58bbb597161a0ffecce70fff53", "tool": "Python", "notebook": "List specific files from directory and subdirectories", "action": "", "tags": ["#python", "#glob", "#os", "#files", "#directory", "#subdirectories"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-31", "created_at": "2023-05-31", "description": "This notebook list all specific files from a directory and its subdirectories using glob and os libraries. It is usefull to quickly list all files from a directory and its subdirectories.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_List_specific_files_from_directory_and_subdirectories.ipynb", "imports": ["glob", "os"], "image_url": ""}, {"objectID": "34facbf13a7e56bfaa689c8351e1f7980a5b0ac0c6818da5b29d7930907d14fd", "tool": "Python", "notebook": "Locate address on map", "action": "", "tags": ["#python", "#geocoding", "#city", "#coordinates", "#location", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook will show how to get coordinates from an address using Python and display it on a map.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Locate_address_on_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Locate_address_on_map.ipynb", "imports": ["geocoder", "geocoder", "pandas", "plotly.express"], "image_url": ""}, {"objectID": "f6bac2f96a6ae10b5e54f83f2ed151f5c4094bee0516f3ee795de50c02c95791", "tool": "Python", "notebook": "Locate city on map", "action": "", "tags": ["#python", "#geocoding", "#city", "#coordinates", "#location", "#api"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook will show how to get coordinates from a city name using Python and display it on a map.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Locate_city_on_map.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Locate_city_on_map.ipynb", "imports": ["geocoder", "geocoder", "pandas", "plotly.express"], "image_url": ""}, {"objectID": "d55e369e1ac2a640e4019f281f7944654c06cb9f2b0c27c0f1f2f129dd5fa099", "tool": "Python", "notebook": "Locate coordinates", "action": "", "tags": ["#python", "#snippet", "#naas", "#geocoder"], "author": "Suhas B", "author_url": "https://www.linkedin.com/in/suhasbrao/", "updated_at": "2023-04-12", "created_at": "2023-03-24", "description": "This notebook provides a way to find the geographic coordinates of a given location using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Locate_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Locate_coordinates.ipynb", "imports": ["geocoder", "geocoder"], "image_url": ""}, {"objectID": "0d30d21161d2fb93660e3177f2620431276c202a1814b1913273755b86468e8a", "tool": "Python", "notebook": "Looping Over Dataframe", "action": "", "tags": ["#python", "#pandas", "#python", "#loops", "#dataframes", "#forloop", "#loop", "#snippet", "#operations"], "author": "Oketunji Oludolapo", "author_url": "https://www.linkedin.com/in/oludolapo-oketunji/", "updated_at": "2023-06-06", "created_at": "2021-10-08", "description": "This notebook provides an overview of how to use loops to iterate over a dataframe in Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Looping_Over_Dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Looping_Over_Dataframe.ipynb", "imports": ["pandas", "numpy"], "image_url": ""}, {"objectID": "b3250febe49c96eaa6b828a7d7db8ea79a7be078466bf984f7e3d0495291d190", "tool": "Python", "notebook": "Manage code error with try except", "action": "", "tags": ["#python", "#error", "#try", "#exception", "#snippet"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-16", "created_at": "2023-06-15", "description": "This notebook will demonstrate how to manage code error using try except. \nThe `try` block lets you test a block of code for errors.\nThe `except` block lets you handle the error. You can specify the type of exception to manage error.\nThe `else` block lets you execute code when there is no error.\nThe `finally` block lets you execute code, regardless of the result of the try- and except blocks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Manage_exception_with_try_except.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Manage_exception_with_try_except.ipynb", "imports": [], "image_url": ""}, {"objectID": "0ab9494e481d7f7c2fdead13ca4b8a0d8c8caca6cc43f1c1386eeaa60915720b", "tool": "Python", "notebook": "Organize Directories based on file types", "action": "", "tags": ["#organize", "#files", "#directories"], "author": "Ahmed Mousa", "author_url": "https://www.linkedin.com/in/akmousa/", "updated_at": "2023-04-12", "created_at": "2022-11-11", "description": "This notebook organizes your files based on their extensions to directories for data scientists", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Organize_Directories_based_on_file_types.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Organize_Directories_based_on_file_types.ipynb", "imports": ["shutil.move", "os.path", "os", "glob", "pathlib"], "image_url": ""}, {"objectID": "6b201a517cee73c048da83f5eeea5a372c37d868c68b1ba958a7eb3723778014", "tool": "Python", "notebook": "Pseudonym generator", "action": "", "tags": ["#python", "#pseudonym", "#generation", "#random", "#snippet", "#operation"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-19", "created_at": "2023-06-15", "description": "This notebook demonstrates how to get random pseudonym.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Pseudonym_generator.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Pseudonym_generator.ipynb", "imports": ["random"], "image_url": ""}, {"objectID": "764a61ccadd589be64a9953b0c2f0ae854335e74fb7dd944ed5585051a031eb8", "tool": "Python", "notebook": "Read pickle file", "action": "", "tags": ["#python", "#pickle", "#file", "#load", "#data", "#io"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153/", "updated_at": "2023-04-12", "created_at": "2023-03-13", "description": "This notebook loads a dictionary from pickle object. Loading a dictionary using pickle is a quick and easy process. With just a few lines of code, you can store your dictionary data from a pickle file. \n\nPickle can cause critical security vulnerabilities in code, you should never unpickle data you don\u2019t trust. If you must accept data from an untrusted client, you should use the safer JSON format. And, if you transfer pickled data between trusted applications but need extra measures to prevent tampering, you should generate an HMAC signature you can verify before unpickling.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Read_pickle_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Read_pickle_file.ipynb", "imports": ["pickle"], "image_url": ""}, {"objectID": "0d78a6b4a629c2de8f39bc5862abe5d91077ed048c9ae5b3df5277f419395f72", "tool": "Python", "notebook": "Remove all spaces on string", "action": "", "tags": ["#python", "#remove", "#string", "#space"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-13", "created_at": "2023-06-13", "description": "This notebook shows how to remove all spaces from a string using two different methods", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Remove_all_spaces_on_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Remove_all_spaces_on_string.ipynb", "imports": [], "image_url": ""}, {"objectID": "2420ecf7c6601531c93fcf5bd3fd74ae7584c3b666889d872cecdd186ac28502", "tool": "Python", "notebook": "Save dict to pickle", "action": "", "tags": ["#python", "#pickle", "#file", "#save", "#data", "#io"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153/", "updated_at": "2023-04-12", "created_at": "2023-03-13", "description": "This notebook saves a dictionary to pickle object. Saving a dictionary using pickle is a quick and easy process. With just a few lines of code, you can store your dictionary data in a binary format that can be easily loaded later on.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Save_dict_to_pickle.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Save_dict_to_pickle.ipynb", "imports": ["pickle"], "image_url": ""}, {"objectID": "cd0eb2047f4ba6ff6d26c2a2842f93e989014f5a4902b69592fd075bbb6859e4", "tool": "Python", "notebook": "Split string", "action": "", "tags": ["#python", "#file", "#string", "#url", "#split", "#snippet", "#operations"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-09", "created_at": "2023-06-08", "description": "This notebook shows you how to split a string object. The `split()` function in Python is useful for dividing a string into smaller parts based on a specified delimiter. It enables efficient string parsing, data cleaning, user input processing, and tokenization in natural language processing tasks.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Split_string.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Split_string.ipynb", "imports": [], "image_url": ""}, {"objectID": "51927e37f1c930d38501a5524f66df6a3305327b1f73da29f93de18680b7b723", "tool": "Python", "notebook": "Transform String to Secure Hash Algorithm", "action": "", "tags": ["#python", "#security", "#hash", "#algorithm", "#encryption", "#sha"], "author": "Firstname LastName", "author_url": "https://www.linkedin.com/in/xxxxxx/", "updated_at": "2023-06-19", "created_at": "2023-06-19", "description": "This notebook will demonstrate how to create a secure hash algorithm using Python. It is useful for organizations to ensure data security and integrity.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Transform_string_to_Secure_Hash_Algorithm.ipynb", "imports": ["hashlib", "hashlib"], "image_url": ""}, {"objectID": "6de9c1a35eb23d9d9f9c7f42401106d9b96ac0cfc31c95f41ee0fa4190b8ed10", "tool": "Python", "notebook": "Validate email and phone numbers", "action": "", "tags": ["#python", "#twilio", "#project", "#call", "#mobile", "#snippet"], "author": "Sriniketh Jayasendil", "author_url": "https://twitter.com/srini047/", "updated_at": "2023-06-05", "created_at": "2023-06-05", "description": "This notebook validates a given email address and phone number using `re` and `phonenumbers` modules.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Python/Python_Validate_email_and_phone_numbers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Python/Python_Validate_email_and_phone_numbers.ipynb", "imports": ["re", "phonenumbers", "phonenumbers"], "image_url": ""}, {"objectID": "2df55afca82f21837a817a57c842dcf4460d0908883b76b3c64576ef8f09f864", "tool": "Pyvis", "notebook": "Create a network visualization", "action": "", "tags": ["#python", "#naas", "#scheduler", "#network", "#snippet", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2022-07-27", "description": "With this notebook, you can create a network graph to visualize the relations between different elements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Pyvis/Pyvis_Create_a_network_visualization.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Pyvis/Pyvis_Create_a_network_visualization.ipynb", "imports": ["naas", "pyvis.network.Network"], "image_url": ""}, {"objectID": "a7d100e0889cb14f5c824f377c6a44885ee52aa18f9155282c1d08bd2c642f26", "tool": "Qonto", "notebook": "Get cash position trend", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#plotly", "#linechart", "#finance", "#analytics", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "This notebook provides an overview of cash position trends for Qonto customers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_cash_position_trend.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_cash_position_trend.ipynb", "imports": ["naas_drivers.qonto", "datetime.datetime", "pandas", "plotly.graph_objects"], "image_url": ""}, {"objectID": "31964e4e6eb09f073ef7878131675b687729a27f0a488f0186e6666b735b861e", "tool": "Qonto", "notebook": "Get organizations", "action": "", "tags": ["#qonto", "#bank", "#organizations", "#positions", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "Qonto is a financial service that helps organizations manage their finances and get organized.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_organizations.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_organizations.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "ea9e48f2660d5e99bf7c98f34152cb079f7643c88a1cb3bbb689828118d28d35", "tool": "Qonto", "notebook": "Get positions", "action": "", "tags": ["#qonto", "#bank", "#organizations", "#positions", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-01-26", "description": "This notebook provides an overview of the positions available through Qonto, a digital banking service.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_positions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_positions.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "6a9ad826ce7186c78e78078a3ee167f0a0226478c26805fe708b78eed6659048", "tool": "Qonto", "notebook": "Get statement", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "This notebook provides a convenient way to access and view your Qonto account statements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "ae25587a760343b76cd21871e8fb5a9348e957b7e89fd66c66edeaa5683a1bcc", "tool": "Qonto", "notebook": "Get statement barline", "action": "", "tags": ["#qonto", "#bank", "#statement", "#plotly", "#barline", "#naas_drivers", "#finance", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-11-05", "description": "This notebook provides a convenient way to generate barlines for Qonto statements.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement_barline.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement_barline.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "e34d7a0d1f542aed1377cf95b45f7b2ae126679533186edb3529908fe0b406c8", "tool": "Qonto", "notebook": "Get statement ranking by category", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "This notebook provides a way to organize and analyze financial statements by category to gain insights into spending patterns.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement_ranking_by_category.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement_ranking_by_category.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "f64cd3ab2aa93155bc8e1bf38148fb31ec7d96744518fe4426086a63de69c306", "tool": "Qonto", "notebook": "Get statement summary by operation type", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "This notebook provides a summary of financial operations by type for Qonto users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_statement_summary_by_operation_type.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "b79366dec95c9ac8fd048926ce03d2ce291bfc116f06d4c12182d386496c48bd", "tool": "Qonto", "notebook": "Get transactions", "action": "", "tags": ["#qonto", "#bank", "#transactions", "#naas_drivers", "#finance", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-02-16", "description": "Qonto's notebook allows you to easily access and manage your transactions.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Get_transactions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Get_transactions.ipynb", "imports": ["naas_drivers.qonto"], "image_url": ""}, {"objectID": "9cc3c79640025122d4d08f417b90e3c33382632218f192b7f91b09e0e07d7a36", "tool": "Qonto", "notebook": "Releve de compte augmente", "action": "", "tags": ["#qonto", "#bank", "#statement", "#naas_drivers", "#notification", "#emailbuilder", "#asset", "#scheduler", "#naas", "#finance", "#automation", "#analytics", "#plotly", "#email", "#html", "#image", "#excel"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-07-21", "description": "Recevez un relev\u00e9 de compte augment\u00e9 par email gratuitement, chaque semaine, gr\u00e2ce \u00e0 un template Naas.ai (moteur de donn\u00e9es opensource, 100 cr\u00e9dits offert par mois). \n

\n-Dur\u00e9e de l'installation = 5 minutes
\n-Support d'installation = Guide vid\u00e9o
\n-Niveau = Facile
", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Qonto/Qonto_Releve_de_compte_augmente.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Qonto/Qonto_Releve_de_compte_augmente.ipynb", "imports": ["naas_drivers.qonto", "datetime.datetime, timedelta", "pandas", "naas", "naas"], "image_url": ""}, {"objectID": "b011d4cb48a9cb6019a9bf3d65607a661c3b457d783fd0a31f524e0d36d500a0", "tool": "Quandl", "notebook": "Get data from API", "action": "", "tags": ["#quandl", "#marketdata", "#opendata", "#finance", "#snippet", "#matplotlib"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides a guide to retrieving data from the Quandl API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Quandl/Quandl_Get_data_from_API.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Quandl/Quandl_Get_data_from_API.ipynb", "imports": ["quandl", "matplotlib.pyplot"], "image_url": ""}, {"objectID": "5fc16e4d7e6415f3d4c6c3adb959707425d1e22a89f4c9ed83dce4819a6524be", "tool": "Quandl", "notebook": "Get data from CSV", "action": "", "tags": ["#quandl", "#marketdata", "#opendata", "#finance", "#snippet", "#csv"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-02-28", "description": "This notebook provides a guide to retrieving data from CSV files using the Quandl API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Quandl/Quandl_Get_data_from_CSV.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Quandl/Quandl_Get_data_from_CSV.ipynb", "imports": ["matplotlib.pyplot", "pandas", "os"], "image_url": ""}, {"objectID": "8531d6684ed740ec2ff6fd79b946c490932a6fb0b5f8929ace7f53c543152096", "tool": "Reddit", "notebook": "Get Hot Posts From Subreddit", "action": "", "tags": ["#reddit", "#subreddit", "#data", "#hottopics", "#rss", "#information", "#opendata", "#snippet", "#dataframe"], "author": "Yaswanthkumar GOTHIREDDY", "author_url": "https://www.linkedin.com/in/yaswanthkumargothireddy/", "updated_at": "2023-04-12", "created_at": "2021-08-16", "description": "This notebook allows users to retrieve the hottest posts from a specified subreddit on Reddit.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Reddit/Reddit_Get_Hot_Posts_From_Subreddit.ipynb", "imports": ["praw", "pandas", "numpy", "datetime.datetime"], "image_url": ""}, {"objectID": "8812c328726e145037006c5dcb182640230ec58dcb57aec562289e838e3ae409", "tool": "Redshift", "notebook": "Connect with SQL Magic and IAM Credentials", "action": "", "tags": ["#redshift", "#database", "#snippet", "#operations", "#naas", "#jupyternotebooks"], "author": "Caleb Keller", "author_url": "https://www.linkedin.com/in/calebmkeller/", "updated_at": "2023-04-12", "created_at": "2021-07-16", "description": "## Input\n\n- ipython-sql\n- boto3\n- psycopg2\n- sqlalchemy-redshift\n\nIf you're running in NaaS, you can execute the below to install the necessary libraries.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Redshift/Redshift_Connect_with_SQL_Magic_and_IAM_Credentials.ipynb", "imports": ["boto3", "psycopg2", "getpass", "pandas", "urllib.parse"], "image_url": ""}, {"objectID": "4f03512608dfc108d56e8bd6f0396f48d71e76adca829f5753f7ed8172a2f2de", "tool": "RegEx", "notebook": "Check email validity", "action": "", "tags": ["#regex", "#python", "#email", "#validity", "#check", "#string"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook will demonstrate how to check the validity of an email address using `re` module. \nThe `re.search()` function in Python's re module allows you to search for a specified pattern within a string. It returns a match object if the pattern is found, enabling you to extract relevant information from the string based on the given pattern.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/RegEx/RegEx_Check_email_validity.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/RegEx/RegEx_Check_email_validity.ipynb", "imports": ["re"], "image_url": ""}, {"objectID": "685a1f40f7aa4a1232db34e0359c257af7cfb943e0ababc3ce2c39cb4d53a733", "tool": "RegEx", "notebook": "Match pattern", "action": "", "tags": ["#regex", "#python", "#snippet", "#operations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook demonstrates how to match a pattern in a string using `re.search()` and `re.match()`. The main difference between `re.search()` and `re.match()` lies in how they apply pattern matching to the input string. `re.search()` scans the entire input string and returns the first occurrence of a pattern match, regardless of its position within the string. On the other hand, `re.match()` only checks for a pattern match at the beginning of the string.\n\nTo start, we recommand you to test your regular expression using this website: https://regex101.com/", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/RegEx/RegEx_Match_pattern.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/RegEx/RegEx_Match_pattern.ipynb", "imports": ["re"], "image_url": ""}, {"objectID": "c1fb82c7c15421cc52e119f4c0989d93fff90d185ae48e67c528a81197f697ce", "tool": "RegEx", "notebook": "Replace value in text in a specific paragraph", "action": "", "tags": ["#regex", "#re", "#python", "#string", "#replace", "#text", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-06", "created_at": "2023-06-06", "description": "This notebook will show how to replace a value in a specific paragraph of a text using `re` module. The `re.sub()` function enables you to perform pattern-based string substitutions. It allows you to replace occurrences of a pattern in a given string with a specified replacement.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/RegEx/RegEx_Replace_value_in_text_in_a_specific_paragraph.ipynb", "imports": ["re"], "image_url": ""}, {"objectID": "305c5c190163ec3d354712a27c233a097b14c1492cd412900d9283b6cacc4424", "tool": "Remoteok", "notebook": "Get jobs from categories", "action": "", "tags": ["#remoteok", "#jobs", "#csv", "#snippet", "#opendata", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-03", "description": "Remoteok is a job search platform that allows users to find jobs from a variety of categories.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remoteok/Remoteok_Get_jobs_from_categories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remoteok/Remoteok_Get_jobs_from_categories.ipynb", "imports": ["pandas", "requests", "datetime.datetime", "time"], "image_url": ""}, {"objectID": "d49a83032e1012afe8025a8ee46e5eca93ea3f5212272486e2ea692bd2783590", "tool": "Remoteok", "notebook": "Post daily jobs on slack", "action": "", "tags": ["#remoteok", "#jobs", "#slack", "#gsheet", "#naas_drivers", "#automation", "#opendata", "#text"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-03", "description": "This notebook allows you to post daily jobs from Remoteok to your Slack workspace.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remoteok/Remoteok_Post_daily_jobs_on_slack.ipynb", "imports": ["pandas", "requests", "datetime.datetime", "time", "naas_drivers.gsheet, slack", "naas"], "image_url": ""}, {"objectID": "2e0a5121d38b84cc390290272eea893ea63d79e5ce7993a046e6c6f332824dfc", "tool": "Remotive", "notebook": "Get categories from job", "action": "", "tags": ["#remotive", "#categories", "#snippet", "#opendata", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-02-14", "description": "This notebook provides a way to categorize jobs posted on Remotive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Get_categories_from_job.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Get_categories_from_job.ipynb", "imports": ["pandas", "requests"], "image_url": ""}, {"objectID": "e141af26ebf6859a4e26fdf19cbbef08826a4a49ba12d240412d69b89f8b322b", "tool": "Remotive", "notebook": "Get jobs from categories", "action": "", "tags": ["#remotive", "#jobs", "#csv", "#snippet", "#opendata", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-02-14", "description": "This notebook provides a comprehensive list of remote job opportunities from a variety of categories.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Get_jobs_from_categories.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Get_jobs_from_categories.ipynb", "imports": ["pandas", "requests", "time", "datetime.datetime"], "image_url": ""}, {"objectID": "521ba7b3ee67b30d454150ddda5168f097b9f305cc6b56c02297e603aade0ba9", "tool": "Remotive", "notebook": "Post daily jobs on slack", "action": "", "tags": ["#remotive", "#jobs", "#slack", "#gsheet", "#naas_drivers", "#automation", "#opendata", "#text"], "author": "Sanjeet Attili", "author_url": "https://www.linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-02-09", "description": "Remotive is a Slack app that allows users to post and find remote job opportunities on a daily basis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Post_daily_jobs_on_slack.ipynb", "imports": ["pandas", "bs4.BeautifulSoup", "requests", "datetime.datetime", "time", "naas_drivers.gsheet, slack", "naas"], "image_url": ""}, {"objectID": "0bae0fd45a541ae9aa454e8fce4a5df9f94d001e54ac616de251c2cf19566aeb", "tool": "Remotive", "notebook": "Send jobs to gsheet", "action": "", "tags": ["#remotive", "#jobs", "#gsheet", "#naas_drivers", "#automation", "#opendata", "#googlesheets"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-02-14", "description": "This notebook allows users to quickly and easily send jobs to a Google Sheet.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Remotive/Remotive_Send_jobs_to_gsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Remotive/Remotive_Send_jobs_to_gsheet.ipynb", "imports": ["pandas", "requests", "datetime.datetime", "time", "naas_drivers.gsheet", "naas"], "image_url": ""}, {"objectID": "c760989aeb646043394a467ce2c6b687a3066f01ab69f8e63a21755361bd5fe0", "tool": "Request", "notebook": "Basic HTTP GET", "action": "", "tags": ["#request", "#http", "#get", "#library", "#python", "#api"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-14", "created_at": "2023-06-09", "description": "This notebook provides a template for making a basic HTTP GET request using the requests library. It covers importing the library, making the request, handling the response, and displaying the retrieved data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Request/Request_Basic_HTTP_GET_Request.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Basic_HTTP_GET_Request.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "e4657f273b8f1a16243f2cf42b54bf6280fd4415f91496be69bae05c845828cc", "tool": "Request", "notebook": "Handling Errors and Exceptions", "action": "", "tags": ["#request", "#error", "#exception", "#handling", "#python", "#library"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-26", "created_at": "2023-06-09", "description": "This notebook template explores how to handle errors and exceptions when using the requests library. It provides examples of error handling techniques, including proper status code checking, handling timeouts, and dealing with connection errors.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Request/Request_Handling_Errors_and_Exceptions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Handling_Errors_and_Exceptions.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "9678f6e9d554c476ab1edd5e4046bdb3c55626b16b11a91767b3ef45250215d2", "tool": "Request", "notebook": "Sending POST s with Data", "action": "", "tags": ["#requests", "#post", "#data", "#python", "#library", "#api"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-16", "created_at": "2023-06-09", "description": "This notebook template demonstrates how to use the requests library to send a POST request with data. It includes importing the library, preparing the data, making the request, handling the response, and verifying the successful submission.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Request/Request_Sending_POST_Requests_with_Data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Request/Request_Sending_POST_Requests_with_Data.ipynb", "imports": ["requests"], "image_url": ""}, {"objectID": "1ec91cf3ea4e7bc9c5e5fe8f000bfcab76e74a221d3820500f41cb5744282f1d", "tool": "SAP-HANA", "notebook": "Query data", "action": "", "tags": ["#sap-hana", "#sap", "#saphana", "#database", "#snippet", "#operations", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides an introduction to querying data in SAP HANA.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SAP-HANA/SAP-HANA_Query_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SAP-HANA/SAP-HANA_Query_data.ipynb", "imports": ["sap_hana_connector"], "image_url": ""}, {"objectID": "bc8693ec5df8d3d2c7d05271ed8f68e0aeefdcb1ae5c3fcefcf4246df9614dcd", "tool": "SEON", "notebook": "Get email info", "action": "", "tags": ["#seon", "#email", "#enrichment", "#api", "#tool", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-23", "description": "This notebook will demonstrate how to use SEON's standalone email enrichment tool to learn about the approximate minimum age of an email address, its provider, and any connected online profiles and save it into a json file.\n\n*Good to know:*\n- You can use the Fraud API if you want to use the Email API together with any of our Phone API, IP API, and Device Fingerprinting.\n- All SEON API requests are case-sensitive. Please follow the formatting below to avoid errors.\n- Email API requests are limited to 120/minute during your SEON free trial.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SEON/SEON_Get_email_info.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SEON/SEON_Get_email_info.ipynb", "imports": ["requests", "naas", "pprint.pprint", "json"], "image_url": ""}, {"objectID": "dfc7aa18b61ba877af2ccc28a176b6ec5c7ae90df276085a78e8a01d116ec615", "tool": "SQLite", "notebook": "Create Database file", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-12", "description": "This notebook creates a new SQLite database file using the sqlite3 module in Python. Here's an example of how you can create a new SQLite database file called \"mydatabase.db\"", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Create_Database_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Create_Database_file.ipynb", "imports": ["sqlite3"], "image_url": ""}, {"objectID": "1bc66c95ce6020ea5e543316f2bf03a0cf0e7d41f12680f81371452e3454320d", "tool": "SQLite", "notebook": "Create Table in Database", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-12", "description": "This notebook creates a table called \"employees\" in a SQLite database. Please note that the new table created will erase the old one if a table already exist in the database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Create_Table_in_Database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Create_Table_in_Database.ipynb", "imports": ["sqlite3"], "image_url": ""}, {"objectID": "d9989623aa996ed0e28f3ea73630f21a11e50cc3087b3de6271505d6c59bb986", "tool": "SQLite", "notebook": "Insert data in Table", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-12", "description": "This notebook insert the values into a table in a SQLite database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Insert_data_in_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Insert_data_in_Table.ipynb", "imports": ["sqlite3"], "image_url": ""}, {"objectID": "7190661ad83396721f507d763dc721bf6a56ccba205c65a622153be05d637503", "tool": "SQLite", "notebook": "List Tables in Database", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-12", "description": "This notebook lists tables within a SQLite database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_List_Tables_in_Database.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_List_Tables_in_Database.ipynb", "imports": ["sqlite3"], "image_url": ""}, {"objectID": "00e01d8540447a9f7dbc8a19ee47f55e785be0d85e821c4ce6f8912fba9b6d33", "tool": "SQLite", "notebook": "Read data in Table", "action": "", "tags": ["#SQLite", "#database", "#databasemanagement", "#filebaseddb", "#dbcreation", "#dbsetup", "#SQLiteDB", "#localstorage", "#datastore", "#SQLitedatabase", "#embeddedDB", "#PythonDB", "#sqllite3", "#DBfile"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-01-12", "description": "This notebook reads data from a table called \"employees\" in a SQLite database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SQLite/SQLite_Read_data_in_Table.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SQLite/SQLite_Read_data_in_Table.ipynb", "imports": ["sqlite3"], "image_url": ""}, {"objectID": "b2640eef0eb25e93c3717902c701273fe4f8689ec7805ec9865aa5dede072f65", "tool": "SWIFT", "notebook": "Create MT940 XML file", "action": "", "tags": ["#swift", "#mt940", "#xml", "#file", "#create", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-17", "description": "This notebook will show how to create an MT940 XML file using Python.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SWIFT/SWIFT_Create_MT940_XML_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SWIFT/SWIFT_Create_MT940_XML_file.ipynb", "imports": ["xml.etree.ElementTree"], "image_url": ""}, {"objectID": "d7e34a46dfdab62d55033522183e338b4bfd89523400494c9c14a7880471b1cb", "tool": "SendGrid", "notebook": "Get all messages", "action": "", "tags": ["#sendgrid", "#activity", "#snippet", "#operations", "#dataframe"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-04-04", "description": "This notebook provides a comprehensive overview of all messages sent through SendGrid.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SendGrid/SendGrid_Get_all_messages.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SendGrid/SendGrid_Get_all_messages.ipynb", "imports": ["naas", "requests", "urllib", "pandas"], "image_url": ""}, {"objectID": "49126dfdadde535c9004cb89b3c0e4c1fea355ea72a5e9f019fc99086ba4befc", "tool": "SendGrid", "notebook": "Send message", "action": "", "tags": ["#sendgrid", "#message", "#snippet", "#operations"], "author": "Sanjeet Attili", "author_url": "https://linkedin.com/in/sanjeet-attili-760bab190/", "updated_at": "2023-04-12", "created_at": "2022-03-08", "description": "This notebook allows you to send messages using SendGrid's email delivery service.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SendGrid/SendGrid_Send_message.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SendGrid/SendGrid_Send_message.ipynb", "imports": ["requests", "sendgrid.SendGridAPIClient", "sendgrid.helpers.mail.*"], "image_url": ""}, {"objectID": "3644b28c400b814d09ab9a29811b9ce0d5c88db8b6ea7288146b12530d88e1ad", "tool": "Sendinblue", "notebook": "Get no of emails opened", "action": "", "tags": ["#sendinblue", "#emails", "#campaign", "#opened", "#emailcampaigns", "#marketing", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-07-09", "description": "This notebook provides a way to track the number of emails opened using Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_emails_opened.ipynb", "imports": ["requests", "json", "naas"], "image_url": ""}, {"objectID": "7dcc2250cb71fd6d7df3b877dc5168e6ee68e03beb17aeed32fb057a113f9740", "tool": "Sendinblue", "notebook": "Get no of emails sent", "action": "", "tags": ["#sendinblue", "#emails", "#campaign", "#sent", "#emailcampaigns", "#marketing", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-07-09", "description": "This notebook provides a way to track the number of emails sent through Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_emails_sent.ipynb", "imports": ["requests", "json", "naas"], "image_url": ""}, {"objectID": "d44b552d043fa74c9a00ca9ed43835a9acd1016434330820159f1818411b73e4", "tool": "Sendinblue", "notebook": "Get no of spam reports", "action": "", "tags": ["#sendinblue", "#emails", "#campaign", "#spam", "#emailcampaigns", "#marketing", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-07-09", "description": "This notebook provides a way to track the number of spam reports received through Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_spam_reports.ipynb", "imports": ["requests", "json", "naas"], "image_url": ""}, {"objectID": "dd7e259333a94870bff986f6e4f3d3e1875f6fd02fbe6c6fccacd81d7fbc1336", "tool": "Sendinblue", "notebook": "Get no of undelivered emails", "action": "", "tags": ["#emails", "#campaign", "#undelivered", "#emailcampaigns", "#marketing", "#sendinblue", "#operations", "#snippet"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-06-30", "description": "This notebook provides a count of emails that were not successfully delivered using Sendinblue.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Sendinblue/Sendinblue_Get_no_of_undelivered_emails.ipynb", "imports": ["requests", "json", "naas"], "image_url": ""}, {"objectID": "e14418219d04e28461426bee2d1dd57778c3265b9e36b8696268ad8ed0b5f0bc", "tool": "SharePoint", "notebook": "Get file", "action": "", "tags": ["#sharepoint", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-07-13", "description": "This notebook provides a guide to retrieving files from a SharePoint server.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SharePoint/SharePoint_Get_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SharePoint/SharePoint_Get_file.ipynb", "imports": ["naas_drivers.sharepoint", "naas"], "image_url": ""}, {"objectID": "ea00d49b6e6488a3327b37ffc55ae0498cbd875f1a50654e4298105e11fd0af2", "tool": "SharePoint", "notebook": "List folder", "action": "", "tags": ["#sharepoint", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-07-13", "description": "This notebook provides a guide to managing and organizing files in a SharePoint List folder.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SharePoint/SharePoint_List_folder.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SharePoint/SharePoint_List_folder.ipynb", "imports": ["naas_drivers.sharepoint", "naas"], "image_url": ""}, {"objectID": "00f1ebf2b83dcf76e8e3264850f5e04de346e4722e102bc8a95aa553a44255fc", "tool": "SharePoint", "notebook": "Upload file", "action": "", "tags": ["#sharepoint", "#productivity", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-07-13", "description": "This notebook provides instructions on how to upload a file to a SharePoint site.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/SharePoint/SharePoint_Upload_file.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/SharePoint/SharePoint_Upload_file.ipynb", "imports": ["naas_drivers.sharepoint", "naas"], "image_url": ""}, {"objectID": "310727059ea08d1992077ac57cb0ca54196257738cb92d852bbb2bc3af7a7251", "tool": "Shutterstock", "notebook": "Search for images", "action": "", "tags": ["#shutterstock", "#images", "#search", "#api", "#reference", "#library"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-20", "created_at": "2023-02-27", "description": "This notebook will demonstrate how to use the Shutterstock API to search for images.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Shutterstock/Shutterstock_Search_for_images.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Shutterstock/Shutterstock_Search_for_images.ipynb", "imports": ["json", "naas", "requests", "PIL.Image", "io", "matplotlib.pyplot", "pydash"], "image_url": ""}, {"objectID": "69edbf0f3bece275b66ceff5c8dc5510c1db14429f958e7dc109afbf15f02bc2", "tool": "Slack", "notebook": "Add new user to Google Sheets", "action": "", "tags": ["#slack", "#googlesheets", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://docs.naas.ai/templates/google-sheets", "updated_at": "2023-04-12", "created_at": "2022-04-25", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Add_new_user_to_Google_Sheets.ipynb", "imports": ["naas_drivers.gsheet", "naas", "pandas", "slack_sdk.WebClient", "datetime.datetime"], "image_url": ""}, {"objectID": "5f730f307f840b3988958c46d7d837ac5877d7294ba2e4e8c77db87521611989", "tool": "Slack", "notebook": "Follow number of users in workspace", "action": "", "tags": ["#slack", "#plotly", "#html", "#image", "#csv", "#marketing", "#automation", "#analytics"], "author": "Sanjeet Attili", "author_url": "https://github.com/slackapi/python-slack-sdk", "updated_at": "2023-04-12", "created_at": "2022-04-25", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Follow_number_of_users_in_workspace.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Follow_number_of_users_in_workspace.ipynb", "imports": ["naas", "pandas", "plotly.graph_objects", "slack_sdk.WebClient", "datetime.datetime"], "image_url": ""}, {"objectID": "8c14aab53bd8c6fe6689201ba16d90346db4f37cb888763e61eb7a3c65c38eda", "tool": "Slack", "notebook": "Send blocks to channel", "action": "", "tags": ["#slack", "#message", "#send", "#operations", "#snippet", "#block"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-06-22", "created_at": "2023-06-19", "description": "This notebook allows you to quickly and easily send blocks through Slack. Blocks are visual components that can be stacked and arranged to create app layouts. Block Kit can make your app's communication clearer while also giving you consistent opportunity to interact with and assist users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Send_blocks_to_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Send_blocks_to_channel.ipynb", "imports": ["naas_drivers.slack", "naas"], "image_url": ""}, {"objectID": "0531f44f6ac83d8e06902f52b1460d35fb57a29f6afb4091f1a276d3244a91af", "tool": "Slack", "notebook": "Send message", "action": "", "tags": ["#slack", "#message", "#send", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-22", "created_at": "2023-06-22", "description": "This notebook allows you to quickly and easily send text messages through Slack.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Slack/Slack_Send_message_to_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Slack/Slack_Send_message_to_channel.ipynb", "imports": ["naas_drivers.slack", "naas"], "image_url": ""}, {"objectID": "15defdfba3040a35be89b5bf41b6e7de4dd4317de5bff7d85d5541e1ae4487a4", "tool": "Snowflake", "notebook": "Basics and data querying", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "updated_at": "2023-04-12", "created_at": "2022-08-06", "description": "This notebook provides an introduction to the basics of Snowflake and how to query data within it.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Basics_and_data_querying.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Basics_and_data_querying.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError"], "image_url": ""}, {"objectID": "e34aa1f49930e96ed9f8f3a829011f511890ffdde810c43f4f06637a66d85b9a", "tool": "Snowflake", "notebook": "Ingest csv data from local stage", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "updated_at": "2023-04-12", "created_at": "2022-08-06", "description": "This notebook demonstrates how to ingest CSV data from a local stage into Snowflake.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Ingest_csv_data_from_local_stage.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError"], "image_url": ""}, {"objectID": "e272e6e7fcca9fb2482ff3f91eab93a951c03c36e6bf7ba1fd83d6928b88c88c", "tool": "Snowflake", "notebook": "Ingest data from AWS external stages", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "updated_at": "2023-04-12", "created_at": "2022-08-06", "description": "This notebook demonstrates how to ingest data from AWS external stages into Snowflake.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Ingest_data_from_AWS_external_stages.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError", "pandas"], "image_url": ""}, {"objectID": "0dfb1e2bec528e076f9a7e599747f0b8ff34b464253c902a17b7f737791862f9", "tool": "Snowflake", "notebook": "Ingest json data from local stage", "action": "", "tags": ["#snowflake", "#data", "#warehouse", "#naas_drivers", "#snippet"], "author": "Mateusz Polakowski", "author_url": "https://www.linkedin.com/in/polakowski/", "updated_at": "2023-04-12", "created_at": "2022-08-06", "description": "This notebook demonstrates how to ingest JSON data from a local stage into Snowflake.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Snowflake/Snowflake_Ingest_json_data_from_local_stage.ipynb", "imports": ["os", "naas_drivers.snowflake", "snowflake.connector.errors.ProgrammingError"], "image_url": ""}, {"objectID": "996435d28247d8e9c175da10ebc3f3a3c3a7709f6ab658a453069f27629f80aa", "tool": "Societe.com", "notebook": "Get company details", "action": "", "tags": ["#societe.com", "#companies", "#opendata", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides detailed information about companies registered on Societe.com.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Societe.com/Societe.com_Get_company_details.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Societe.com/Societe.com_Get_company_details.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "44d6284d9798272ec8d8b57d4a4cc811e758e0612d0d87c9fca6bf49c2b79c75", "tool": "Societe.com", "notebook": "Get verif.com", "action": "", "tags": ["#companies", "#opendata", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides access to Societe.com's verification services through Verif.com.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Societe.com/Societe.com_Get_verif.com.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Societe.com/Societe.com_Get_verif.com.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "460cb50b6264b395c250e70db47ad5aa39b2bfcc2b406dc25e5adbce004a87dc", "tool": "Spotify", "notebook": "Create Radar Chart to analyze Playlist", "action": "", "tags": ["#spotify", "#python", "#spotipy", "#analytics", "#operations", "#image"], "author": "Akshaya Parthasarathy", "author_url": "https://github.com/iaks23", "updated_at": "2023-04-12", "created_at": "2021-10-12", "description": "This notebook provides a step-by-step guide to creating a Radar Chart to analyze a Spotify Playlist.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Spotify/Spotify_Create_Radar_Chart_to_analyze_Playlist.ipynb", "imports": ["json", "spotipy", "pandas", "spotipy.oauth2.SpotifyClientCredentials", "sklearn.preprocessing.MinMaxScaler", "matplotlib.pyplot", "math.pi"], "image_url": ""}, {"objectID": "dca116db84f70425c4800366b46cc450713e1b39960edc929e38deed8702789b", "tool": "Stabilty AI", "notebook": "Generate Image from text", "action": "", "tags": ["#stabilityai", "#png", "#prompt", "#generate", "#file", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-27", "description": "This notebook will demonstrate how to execute a basic image generation call via Stability AI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stabilty%20AI/Stabilty_AI_Generate_Image_from_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stabilty%20AI/Stabilty_AI_Generate_Image_from_text.ipynb", "imports": ["os", "io", "warnings", "PIL.Image", "stability_sdk.client", "stability_sdk.client", "stability_sdk.interfaces.gooseai.generation.generation_pb2", "naas"], "image_url": ""}, {"objectID": "832c6caba950d6fab4bf84f56f9ec0661ca43ffc478e0f39bf5ba999022a6e17", "tool": "Stable Diffusion", "notebook": "Generate image from text", "action": "", "tags": ["#stable-diffusion", "#image-generation", "#text-to-image", "#ai", "#machine-learning", "#deep-learning"], "author": "Oussama El Bahaoui", "author_url": "https://www.linkedin.com/in/oelbahaoui/", "updated_at": "2023-06-19", "created_at": "2023-05-12", "description": "This notebook generate image from text using Stable Diffusion.\n\nIt requires a more powerful machine than the free tier we provide. You have two options to proceed:\n\n1. **Using Google Colab:** If you have a Google account, you can open this notebook in Google Colab(link is above), which provides free access to more powerful computational resources to run this notebook. To do this, click the \u201cOpen in Colab\u201d button located at the end of this paragraph. Please note that you may need to sign in with your Google account or create one if you don\u2019t have it. \"Open\n\n2. **Contacting Us for Machine Upgrade:** If you prefer to run this notebook on your own machine, you can contact us to upgrade your machine. Our team will assist you in setting up the necessary environment. Please reach out to [Jeremy Ravenel](mailto:jeremy@naas.ai) for further assistance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stable%20Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stable%20Diffusion/Stable_Diffusion_Generate_image_from_text.ipynb", "imports": ["diffusers.DiffusionPipeline, DPMSolverMultistepScheduler", "PIL.Image", "matplotlib.pyplot", "torch"], "image_url": ""}, {"objectID": "966d01eed050cc4cb01fe7a63b108c7981a5c194867ac50e215e489fe9ef04c0", "tool": "Streamlit", "notebook": "Create prediction app", "action": "", "tags": ["#streamlit", "#app", "#ml", "#ai", "#operations", "#plotly"], "author": "Gagan Bhatia", "author_url": "https://github.com/gagan3012", "updated_at": "2023-04-12", "created_at": "2021-09-01", "description": "This notebook provides a step-by-step guide to creating a Streamlit app that can make predictions based on user input.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Streamlit/Streamlit_Create_prediction_app.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Streamlit/Streamlit_Create_prediction_app.ipynb", "imports": ["naas_drivers.streamlit", "naas_drivers.streamlit, plotly, yahoofinance, prediction", "streamlit"], "image_url": ""}, {"objectID": "ea7c3e26461ab96b7177bdb5a53a4091ee6e0c1d59010899a52e7fdb96b41797", "tool": "Stripe", "notebook": "Create a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#create", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-18", "created_at": "2023-04-30", "description": "This notebook will show how to create a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Create_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Create_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "80d3f6a6c98fb33c54b4e6eb95c5741adf5c5a89f6ca6c85ec149c2d1789a907", "tool": "Stripe", "notebook": "Delete a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#delete", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-18", "created_at": "2023-05-18", "description": "This notebook will show how to delete a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Delete_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Delete_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "2e1162c3667428d176ee2dc9ae136c309599c272948339c3783e0960761b749d", "tool": "Stripe", "notebook": "Get balances", "action": "", "tags": ["#stripe", "#balances", "#snippet", "#operations", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides a way to view and manage Stripe account balances.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Get_balances.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Get_balances.ipynb", "imports": ["stripe", "stripe", "pandas"], "image_url": ""}, {"objectID": "e75c117c1f5c9fdbef31f27e2df13e2a6e0ff9690f98452eaa7f16e7b41ec6e7", "tool": "Stripe", "notebook": "Get charges", "action": "", "tags": ["#stripe", "#charges", "#snippet", "#operations", "#dataframe"], "author": "Martin Donadieu", "author_url": "https://www.linkedin.com/in/martindonadieu/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides an overview of Stripe charges and their associated data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Get_charges.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Get_charges.ipynb", "imports": ["stripe", "stripe", "pandas"], "image_url": ""}, {"objectID": "3bc32324991101e1a88858f766923d627fe005351a5a1424287302bf586dca76", "tool": "Stripe", "notebook": "List all customers", "action": "", "tags": ["#stripe", "#api", "#customers", "#list", "#python", "#reference"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel", "updated_at": "2023-05-18", "created_at": "2023-04-26", "description": "This notebook will list all customers from Stripe and explain how to use the Stripe API to do so. It is usefull for organizations that need to manage their customers.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_List_all_customers.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_List_all_customers.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "d28a5138a2cc901dc326745b136655e50ecd70b823da5cfeb35fa472d429af86", "tool": "Stripe", "notebook": "Retrieve a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#retrieve", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-18", "created_at": "2023-05-18", "description": "This notebook will show how to retrieve a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Retrieve_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Retrieve_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "b812b9cab5dd404fcfa8a097f203dc0ddcfacd3728e8c14ed1205b11b0c2e92d", "tool": "Stripe", "notebook": "Update a customer", "action": "", "tags": ["#stripe", "#payment", "#customer", "#api", "#python", "#update", "#crud"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-05-18", "created_at": "2023-05-18", "description": "This notebook will show how to update a customer using the Stripe API. It is usefull for organizations that need to manage customer payments.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Stripe/Stripe_Update_a_customer.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Stripe/Stripe_Update_a_customer.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "07fa9fa6090c516e8d7233c9c4aceb4dafdcbbe96c685eda8ace2314d11df2df", "tool": "Supabase", "notebook": "Email Auth", "action": "", "tags": ["#supabase", "#auth", "#email", "#signin", "#signout", "#verification"], "author": "Sriniketh Jayasendil", "author_url": "http://linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2023-02-15", "description": "This notebook will utilize the Supabase DB and Authentication (with email verification) to Login users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Supabase/Supabase_Email_Auth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Supabase/Supabase_Email_Auth.ipynb", "imports": ["naas", "json", "supabase.create_client", "supabase.create_client"], "image_url": ""}, {"objectID": "9aacc71819205eb5f78d216ff9a089344dc6e6d906707f7c9281232f86dde6aa", "tool": "Telegram", "notebook": "Create crypto sentiment bot", "action": "", "tags": ["#telegram", "#sentiment", "#bot", "#naas_drivers", "#ai", "#investors"], "author": "Yaswanthkumar GOTHIREDDY", "author_url": "https://www.linkedin.com/in/yaswanthkumargothireddy/", "updated_at": "2023-04-12", "created_at": "2021-07-09", "description": "This notebook provides instructions on how to create a Telegram bot that tracks and analyzes sentiment around cryptocurrencies.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Telegram/Telegram_Create_crypto_sentiment_bot.ipynb", "imports": ["logging", "telegram.ext.*", "numpy", "naas_drivers.newsapi", "naas_drivers.sentiment", "datetime.datetime, timedelta"], "image_url": ""}, {"objectID": "87ed6f3653975a17927f01bcbe3f0385fb02c53b0860ded81236b9083dc9f890", "tool": "Text", "notebook": "Reformat Without Spaces", "action": "", "tags": ["#text", "#reformat", "#snippet", "#operations", "#spaces"], "author": "Minura Punchihewa", "author_url": "https://www.linkedin.com/in/minurapunchihewa/", "updated_at": "2023-04-12", "created_at": "2022-10-10", "description": "This notebook reformats text by removing all spaces.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Text/Text_Reformat_Text_Without_Spaces.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Text/Text_Reformat_Text_Without_Spaces.ipynb", "imports": ["wordninja", "wordninja", "twotransactionswhichcameearlier,andfordecadesthisstymiedthedevelopmentofdecentralized digitalcurrency.Satoshi'sblockchainwasthefirstcredibledecentralizedsolution.Andnow,attentionis rapidlystartingtoshifttowardthissecondpartofBitcoin'stechnology,andhowtheblockchainconceptcanbe used for more than just money. Commonlycitedapplicationsincludeusingon-blockchaindigitalassetstorepresentcustomcurrenciesand financialinstruments(\"coloredcoins\"),theownershipofanunderlyingphysicaldevice(\"smartproperty\"), non-fungibleassetssuchasdomainnames(\"Namecoin\")aswellasmoreadvancedapplicationssuchas decentralizedexchange,financialderivatives,peer-to-peergamblingandon-blockchainidentityand reputationsystems.Another.antareaofinquiryis\"smartcontracts\"-systemswhichautomatically movedigitalassetsaccordingtoarbitrarypre-specifiedrules.Forexample,onemighthaveatreasurycontract oftheform\"AcanwithdrawuptoXcurrencyunitsperday,BcanwithdrawuptoYperday,AandBtogether canwithdrawanything,andAcanshutoffB'sabilitytowithdraw\".Thelogicalextensionofthisis decentralizedautonomousorganizations(DAOs)-long-termsmartcontractsthatcontaintheassetsand encodethebylawsofanentireorganization.WhatEthereumintendstoprovideisablockchainwithabuilt-in fullyfledgedTuring-completeprogramminglanguagethatcanbeusedtocreate\"contracts\"thatcanbeused toencodearbitrarystatetransitionfunctions,allowinguserstocreateanyofthesystemsdescribedabove,as well"], "image_url": ""}, {"objectID": "c547876f0d475350ad796940faaba28ebd0b65165eddb1123ebfb19116a70d35", "tool": "Thinkific", "notebook": "Get users", "action": "", "tags": ["#thinkific", "#education", "#naas_drivers", "#operations", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides a guide to acquiring and engaging users for the Thinkific platform.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Thinkific/Thinkific_Get_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Thinkific/Thinkific_Get_users.ipynb", "imports": ["naas_drivers.thinkific"], "image_url": ""}, {"objectID": "5b7aab31600212c5c3c1ebe3bde329691ef5e075e26bfad83e30b96a27406539", "tool": "Thinkific", "notebook": "Send users", "action": "", "tags": ["#thinkific", "#education", "#naas_drivers", "#operations", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook allows you to send users automated emails from Thinkific.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Thinkific/Thinkific_Send_users.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Thinkific/Thinkific_Send_users.ipynb", "imports": ["naas_drivers.thinkific"], "image_url": ""}, {"objectID": "6e6ff26e13b5d362629eda7e97f100403c4263682ce83cd402f3e0fc0352fb3b", "tool": "TikTok", "notebook": "Get user stats", "action": "", "tags": ["#tiktok", "#user", "#stats", "#snippet", "#content"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-04-12", "description": "This notebook provides an analysis of user statistics on the popular social media platform, TikTok.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/TikTok/TikTok_Get_user_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/TikTok/TikTok_Get_user_stats.ipynb", "imports": ["TikTokAPI.TikTokAPI", "TikTokAPI.TikTokAPI", "nest_asyncio", "pandas"], "image_url": ""}, {"objectID": "35f614b16e2f264d1d38670c7ca5c0fe010e4c1cd828f2812e8a58faaeaee557", "tool": "TikTok", "notebook": "Get videos stats", "action": "", "tags": ["#tiktok", "#videos", "#stats", "#snippet", "#content"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-04-12", "description": "This notebook provides an analysis of video statistics on the popular social media platform, TikTok.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/TikTok/TikTok_Get_videos_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/TikTok/TikTok_Get_videos_stats.ipynb", "imports": ["TikTokAPI.TikTokAPI", "TikTokAPI.TikTokAPI", "nest_asyncio", "pandas"], "image_url": ""}, {"objectID": "bda97c0086e67e89ca713c307c134464ce0269066c8eb0398f343df74d61d809", "tool": "Trello", "notebook": "Create Card", "action": "", "tags": ["#trello", "#api", "#card", "#create", "#board", "#list"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-14", "created_at": "2023-07-14", "description": "This notebook would show you how to create a new card on a Trello board using the API. You could specify the board and list that you want the card to be created in, as well as its name, description, and any other relevant details, you can also create several cards.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Trello/Trello_Create_Card.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Create_Card.ipynb", "imports": ["requests", "naas", "ant\"},"], "image_url": ""}, {"objectID": "171b2e70749cf7235cefd7b019c057afa2196c1cdfdb0127320915d7609c3fc6", "tool": "Trello", "notebook": "Get Cards on a Board", "action": "", "tags": ["#trello", "#api", "#rest", "#cards", "#board", "#get"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-14", "created_at": "2023-07-14", "description": "This notebook get all cards from a board.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Trello/Trello_Get_Cards_on_a_Board.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_Cards_on_a_Board.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "e0c37b0b9b71eef4ba954737ebcf7889a1961540390e8d61dc9665188cdb9cc1", "tool": "Trello", "notebook": "Get Lists on a Board", "action": "", "tags": ["#trello", "#project", "#retrieve", "#snippet", "#operations", "#lists", "#board"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-14", "created_at": "2023-07-14", "description": "This notebook shows how to get the Lists on a Board.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Trello/Trello_Get_Lists_on_a_Board.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_Lists_on_a_Board.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "236ba6113e6987e489a54a8297398d0e66d2b9ee47911ef73dc0ad23a15df7c1", "tool": "Trello", "notebook": "Get board data", "action": "", "tags": ["#trello", "#project", "#board", "#snippet", "#operations", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides a way to access and analyze data from Trello boards.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Trello/Trello_Get_board_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_Get_board_data.ipynb", "imports": ["trello_connector"], "image_url": ""}, {"objectID": "8bf5205524ae16d62ec58b8c3d98d25bf423d3cb87975758f7e440f537e38440", "tool": "Trello", "notebook": "List Boards", "action": "", "tags": ["#trello", "#api", "#boards", "#list", "#python", "#rest"], "author": "Benjamin Filly", "author_url": "https://www.linkedin.com/in/benjamin-filly-05427727a/", "updated_at": "2023-07-11", "created_at": "2023-07-11", "description": "This notebook would allow you to retrieve a list of all the boards that you have access to in Trello. You could then use this information to perform further actions on the boards, such as listing the cards or updating their details.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Trello/Trello_List_Boards.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Trello/Trello_List_Boards.ipynb", "imports": ["requests", "naas"], "image_url": ""}, {"objectID": "2eddf7c217470a6be61c299b0cd813d63d1c4f4786016a3b897ffcf20e36f628", "tool": "Twilio", "notebook": "Add SMS to Google Sheets spreadsheet", "action": "", "tags": ["#twilio", "#google", "#sheets", "#googlesheets", "#send"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2023-03-14", "description": "This notebook allows you to log all the messages sent through your Twilio Account into a Google Sheets document. Each new message will be added as a new row, along with the date, time, message ID, and message content. It's a convenient way to keep track of your Twilio activity and make sure you never miss an important message.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Add_SMS_to_Google_Sheets_spreadsheet.ipynb", "imports": ["datetime.datetime", "naas", "gspread", "gspread", "oauth2client.service_account.ServiceAccountCredentials", "oauth2client.service_account.ServiceAccountCredentials", "twilio.rest.Client", "twilio.rest.Client"], "image_url": ""}, {"objectID": "84f71a020625f18300825bd684ac0985e2fc5b45f88839cfd9c176d5271a0f8a", "tool": "Twilio", "notebook": "Make Call", "action": "", "tags": ["#twilio", "#project", "#call", "#mobile"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2022-10-05", "description": "This notebook allows us to make a phone call to a verified twilio number. It also has different parameters to customize the output of the voice call.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Make_Call.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Make_Call.ipynb", "imports": ["time", "naas", "twilio.rest.Client", "twilio.rest.Client"], "image_url": ""}, {"objectID": "cf796abab887f0c032b38c2ac5c95b86f4245e69d66aea9a8d7b7e5cc5dac186", "tool": "Twilio", "notebook": "Send SMS", "action": "", "tags": ["#twilio", "#project", "#send", "#sms", "#snippet", "#operations", "#dataframe"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook allows you to send SMS messages using the Twilio API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Send_SMS.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Send_SMS.ipynb", "imports": ["twilio.rest.Client", "twilio.rest.Client"], "image_url": ""}, {"objectID": "9a33bfd7731b24971b0629ffb86419d5e7e45605566c208ce2e82a5e93b81b10", "tool": "Twilio", "notebook": "Send SMS messages for Google Calendar Events", "action": "", "tags": ["#googlecalendar", "#twilio", "#notification", "#event"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil", "updated_at": "2023-06-20", "created_at": "2023-03-17", "description": "This notebook sends an SMS notification for upcoming the next event you're attending in your Google Calendar.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twilio/Twilio_Send_SMS_Google_Calendar_Events.ipynb", "imports": ["naas", "datetime.datetime", "pytz", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "apiclient.discovery.build", "google_auth_oauthlib.flow.InstalledAppFlow", "twilio.rest.Client", "twilio.rest.Client", "pickle"], "image_url": ""}, {"objectID": "b83bc56ec2d52348e7769a349a95cffeda2100c29daae44ab84d3b54744bedfa", "tool": "Twitter", "notebook": "Add member to list", "action": "", "tags": ["#twitter", "#tweepy", "#pandas", "#twitterautomation", "#twitterlistmembers", "#snippet"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153", "updated_at": "2023-04-12", "created_at": "2023-01-13", "description": "This notebook adds a member to the list of a particular user.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Add_member_to_list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Add_member_to_list.ipynb", "imports": ["tweepy", "pandas", "naas"], "image_url": ""}, {"objectID": "ac4829f37f52f9554372ffdc6920da0099d83854bdd4d6e8e18efcc86af6fa37", "tool": "Twitter", "notebook": "Get followers list", "action": "", "tags": ["#twitter", "#api", "#followers", "#list", "#get", "#developer"], "author": "Sriniketh Jayasendil", "author_url": "https://www.linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-05-23", "created_at": "2023-05-17", "description": "This notebook will demonstrate how to get a list of followers from Twitter using the API. This feature is only available on paid plan.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_followers_list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_followers_list.ipynb", "imports": ["naas", "tweepy", "tweepy.Stream", "json", "pandas"], "image_url": ""}, {"objectID": "871bb71e3870638a5e7cbe6c68554487b055d3eadc0653cc0d229d556e7d6438", "tool": "Twitter", "notebook": "Get members of list", "action": "", "tags": ["#twitter", "#tweepy", "#pandas", "#twitterautomation", "#twitterlistmembers", "#snippet"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153", "updated_at": "2023-04-12", "created_at": "2023-01-11", "description": "This notebook gets the members of a list of a particular user. Private list members will only be shown if the authenticated user owns the specified list. It can be used to enable people to curate and organize new Lists based on the membership information", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_members_of%20list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_members_of%20list.ipynb", "imports": ["tweepy", "pandas", "naas"], "image_url": ""}, {"objectID": "2cfc5fc37a64737391240ba4c7ccac0fbee076d183decdeeec6480f97ec8ec20", "tool": "Twitter", "notebook": "Get posts stats", "action": "", "tags": ["#twitter", "#post", "#comments", "#naas_drivers", "#snippet", "#content"], "author": "Alok Chilka", "author_url": "https://www.linkedin.com/in/calok64/", "updated_at": "2023-04-12", "created_at": "2022-04-12", "description": "This notebook provides an analysis of Twitter posts, including statistics on user engagement and post performance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_posts_stats.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_posts_stats.ipynb", "imports": ["naas_drivers.linkedin, hubspot", "pandas", "numpy", "naas", "datetime.datetime, timedelta", "requests", "json", "tweepy"], "image_url": ""}, {"objectID": "d50dc5991bf4fe05f69298b0b37857587e63f47d21cab0b07fbf0c4f6d4bf0b7", "tool": "Twitter", "notebook": "Get tweets from search", "action": "", "tags": ["#twitter", "#ifttt", "#naas_drivers", "#snippet", "#content", "#dataframe"], "author": "Dineshkumar Sundaram", "author_url": "https://github.com/dineshh912", "updated_at": "2023-04-12", "created_at": "2021-09-29", "description": "This notebook allows users to search and retrieve tweets from Twitter.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_tweets_from_search.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_tweets_from_search.ipynb", "imports": ["tweepy", "pandas"], "image_url": ""}, {"objectID": "4414785952831aae6f4b0f2ac5664a5fe233cf83950b1b06ed30e869c59efbfb", "tool": "Twitter", "notebook": "Get tweets stats from profile", "action": "", "tags": ["#twitter", "#tweets", "#scrap", "#snippet", "#content", "#dataframe"], "author": "Tannia Dubon", "author_url": "https://www.linkedin.com/in/tanniadubon/", "updated_at": "2023-04-12", "created_at": "2021-12-27", "description": "This notebook allows users to retrieve and analyze statistics from a Twitter profile.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_tweets_stats_from_profile.ipynb", "imports": ["os", "re", "pandas"], "image_url": ""}, {"objectID": "ebea8c3910c8f62394c5ff6901940b5e54a520d9531e84a90d22b61c23a8be00", "tool": "Twitter", "notebook": "Get user data", "action": "", "tags": ["#twitter", "#ifttt", "#naas_drivers", "#snippet", "#content", "#dataframe"], "author": "Dineshkumar Sundaram", "author_url": "https://github.com/dineshh912", "updated_at": "2023-04-12", "created_at": "2021-09-29", "description": "This notebook provides a way to access and analyze data from Twitter users.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Get_user_data.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Get_user_data.ipynb", "imports": ["tweepy", "pandas"], "image_url": ""}, {"objectID": "dfd78b97b964be28292a8cf054deb633939e1af86deb1831414ef29b59722f8f", "tool": "Twitter", "notebook": "Post text and image", "action": "", "tags": ["#twitter", "#ifttt", "#naas_drivers", "#snippet", "#content"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook allows users to post text and images to their Twitter account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Post_text_and_image.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Post_text_and_image.ipynb", "imports": ["naas", "naas_drivers"], "image_url": ""}, {"objectID": "d3bc43603e97ccc16cae1bc8045699ce7340ce42c481cd1502c91450da209673", "tool": "Twitter", "notebook": "Remove member from list", "action": "", "tags": ["#twitter", "#tweepy", "#pandas", "#twitterautomation", "#twitterlistmembers", "#snippet"], "author": "Kaushal Krishna", "author_url": "https://www.linkedin.com/in/kaushal-krishna-a48959153", "updated_at": "2023-04-12", "created_at": "2023-01-20", "description": "This notebook removes a single member from member list.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Remove_member_from_list.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Remove_member_from_list.ipynb", "imports": ["tweepy", "pandas", "naas"], "image_url": ""}, {"objectID": "f613ea52f869a50913e79cc1bf1af68d3f31d6ca2f3cd5af1c1d77cdaa48ba50", "tool": "Twitter", "notebook": "Schedule posts", "action": "", "tags": ["#twitter", "#automation", "#ifttt", "#naas_drivers", "#gsheet", "#content"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook allows you to plan and schedule posts to your Twitter account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Schedule_posts.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Schedule_posts.ipynb", "imports": ["datetime.datetime", "naas_drivers", "naas"], "image_url": ""}, {"objectID": "49bb50d18a5fbfeb26b133b99b0f52e247e3ff104935fe78c1b7aad18334c7ff", "tool": "Twitter", "notebook": "Send posts stats to Notion", "action": "", "tags": ["#twitter", "#post", "#comments", "#naas_drivers", "#snippet", "#content", "#notion"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maixmejublou", "updated_at": "2023-04-12", "created_at": "2022-06-09", "description": "This notebook allows you to track and analyze your Twitter posts and send the stats to Notion for further analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Twitter/Twitter_Send_posts_stats_to_Notion.ipynb", "imports": ["naas", "naas_drivers.notion", "re", "regex", "numpy.inf", "emoji", "emoji", "tweepy", "pandas", "json", "typing.List", "datetime", "pydash"], "image_url": ""}, {"objectID": "a02d4dd206c67190a9b400df37c1a99e3f8213b2108561f054f3d2707589f920", "tool": "Typeform", "notebook": "Log New Entries In Notion Databases", "action": "", "tags": ["#typeform", "#notion", "#operations", "#automation"], "author": "Sanjeet Attili", "author_url": "https://billowy-lemming-95e.notion.site/f8e44ff261564c76b3bb80e6edb171a9?v=1d2a506563fe4082b71e78695185962e, which has all the questions asked in the typeform as column names and their responses as entries.\n\nThis output database consists of only 5 responses collected over the sample typeform.", "updated_at": "2023-04-12", "created_at": "2022-03-31", "description": "## Input", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Typeform/Typeform_Log_New_Typeform_Entries_In_Notion_Databases.ipynb", "imports": ["naas_drivers.notion", "typeform.Typeform", "naas, pandas", "requests", "datetime.datetime", "pydash"], "image_url": ""}, {"objectID": "34d7d038a426cecb7dc11a0dbedab7b790e8494adc94264826f3259f8979e919", "tool": "US Bureau of Labor Statistics", "notebook": "Follow CPI", "action": "", "tags": ["#inflation", "#us", "#BLS", "#naas", "#scheduler", "#asset", "#snippet", "#automation", "#ai", "#analytics"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/j%C3%A9r%C3%A9my-ravenel-8a396910/", "updated_at": "2023-04-12", "created_at": "2022-07-16", "description": "This notebook provides an analysis of the US Bureau of Labor Statistics Consumer Price Index (CPI) over time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/US%20Bureau%20of%20Labor%20Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/US%20Bureau%20of%20Labor%20Statistics/US_Bureau_of_Labor_Statistics_Follow_CPI.ipynb", "imports": ["pandas", "cpi", "seaborn", "matplotlib.pyplot", "naas", "naas_drivers.plotly"], "image_url": ""}, {"objectID": "a83d4ed0c1d03a2da02745a16b4d98f9d5cc99d5c0130126ecd8d4f24961496f", "tool": "Vizzu", "notebook": "Create Animated Bar Chart", "action": "", "tags": ["#vizzu", "#animation", "#bar-chart", "#data-visualization", "#data-science", "#python"], "author": "Alexandre Petit", "author_url": "https://www.linkedin.com/in/alexandre-petit-24a87a219/", "updated_at": "2023-04-25", "created_at": "2023-04-18", "description": "This notebook would allow you to create an animated bar chart. It will show the oil production evolution by country year after year.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Animated_Bar_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget"], "image_url": ""}, {"objectID": "6a458ee798291f3b3f7887e81b2068fe7be5b41fb8db37d7dcffcef94f1bb500", "tool": "Vizzu", "notebook": "Create Animated Pie Chart", "action": "", "tags": ["#vizzu", "#animation", "#piechart", "#data", "#visualization", "#python"], "author": "Alexandre Petit", "author_url": "https://www.linkedin.com/in/alexandre-petit-24a87a219/", "updated_at": "2023-05-10", "created_at": "2023-04-25", "description": "This notebook will show how to create an animated pie chart with Vizzu. An animated pie chart can be useful for visualizing changes or transitions in categorical data over time.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Animated_Pie_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget", "ipyvizzu.Chart, Data, Config, Style, DisplayTarget"], "image_url": ""}, {"objectID": "830f9c8e609c3df8a57c70b327d9eb459a1082c8a588947645d08c7b6b1b6868", "tool": "Vizzu", "notebook": "Create Column Chart", "action": "", "tags": ["#vizzu", "#analytics", "#dataviz", "#chart", "#graph", "#columnchart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-27", "description": "This notebook template on Vizzu is designed to help users create visually appealing column charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Column_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Column_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "image_url": ""}, {"objectID": "34436bb48b9455e15c60d687a2bb79c6e277c4a938966a5d87c5be2467bb22b2", "tool": "Vizzu", "notebook": "Create Grouped Column Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#groupedbarchart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-27", "description": "This notebook template on Vizzu is designed to help users create visually appealing grouped column charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Grouped_Column_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "image_url": ""}, {"objectID": "9f4adb5f22c3959ac5b2c8004c963c98ea745b2d837e59960fc685f3844ca005", "tool": "Vizzu", "notebook": "Create Line Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#waterfallChart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-03", "description": "This notebook template on Vizzu is designed to help users create visually appealing line charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Line_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Line_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "image_url": ""}, {"objectID": "cc379f1a45e8d669d37d8156179c77eb989a3aad869dae103093651aedb99c62", "tool": "Vizzu", "notebook": "Create Stacked Column Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#stackedbarchart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2023-03-27", "description": "This notebook template on Vizzu is designed to help users create visually appealing stacked column charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Stacked_Column_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "image_url": ""}, {"objectID": "c7522a696b863bf686badace2757c296a18d213491ddc905ae5edd1c2c547da6", "tool": "Vizzu", "notebook": "Create Waterfall Chart", "action": "", "tags": ["#analytics", "#dataviz", "#chart", "#graph", "#waterfallChart"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-03", "description": "This notebook template on Vizzu is designed to help users create visually appealing waterfall charts. Vizzu is a powerful data visualization tool that allows users to easily create interactive and engaging charts and graphs", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Vizzu/Vizzu_Create_Waterfall_Chart.ipynb", "imports": ["naas", "pandas", "ipyvizzu.Chart, Data, Config, Style", "ipyvizzu.Chart, Data, Config, Style"], "image_url": ""}, {"objectID": "78e0951d9b24d4a7bccd167a4af767b31a9916c4adbbdba076453909d87a7484", "tool": "WAQI", "notebook": "Display AQI on worldmap", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#stations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook displays AQI on worldmap.
\n\nAir Quality Index Scale:\n- 0 - 50: Good - Air quality is considered satisfactory, and air pollution poses little or no risk\n- 51 - 100: Moderate - Air quality is acceptable; however, for some pollutants there may be a moderate health concern for a very small number of people who are unusually sensitive to air pollution.\n- 101-150: Unhealthy for Sensitive Groups - Members of sensitive groups may experience health effects. The general public is not likely to be affected.\n- 151-200: Unhealthy - Everyone may begin to experience health effects; members of sensitive groups may experience more serious health effects.\n- 201-300: Very Unhealthy - Health warnings of emergency conditions. The entire population is more likely to be affected.\n- 300+: Hazardous - Health alert: everyone may experience more serious health effects.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Display_AQI_on_worldmap.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Display_AQI_on_worldmap.ipynb", "imports": ["requests", "naas", "pandas", "plotly.express"], "image_url": ""}, {"objectID": "1b1d23da1ea44c9fb55dfe63eddcbee38236d37467a51606381cfd20353906f4", "tool": "WAQI", "notebook": "Get daily air quality data by coordinates", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#python"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook will demonstrate how to use the WAQI API to get daily air quality data for a city.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Get_daily_air_quality_data_by_coordinates.ipynb", "imports": ["requests", "naas", "pydash", "pprint.pprint"], "image_url": ""}, {"objectID": "71f15185e22b83a858312830275117c8f7e91e307ceb5b7d28a70d0629d73c63", "tool": "WAQI", "notebook": "Get daily air quality data for a city", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#python"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/jeremyravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook will demonstrate how to use the WAQI API to get daily air quality data for a city.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Get_daily_air_quality_data_for_a_city.ipynb", "imports": ["requests", "naas", "pydash", "pprint.pprint"], "image_url": ""}, {"objectID": "17d2397824593cc21b5d523eadcb2da7822e926c5cc0a4109deae7542ff97df7", "tool": "WAQI", "notebook": "Get stations by coordinates", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#stations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook will demonstrate how to get stations within a given lat/lng bounds.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Get_stations_by_coordinates.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Get_stations_by_coordinates.ipynb", "imports": ["requests", "naas", "pandas", "plotly.express"], "image_url": ""}, {"objectID": "3d0747d79e0168df75adfc3ed3b500e5308bda1d114f932c5972004833cef961", "tool": "WAQI", "notebook": "Search station by name", "action": "", "tags": ["#waqi", "#airquality", "#api", "#data", "#city", "#python", "#stations"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-04-04", "description": "This notebook will demonstrate how to search stations by name using AQI API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WAQI/WAQI_Search_station_by_name.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WAQI/WAQI_Search_station_by_name.ipynb", "imports": ["requests", "naas", "pandas"], "image_url": ""}, {"objectID": "7c5471bb20ca17ba8b8ca70d01df4a2b65aa88a1e0c7810949b9ae13d5735662", "tool": "WSR", "notebook": "WHI Create indicator", "action": "", "tags": ["#wsr", "#whi", "#indicators", "#opendata", "#worldsituationroom", "#analytics", "#dataframe", "#image"], "author": "Peter Turner", "author_url": "https://www.linkedin.com/in/peter-turner-0839aa116/", "updated_at": "2023-04-12", "created_at": "2022-03-10", "description": "This notebook creates an indicator to measure the performance of the WSR-WHI portfolio.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WSR/WHI_Create_indicator.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WSR/WHI_Create_indicator.ipynb", "imports": ["pandas", "PIL.Image, ImageDraw, ImageFont", "datetime.date"], "image_url": ""}, {"objectID": "cc4d4bf571af50f16896b07354de0083ff3fb16b3b12963460441fda9ea72ffe", "tool": "WSR", "notebook": "Get daily Covid19 active cases trend JHU", "action": "", "tags": ["#wsr", "#covid", "#active-cases", "#plotly", "#opendata", "#snippet"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-20", "description": "This notebook provides a daily trend of Covid19 active cases from the Johns Hopkins University (JHU) dataset.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WSR/WSR_Get_daily_Covid19_active_cases_trend_JHU.ipynb", "imports": ["pandas", "datetime.datetime", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "aab90eca5a5dad874fdf39c39fe60d29d579c385566f7156bea44d68c7d6f84b", "tool": "WSR", "notebook": "Get daily Covid19 active cases worldmap JHU", "action": "", "tags": ["#wsr", "#covid", "#active-cases", "#analytics", "#plotly", "#automation", "#naas", "#opendata", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-07", "description": "This notebook provides a daily world map of active Covid-19 cases based on data from the Johns Hopkins University.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WSR/WSR_Get_daily_Covid19_active_cases_worldmap_JHU.ipynb", "imports": ["pandas", "datetime.datetime", "dataprep.clean.clean_country", "dataprep.clean.clean_country", "plotly.graph_objects", "naas"], "image_url": ""}, {"objectID": "20d2d1915c03323426f0cc05b016a752a34555d15cd4f08ab70992b5c1b93ec4", "tool": "WhatsApp", "notebook": "Create heatmap of activities", "action": "", "tags": ["#whatsapp", "#naas_drivers", "#naas", "#visualisation", "#chatminers", "#heatmap"], "author": "Hamid Mukhtar", "author_url": "https://www.linkedin.com/in/mukhtar-hamid/", "updated_at": "2023-05-31", "created_at": "2023-05-31", "description": "This notebook creates a heatmap of your chat activities.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WhatsApp/WhatsApp_Create_heatmap_of_activities.ipynb", "imports": ["chatminer", "chatminer.chatparsers.WhatsAppParser", "chatminer.visualizations", "matplotlib.pyplot"], "image_url": ""}, {"objectID": "ec40932392f591f65891e1b562c477459f79dd9c603a6fec6aeb8a299504ba47", "tool": "WhatsApp", "notebook": "Transform chat txt to dataframe", "action": "", "tags": ["#python", "#pandas", "#regex", "#whatsapp", "#chats"], "author": "Mohit Singh", "author_url": "https://www.linkedin.com/in/mohwits/", "updated_at": "2023-05-31", "created_at": "2023-05-31", "description": "This notebook transforms your WhatsApp chat export from txt to a dataframe.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WhatsApp/WhatsApp_Transform_chat_txt_to_dataframe.ipynb", "imports": ["re", "pandas"], "image_url": ""}, {"objectID": "cbe5b94b80eae61d57207cec803c67f81a0575afcaed7275c80fc9d075f96727", "tool": "Wikipedia", "notebook": "List largest cities in the world", "action": "", "tags": ["#wikipedia", "#list", "#cities", "#largest", "#world", "#data"], "author": "Florent Ravenel", "author_url": "http://linkedin.com/in/florent-ravenel", "updated_at": "2023-04-12", "created_at": "2023-03-29", "description": "This notebook will show how to extract the list of the largest cities in the world using pandas.read_html() on Wikipedia.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Wikipedia/Wikipedia_List_largest_cities_in_the_world.ipynb", "imports": ["pandas"], "image_url": ""}, {"objectID": "4db4cd15f329e1e7b0c097969fed6832b0cb73eb417217b92a97760ed9346872", "tool": "WindsorAI", "notebook": "Create Dash app to query AP", "action": "", "tags": ["#tool", "#naas_drivers", "#naas", "#dash", "#marketing", "#automation", "#ai", "#analytics"], "author": "Elia Dabbas", "author_url": "https://www.linkedin.com/in/eliasdabbas/", "updated_at": "2023-04-12", "created_at": "2022-11-07", "description": "This notebook enable anyone with a [Windsor.ai](https://windsor.ai/) account to visualy query the API with a Dash app.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WindsorAI/WindsorAI_Create_Dash_app_to_query_AP.ipynb", "imports": ["json", "os", "requests", "pandas", "plotly.express", "dash.Dash, html, dcc, Input, Output, State, callback", "dash.dash_table.DataTable", "dash.exceptions.PreventUpdate", "jupyter_dash.JupyterDash", "dash_bootstrap_components", "dash_bootstrap_templates.load_figure_template"], "image_url": ""}, {"objectID": "193771e0df5a14495539f0f8a08b45fd29dedf23a589f38b21a52cda9ef2c528", "tool": "WorldBank", "notebook": "GDP contributors", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides an analysis of the countries and sectors that contribute the most to the World Bank's Gross Domestic Product (GDP).", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_GDP_contributors.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_GDP_contributors.ipynb", "imports": ["pandas", "pandas_datareader.wb", "plotly.graph_objects"], "image_url": ""}, {"objectID": "24fff5750f4dca229fa7019f91ec0b2298e646b23ee6db1ee2cbafc7ee510970", "tool": "WorldBank", "notebook": "GDP per capita and growth", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-04-14", "description": "This notebook provides an analysis of GDP per capita and growth data from the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_GDP_per_capita_and_growth.ipynb", "imports": ["pandas", "numpy", "plotly.graph_objects", "pandas_datareader.wb", "naas_drivers.plotly"], "image_url": ""}, {"objectID": "56e6d83b1d5575e03cc57cf51cadc47b507a8be1e7159034e124b79ed8d3484d", "tool": "WorldBank", "notebook": "GDP per country and evolution", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "Objective : allows to visualize the distribution of GDP per capita and the GDP growth in the world. Click on the country on the map or select it to see the details info\n\nData :\nGDP PER CAPITA (CURRENT US$)\nGDP GROWTH (ANNUAL %)\n\nby countries, agregated by region\n\nSources:\n\nWorld Bank national accounts data,\nOECD National Accounts data files.\n\n\nProduction : Team Denver 2020/04/20 (MyDigitalSchool)", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_GDP_per_country_and_evolution.ipynb", "imports": ["pandas", "numpy", "plotly.graph_objects", "pandas_datareader.wb"], "image_url": ""}, {"objectID": "5bcd4bf5d4a562d15a90cc3079592749caa8cee07e3fc286953f7852b80f2daf", "tool": "WorldBank", "notebook": "Gini index", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides an analysis of the Gini index, a measure of income inequality, from the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_Gini_index.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_Gini_index.ipynb", "imports": ["pandas", "pandas_datareader.wb", "plotly.graph_objects", "plotly.express"], "image_url": ""}, {"objectID": "9eff7cf860c115ac4cd5b982a41c4d7b8702252d797d1a3b2f40c5a45d1f01ab", "tool": "WorldBank", "notebook": "Most populated countries", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly", "#matplotlib"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "**Notebook d'exemple pour classer les pays les plus peupl\u00e9s**", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_Most_populated_countries.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_Most_populated_countries.ipynb", "imports": ["pandas", "matplotlib.pyplot", "requests", "io", "numpy", "plotly.graph_objects", "plotly.express", "pydrive.auth.GoogleAuth", "pydrive.drive.GoogleDrive", "google.colab.auth", "oauth2client.client.GoogleCredentials", "pandas.DataFrame", "plotly.graph_objects"], "image_url": ""}, {"objectID": "8b8c44156453589069394ba1341397036c04752815f24e4b25755a89994eefd5", "tool": "WorldBank", "notebook": "Richest countries top10", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides a comparison of the top 10 wealthiest countries in the world according to the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_Richest_countries_top10.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_Richest_countries_top10.ipynb", "imports": ["pandas", "pandas_datareader.wb", "plotly.graph_objects"], "image_url": ""}, {"objectID": "a21ffefc3ea5fbec9b0555ed60b73a5fc6e516ff98c5bb53dcf085114f512c6b", "tool": "WorldBank", "notebook": "World employment by sector", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "**Objective**\n\nThis graph compares the world distribution of employment by sector with the country distribution. Select the country to visualize which sector is dominant.\n\nData\nby countries, by region\n\nSource\nInternational Labour Organization, ILOSTAT database.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_World_employment_by_sector.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_World_employment_by_sector.ipynb", "imports": ["math", "pandas", "datetime.datetime", "plotly.offline.iplot, plot, download_plotlyjs, init_notebook_mode", "plotly.graph_objects", "plotly.subplots.make_subplots"], "image_url": ""}, {"objectID": "115506753040f989d986e2a3e2f5e36b8bbe12f26be33950b4f3fd46d6334ab7", "tool": "WorldBank", "notebook": "World population and density", "action": "", "tags": ["#worldbank", "#opendata", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook provides an analysis of the world population and population density data from the World Bank.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/WorldBank/WorldBank_World_population_and_density.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/WorldBank/WorldBank_World_population_and_density.ipynb", "imports": ["pandas", "numpy", "plotly.express"], "image_url": ""}, {"objectID": "0483468fa84c29572e8b9a896e59fad9278a3d1b600646b604c19328fde51ea1", "tool": "Worldometer", "notebook": "World population evolution and projections", "action": "", "tags": ["#worldometer", "#opendata", "#population", "#snippet", "#plotly"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-05-05", "description": "This notebook provides an overview of the current and projected population of the world, as tracked by Worldometer.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Worldometer/Worldometer_World_population_evolution_and_projections.ipynb", "imports": ["pandas", "plotly.express", "bs4.BeautifulSoup", "requests"], "image_url": ""}, {"objectID": "d53fcc695712505d6f768a768aaafc0bd1e79a5046278e1248620ddf40433a96", "tool": "XGBoost", "notebook": "Binary classification example with hyper-parameters optimization", "action": "", "tags": ["#xgboost", "#snippet", "#classification", "#tabular", "#cross-validation", "#optimization", "#modeling"], "author": "Oussama El Bahaoui", "author_url": "https://www.linkedin.com/in/oelbahaoui/", "updated_at": "2023-04-12", "created_at": "2022-11-02", "description": "This notebook provides an example of using XGBoost to perform binary classification with hyper-parameter optimization.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/XGBoost/XGBoost_Binary_classification_example_with_hyper-parameters_optimization.ipynb", "imports": ["pandas", "sklearn.datasets.load_breast_cancer", "sklearn.model_selection.train_test_split", "sklearn.model_selection.GridSearchCV", "sklearn.metrics.accuracy_score", "xgboost.XGBClassifier", "xgboost.Booster, DMatrix"], "image_url": ""}, {"objectID": "495b6a709d9e2db6eca221adee7ec474d35a3b288156890ae1de6f6ee4a07f92", "tool": "XML", "notebook": "Transform sitemap to dataframe", "action": "", "tags": ["#xml", "#file", "#tool", "#operations", "#automation", "#dataframe"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook demonstrates how to convert an XML sitemap into a dataframe for further analysis.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/XML/XML_Transform_sitemap_to_dataframe.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/XML/XML_Transform_sitemap_to_dataframe.ipynb", "imports": ["naas", "json", "xmltodict", "xmltodict", "pandas", "requests"], "image_url": ""}, {"objectID": "a898dc1a3589c789666fbcc6e4c8c13fbabeba4972e66345fa8ce99f66167ca4", "tool": "YahooFinance", "notebook": "Candlestick chart", "action": "", "tags": ["#yahoofinance", "#trading", "#yfin", "#investors", "#snippet", "#plotly"], "author": "Carlo Occhiena", "author_url": "https://www.linkedin.com/in/carloocchiena/", "updated_at": "2023-04-12", "created_at": "2022-02-15", "description": "This notebook provides a visual representation of stock market data using a candlestick chart from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Candlestick_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Candlestick_chart.ipynb", "imports": ["datetime", "pandas_datareader", "mplfinance", "mplfinance", "yfinance", "yfinance"], "image_url": ""}, {"objectID": "dbcda358b6ff27edb6f4b4b3a38e00714efe3a2137bf3e9210e0d24d0b8629d5", "tool": "YahooFinance", "notebook": "Cryptocurrencies heatmap correlation graph", "action": "", "tags": ["#yahoofinance", "#cryptocurrency", "#eth", "#btc", "#heatmap", "#finance", "#trading", "#investors", "#snippet", "#matplotlib"], "author": "Carlo Occhiena", "author_url": "https://www.linkedin.com/in/carloocchiena/", "updated_at": "2023-04-12", "created_at": "2022-02-15", "description": "This notebook provides a graphical representation of the correlation between different cryptocurrencies using a heatmap from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Cryptocurrencies_heatmap_correlation_graph.ipynb", "imports": ["datetime", "matplotlib.pyplot", "seaborn", "seaborn", "yfinance", "yfinance"], "image_url": ""}, {"objectID": "7c08faa1a4fa6c75084204d90c6879159bb412b0ce01e9b97d266d2ecacbac6a", "tool": "YahooFinance", "notebook": "Display chart from ticker", "action": "", "tags": ["#yahoofinance", "#trading", "#plotly", "#naas_drivers", "#investors", "#snippet", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-11-22", "description": "This notebook provides a graphical representation of stock market data from a given ticker symbol using the YahooFinance API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Display_chart_from_ticker.ipynb", "imports": ["naas_drivers.yahoofinance, plotly"], "image_url": ""}, {"objectID": "1f6fb2f8e71d845ac2e577bfd652de2c88017889251c387d91c687840505a839", "tool": "YahooFinance", "notebook": "Find the stock with closest performance using KNN", "action": "", "tags": ["#tool", "#naas_drivers", "#naas", "#scheduler", "#asset", "#snippet", "#automation", "#ai", "#analytics", "#yahoo", "#clustering", "#stocks"], "author": "Abhinav Lakhani", "author_url": "https://www.linkedin.com/in/abhinav-lakhani/", "updated_at": "2023-04-12", "created_at": "2022-06-23", "description": "This notebook uses KNN to find the stock with the most similar performance to a given stock from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Find_the_stock_with_closest_performance_using_KNN.ipynb", "imports": ["naas_drivers.yahoofinance", "naas", "pylab.plot, show", "numpy.vstack, array", "numpy.random.rand", "numpy", "scipy.cluster.vq.kmeans, vq", "pandas", "math.sqrt", "sklearn.cluster.KMeans", "matplotlib.pyplot"], "image_url": ""}, {"objectID": "e4faa959f82ec8398c2290f27c0a1297a4d02d32981e982ced4d1aa2fa89efc7", "tool": "YahooFinance", "notebook": "Get Brent Crude Oil trend and predictions", "action": "", "tags": ["#commodities", "#energy", "#petrol", "#oil", "#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#naas_drivers", "#notification", "#naas", "#investors", "#automation", "#analytics", "#ai", "#html", "#image"], "author": "Ayoub Berdeddouch", "author_url": "https://www.linkedin.com/in/ayoub-berdeddouch/", "updated_at": "2023-04-12", "created_at": "2022-11-03", "description": "This notebook provides an analysis of the current trend and predictions for Brent Crude Oil prices using data from YahooFinance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_Brent_Crude_Oil_trend_and_predictions.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly", "plotly.graph_objects", "markdown2", "datetime.datetime", "IPython.core.display.display, HTML"], "image_url": ""}, {"objectID": "9452ee3b76b3da57b58787412419b2f1bb939f7830d1114e8e84a9ea739da137", "tool": "YahooFinance", "notebook": "Get Stock Update", "action": "", "tags": ["#yahoofinance", "#usdinr", "#plotly", "#investors", "#analytics", "#automation"], "author": "Megha Gupta", "author_url": "https://github.com/megha2907", "updated_at": "2023-04-12", "created_at": "2022-01-27", "description": "This notebook provides a convenient way to access up-to-date stock information from Yahoo Finance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_Stock_Update.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_Stock_Update.ipynb", "imports": ["naas", "naas_drivers.yahoofinance, plotly", "markdown2", "IPython.display.Markdown", "naas"], "image_url": ""}, {"objectID": "5296f754c8c0b510e03f2bff45b3f988f676c51e6e82fe4b042cb712b99ae73c", "tool": "YahooFinance", "notebook": "Get USDEUR data and chart", "action": "", "tags": ["#yahoofinance", "#trading", "#plotly", "#naas_drivers", "#investors", "#analytics"], "author": "Carlo Occhiena", "author_url": "https://www.linkedin.com/in/carloocchiena/", "updated_at": "2023-04-12", "created_at": "2022-02-08", "description": "This notebook provides a way to access and visualize the current exchange rate between the US Dollar and the Euro.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_USDEUR_data_and_chart.ipynb", "imports": ["naas_drivers.yahoofinance, plotly"], "image_url": ""}, {"objectID": "c56ffadc687c98b7845b537fb4fffb768d7e122a3fee299688159595acda7bf3", "tool": "YahooFinance", "notebook": "Get data from ticker", "action": "", "tags": ["#yahoofinance", "#trading", "#naas_drivers", "#investors", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-06-14", "created_at": "2021-11-22", "description": "This notebook provides a way to access financial data from a given ticker symbol using the YahooFinance API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Get_data_from_ticker.ipynb", "imports": ["naas_drivers.yahoofinance"], "image_url": ""}, {"objectID": "705946d5a30b03afbb6b0aa8cafddce513528727663b25c55d30c2870407c02c", "tool": "YahooFinance", "notebook": "Send daily prediction to Email", "action": "", "tags": ["#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#slack", "#naas_drivers", "#notification", "#naas", "#investors", "#automation", "#analytics", "#email", "#html", "#image"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-12-02", "description": "This notebook sends daily predictions from YahooFinance to an email address.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Email.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly", "markdown2", "datetime.datetime", "IPython.core.display.display, HTML"], "image_url": ""}, {"objectID": "ec092922ecd04f252b65058b599ac56f50a0cc7abccc6cb2b8942b9a3fba465b", "tool": "YahooFinance", "notebook": "Send daily prediction to Notion", "action": "", "tags": ["#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#slack", "#naas_drivers", "#scheduler", "#notification", "#asset", "#webhook", "#dependency", "#naas", "#investors", "#automation", "#analytics", "#html", "#image", "#notion"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2022-05-06", "description": "This notebook sends daily stock market predictions from YahooFinance to Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Notion.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly, notion", "datetime.datetime", "naas_drivers.tools.notion.Link, BlockEmbed", "pytz"], "image_url": ""}, {"objectID": "e56f3194ca88ec903b95cb38754d2c16cce3da81e9a7583bd206ff177083020c", "tool": "YahooFinance", "notebook": "Send daily prediction to Slack", "action": "", "tags": ["#yahoofinance", "#trading", "#markdown", "#prediction", "#plotly", "#slack", "#naas_drivers", "#scheduler", "#naas", "#investors", "#automation", "#analytics"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2021-09-16", "description": "This notebook sends daily stock market predictions from YahooFinance to Slack.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YahooFinance/YahooFinance_Send_daily_prediction_to_Slack.ipynb", "imports": ["naas", "naas_drivers.prediction, yahoofinance, plotly, slack", "markdown2", "datetime.datetime", "naas"], "image_url": ""}, {"objectID": "2ded78b09046383b0f26f14bae6ea2b48834e06dc5f192d334ad9a604a24ac2f", "tool": "YouTube", "notebook": "Download video", "action": "", "tags": ["#youtube", "#download", "#video", "#content", "#snippet", "#naas"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-06-03", "created_at": "2022-03-18", "description": "This notebook allows users to download videos from YouTube.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Download_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Download_video.ipynb", "imports": ["pytube.YouTube", "pytube.YouTube"], "image_url": ""}, {"objectID": "da5c2903e57893dad62f8502805f51e26481cd2488d6c8dbd122e2db4b23f38e", "tool": "YouTube", "notebook": "Extract and summarize transcript", "action": "", "tags": ["#youtube", "#transcript", "#video", "#summarize", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a method to extract and summarize the transcript of a YouTube video.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Extract_and_summarize_transcript.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Extract_and_summarize_transcript.ipynb", "imports": ["youtube_transcript_api.YouTubeTranscriptApi", "naas_drivers.huggingface"], "image_url": ""}, {"objectID": "dee84b001ccaccc3f883887549c5cd1c875c53528fac1004ffc8fbdcf0fb6c03", "tool": "YouTube", "notebook": "Extract transcript from video", "action": "", "tags": ["#youtube", "#transcript", "#video", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a guide to extracting transcripts from YouTube videos.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Extract_transcript_from_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Extract_transcript_from_video.ipynb", "imports": ["pandas", "naas_drivers.youtube"], "image_url": ""}, {"objectID": "429ba3a376300f201bef648d8098ded0e3912f0d2c893732c709dea771746cca", "tool": "YouTube", "notebook": "Get statistics from channel", "action": "", "tags": ["#youtube", "#channel", "#statistics", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a way to access and analyze data from a YouTube channel to gain insights into its performance.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Get_statistics_from_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Get_statistics_from_channel.ipynb", "imports": ["naas", "naas_drivers.youtube"], "image_url": ""}, {"objectID": "0aa4588cbaaf7815d2de3c8fcec9b1bb0641760a255998dc86a3c5e8e4c9739f", "tool": "YouTube", "notebook": "Get statistics from video", "action": "", "tags": ["#youtube", "#video", "#statistics", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a way to get detailed statistics from YouTube videos.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Get_statistics_from_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Get_statistics_from_video.ipynb", "imports": ["naas", "naas_drivers.youtube"], "image_url": ""}, {"objectID": "8776b7a1311600362f191c19e9610009af2567a3a84141c76365b95eadef593d", "tool": "YouTube", "notebook": "Get uploads from channel", "action": "", "tags": ["#youtube", "#channel", "#videos", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook allows you to retrieve all the videos uploaded to a specific YouTube channel.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Get_uploads_from_channel.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Get_uploads_from_channel.ipynb", "imports": ["naas", "naas_drivers.youtube"], "image_url": ""}, {"objectID": "6d4cc03eb6e8b18900cb63af0ab5a97cd17be85547cff41eb2a6e32d95a78b8f", "tool": "YouTube", "notebook": "Send track to Spotify", "action": "", "tags": ["#youtube", "#spotify", "#snippet"], "author": "Josef", "author_url": "https://www.linkedin.com/in/joseftrchalik/", "updated_at": "2023-04-12", "created_at": "2022-06-03", "description": "This notebook allows users to easily send tracks from YouTube to their Spotify account.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Send_track_to_Spotify.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Send_track_to_Spotify.ipynb", "imports": ["spotipy", "spotipy", "spotipy.util", "spotipy.oauth2.SpotifyClientCredentials", "spotipy.SpotifyOAuth", "youtube_dl", "youtube_dl", "google_auth_oauthlib.flow", "google_auth_oauthlib.flow", "googleapiclient.discovery", "googleapiclient.errors", "googleapiclient.discovery", "googleapiclient.errors", "requests, json, os, re, time", "urllib.parse.parse_qs, urlparse", "subprocess.Popen, PIPE", "signal.SIGTERM, SIGKILL", "ant information"], "image_url": ""}, {"objectID": "fd09a21e12b5b8e8d4792169756d6cedf4d8dcc08c7c317062acdadd85f545a8", "tool": "YouTube", "notebook": "Send video stats to Notion", "action": "", "tags": ["#youtube", "#video", "#statistics", "#naas_drivers", "#content", "#snippet", "#dataframe"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2022-06-07", "description": "This notebook allows you to easily track and analyze your YouTube video performance by automatically sending video stats to Notion.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Send_video_stats_to_Notion.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Send_video_stats_to_Notion.ipynb", "imports": ["naas", "naas_drivers.youtube, notion", "pandas", "pydash", "re", "regex", "emoji", "emoji"], "image_url": ""}, {"objectID": "b451c356f8536123376b8e3ed3e9841ff3ad49a0ad1eb9577952270b63e6e15b", "tool": "YouTube", "notebook": "Summarize video", "action": "", "tags": ["#youtube", "#transcript", "#video", "#npl", "#naas_drivers", "#content", "#snippet", "#text"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/ACoAABCNSioBW3YZHc2lBHVG0E_TXYWitQkmwog/", "updated_at": "2023-04-12", "created_at": "2022-03-18", "description": "This notebook provides a summary of a YouTube video, allowing users to quickly understand the content of the video.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/YouTube/YouTube_Summarize_video.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/YouTube/YouTube_Summarize_video.ipynb", "imports": ["naas_drivers.youtube"], "image_url": ""}, {"objectID": "e62887290cc7a4c0b82ec67c82df44f9f6236be9992da26426b64649630170c0", "tool": "ZIP", "notebook": "Extract files", "action": "", "tags": ["#zip", "#extract", "#file", "#operations", "#snippet", "#naas"], "author": "Maxime Jublou", "author_url": "https://www.linkedin.com/in/maximejublou", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook allows users to extract files from a ZIP archive.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/ZIP/ZIP_Extract_files.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/ZIP/ZIP_Extract_files.ipynb", "imports": ["zipfile", "os", "pprint.pprint"], "image_url": ""}, {"objectID": "86607d1e05a7be9ceac61f0f3b044a650e57614b93b448afc38002e40ae92ade", "tool": "Zapier", "notebook": "Trigger workflow", "action": "", "tags": ["#zapier", "#nocode", "#operations", "#snippet"], "author": "Jeremy Ravenel", "author_url": "https://www.linkedin.com/in/ACoAAAJHE7sB5OxuKHuzguZ9L6lfDHqw--cdnJg/", "updated_at": "2023-04-12", "created_at": "2021-03-01", "description": "This notebook allows you to create automated workflows that are triggered by specific events.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/Zapier/Zapier_Trigger_workflow.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/Zapier/Zapier_Trigger_workflow.ipynb", "imports": ["naas_drivers"], "image_url": ""}, {"objectID": "1a4862f36ffb7a7c2766294894d690900fe245a354ba9b805fde9d40460f92c9", "tool": "ZeroBounce", "notebook": "Validate Single Email", "action": "", "tags": ["#zerobounce", "#email", "#validation", "#java", "#sdk", "#setup"], "author": "Florent Ravenel", "author_url": "https://www.linkedin.com/in/florent-ravenel/", "updated_at": "2023-04-12", "created_at": "2023-02-27", "description": "This notebook will demonstrate how to validate a single email address using ZeroBounce API.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/ZeroBounce/ZeroBounce_Validate_Single_Email.ipynb", "imports": ["requests", "naas", "pprint.pprint"], "image_url": ""}, {"objectID": "9393d951ab135f69cd1aadae8c73b1974891c6586136f3e62aa631501ed53fab", "tool": "gTTS", "notebook": "Save Text to Speech to MP3", "action": "", "tags": ["#gTTS", "#texttospeech", "#mp3", "#python", "#library", "#audio"], "author": "Sriniketh Jayasendil", "author_url": "http://linkedin.com/in/sriniketh-jayasendil/", "updated_at": "2023-04-12", "created_at": "2023-03-02", "description": "This notebook will demonstrate how to use the gTTS library to save text to speech as an MP3 file.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/gTTS/gTTS_Save_Text_to_Speech_to_MP3.ipynb", "imports": ["gtts.gTTS", "gtts.gTTS"], "image_url": ""}, {"objectID": "b296fdda5aa3884bc9a78e50364dd2532992013a7fb54012c2d9751aa4a5b15f", "tool": "spaCy", "notebook": "SpaCy Build a sentiment analysis model using Twitter", "action": "", "tags": ["#twitter", "#spaCy", "#data", "#nlp", "#sentiment", "#classification"], "author": "Tannia Dubon", "author_url": "https://www.linkedin.com/in/tanniadubon/", "updated_at": "2023-04-12", "created_at": "2022-05-12", "description": "This notebook demonstrates how to use spaCy to build a sentiment analysis model using Twitter data.", "open_in_lab": "https://app.naas.ai/user-redirect/naas/downloader?url=https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb", "open_in_chat": "", "notebook_url": "https://github.com/jupyter-naas/awesome-notebooks/blob/master/spaCy/SpaCy_Build_a_sentiment_analysis_model_using_Twitter.ipynb", "imports": ["os", "requests", "pandas", "json", "ast", "yaml", "numpy", "datetime.datetime, date", "matplotlib.pyplot", "matplotlib", "wordcloud.WordCloud, STOPWORDS, ImageColorGenerator", "re", "seaborn", "string", "warnings", "random", "spacy", "spacy.training.Example", "spacy.pipeline.textcat.DEFAULT_SINGLE_TEXTCAT_MODEL", "spacy.matcher.PhraseMatcher", "pathlib.Path"], "image_url": ""}] \ No newline at end of file diff --git a/update_notebook.ipynb b/update_notebook.ipynb deleted file mode 100644 index 99a85c5b76..0000000000 --- a/update_notebook.ipynb +++ /dev/null @@ -1,503 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "latin-packing", - "metadata": { - "execution": { - "iopub.execute_input": "2021-02-23T14:22:16.610471Z", - "iopub.status.busy": "2021-02-23T14:22:16.610129Z", - "iopub.status.idle": "2021-02-23T14:22:16.627784Z", - "shell.execute_reply": "2021-02-23T14:22:16.626866Z", - "shell.execute_reply.started": "2021-02-23T14:22:16.610384Z" - }, - "papermill": {}, - "tags": [] - }, - "source": [ - "\"Naas\"" - ] - }, - { - "cell_type": "markdown", - "id": "compressed-wilson", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "# Awesome Notebooks - Update\n", - "\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "religious-programmer", - "metadata": {}, - "source": [ - "**Tags:** #jupyter #awesome-notebooks" - ] - }, - { - "cell_type": "markdown", - "id": "1fe9f56e-561c-4f52-aef8-b861c9462107", - "metadata": {}, - "source": [ - "**Author:** [Florent Ravenel](https://www.linkedin.com/in/florent-ravenel/)" - ] - }, - { - "cell_type": "markdown", - "id": "2410f9fb-bab6-4840-8897-50ed511b5636", - "metadata": { - "execution": { - "iopub.execute_input": "2023-02-07T09:20:13.967175Z", - "iopub.status.busy": "2023-02-07T09:20:13.966946Z", - "iopub.status.idle": "2023-02-07T09:20:13.975072Z", - "shell.execute_reply": "2023-02-07T09:20:13.974190Z", - "shell.execute_reply.started": "2023-02-07T09:20:13.967152Z" - }, - "tags": [] - }, - "source": [ - "**Description:** This notebook update all notebooks in this repository based on specific rules." - ] - }, - { - "cell_type": "markdown", - "id": "distinguished-truth", - "metadata": { - "papermill": {}, - "tags": [] - }, - "source": [ - "## Input" - ] - }, - { - "cell_type": "markdown", - "id": "numeric-mediterranean", - "metadata": {}, - "source": [ - "### Import libraries" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "potential-surfing", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "import glob\n", - "import naas\n", - "import requests\n", - "import pandas as pd\n", - "from pprint import pprint\n", - "import json\n", - "try:\n", - " import openai\n", - "except:\n", - " !pip install openai --user\n", - " import openai\n", - "import uuid\n", - "import time\n", - "import subprocess\n", - "import re" - ] - }, - { - "cell_type": "markdown", - "id": "03342ab4-3fc9-4f44-bcda-0a42dbe00e06", - "metadata": {}, - "source": [ - "### Setup Variables" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "00eceaac-3b26-4997-a679-234905636c26", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "# Inputs\n", - "repo_url = \"https://github.com/jupyter-naas/awesome-notebooks\"\n", - "GITHUB_TOKEN = naas.secret.get(\"GITHUB_TOKEN\")\n", - "openai.api_key = naas.secret.get(name=\"OPENAI_API_KEY\") or \"ENTER_YOUR_OPENAI_API_KEY\"" - ] - }, - { - "cell_type": "markdown", - "id": "registered-showcase", - "metadata": {}, - "source": [ - "## Model" - ] - }, - { - "cell_type": "markdown", - "id": "6b3c7732-8e39-41d8-be47-4a2288c7d809", - "metadata": { - "execution": { - "iopub.execute_input": "2022-01-22T13:48:53.656270Z", - "iopub.status.busy": "2022-01-22T13:48:53.656043Z", - "iopub.status.idle": "2022-01-22T13:48:53.658818Z", - "shell.execute_reply": "2022-01-22T13:48:53.658211Z", - "shell.execute_reply.started": "2022-01-22T13:48:53.656247Z" - }, - "papermill": {}, - "tags": [] - }, - "source": [ - "### Get current notebooks from master branch" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e7982fe6-3105-493c-bda3-1887d6908f6c", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "def get_notebooks(commit_id):\n", - " notebooks = []\n", - " headers = {'Authorization': f'token {GITHUB_TOKEN}'}\n", - " url = f\"https://api.github.com/repos/jupyter-naas/awesome-notebooks/git/trees/{commit_id}?recursive=1\"\n", - " res = requests.get(url, headers=headers)\n", - " res.raise_for_status()\n", - " res_json = res.json()\n", - "\n", - " trees = res_json.get(\"tree\")\n", - " for file in trees:\n", - " if \".github\" not in file.get(\"path\") and \".gitignore\" not in file.get(\"path\") and \"/\" in file.get(\"path\"):\n", - " if file.get(\"path\").endswith(\".ipynb\"):\n", - " temp = file.get(\"path\").split(\"/\")\n", - " if temp == -1:\n", - " data = {\n", - " \"ROOT\": None,\n", - " \"SUBDIR\": file.get(\"path\"),\n", - " \"ID\": file.get(\"sha\"),\n", - " \"URL\": file.get(\"url\"),\n", - " }\n", - " notebooks.append(data)\n", - " else:\n", - " last_folder = \"\"\n", - " file_name = temp[-1]\n", - " temp.pop()\n", - " for folder in temp:\n", - " last_folder += \"/\" + folder\n", - " root = last_folder[1:]\n", - " data = {\n", - " \"ROOT\": root,\n", - " \"SUBDIR\": file_name,\n", - " \"ID\": file.get(\"sha\"),\n", - " \"URL\": file.get(\"url\"),\n", - " }\n", - " notebooks.append(data)\n", - " df = pd.DataFrame(notebooks)\n", - " df[\"CONTENT_URL\"] = \"https://raw.githubusercontent.com/jupyter-naas/awesome-notebooks/master/\" + df[\"ROOT\"] + \"/\" + df[\"SUBDIR\"]\n", - " df[\"GITHUB_URL\"] = (\"https://github.com/jupyter-naas/awesome-notebooks/blob/master/\" + df[\"ROOT\"] + \"/\" + df[\"SUBDIR\"]).str.replace(\" \", \"%20\")\n", - " return df\n", - "\n", - "df_notebooks = get_notebooks(\"master\")\n", - "print(\"-> Awesome Notebooks fecthed:\", len(df_notebooks))\n", - "df_notebooks.head(1)" - ] - }, - { - "cell_type": "markdown", - "id": "9b3f057c-c370-4abe-be5e-701690e93150", - "metadata": {}, - "source": [ - "### Get all notebooks in locals" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eee7e7d5-a5c0-4468-a604-44df9377585f", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "notebooks = sorted(glob.glob('*/*.ipynb', recursive=True))\n", - "print(\"-> Local Notebooks fecthed:\", len(notebooks))\n", - "notebooks[0]" - ] - }, - { - "cell_type": "markdown", - "id": "83e4bbb8-f730-4d17-99ed-c794a14ddf4b", - "metadata": {}, - "source": [ - "### Create notebook description" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "17eeac7e-1db2-43a7-b63c-4ec6d82c7212", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "def create_description(title):\n", - " # Create completion\n", - " response = openai.Completion.create(\n", - " model=\"text-davinci-003\",\n", - " prompt=f'Can you create a description for this notebook in one sentence: \"{title}\"',\n", - " temperature=0,\n", - " max_tokens=2084,\n", - " )\n", - "\n", - " # Extract the generated text\n", - " text = response[\"choices\"][0][\"text\"].strip()\n", - " \n", - " # Sleep\n", - " time.sleep(3)\n", - " return text\n", - "\n", - "# title = \"Excel - Apply Custom Styles\"\n", - "# create_description(title)" - ] - }, - { - "cell_type": "markdown", - "id": "tested-astrology", - "metadata": {}, - "source": [ - "### Update notebook" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "crude-louisville", - "metadata": { - "papermill": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "def update_notebook(notebook_path):\n", - " # Init \n", - " new_cells = []\n", - " \n", - " \n", - " # Open notebook\n", - " with open(notebook_path) as f:\n", - " nb = json.load(f)\n", - " \n", - " # Get all cellls\n", - " cells = nb.get(\"cells\")\n", - " \n", - " # Title\n", - " title = cells[1]\n", - " title_type = title.get(\"cell_type\")\n", - " title_source = title.get(\"source\")[0].replace(\"#\", \"\").strip()\n", - " \n", - " # Description\n", - " desc = cells[4]\n", - " desc_type = desc.get(\"cell_type\")\n", - " desc_source = desc.get(\"source\")\n", - " if isinstance(desc_source, list):\n", - " desc_source = desc_source[0]\n", - " \n", - " # ## Input\n", - " section_i = cells[5]\n", - " section_i_type = section_i.get(\"cell_type\")\n", - " section_i_source = section_i.get(\"source\")[0]\n", - " \n", - " # Check description\n", - " create_desc = False\n", - " rewrite_desc = False\n", - " if desc_type == \"markdown\" and desc_source == '## Input':\n", - " print(f\"Creating description: {title_source}\")\n", - " create_desc = True\n", - " description = create_description(title_source)\n", - " new_description = f\"**Description:** {description}\"\n", - " print(new_description)\n", - "\n", - " elif desc_type == \"markdown\" and not desc_source.startswith(\"**Description:**\") and (section_i_source == '## Input' or section_i_source.startswith(\"