From 7a71510ccac795bed946be33b6ae58c29c0b758f Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Wed, 13 Jul 2022 13:07:23 +0200 Subject: [PATCH] Remove scrapingh & fix broken links --- docs/examples/scibert/analyse.ipynb | 52 ++++----- docs/how-to-guides/scraping.ipynb | 104 ------------------ docs/reference/utilities.md | 10 +- great_ai/deploy/great_ai.py | 2 +- great_ai/tracing/add_ground_truth.py | 2 +- great_ai/utilities/get_sentences.py | 2 +- .../language/english_name_of_language.py | 2 +- great_ai/utilities/language/is_english.py | 2 +- mkdocs.yaml | 1 - 9 files changed, 31 insertions(+), 146 deletions(-) delete mode 100644 docs/how-to-guides/scraping.ipynb diff --git a/docs/examples/scibert/analyse.ipynb b/docs/examples/scibert/analyse.ipynb index 11d810b..ff6fccc 100644 --- a/docs/examples/scibert/analyse.ipynb +++ b/docs/examples/scibert/analyse.ipynb @@ -2,15 +2,15 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "annotations/data/evaluation-experiment-2-stage #1-sa6a0y.json\n", - "annotations/data/evaluation-experiment-2-stage #1-2m6dmb.json\n" + "data/evaluation-experiment-2-stage #1-sa6a0y.json\n", + "data/evaluation-experiment-2-stage #1-2m6dmb.json\n" ] } ], @@ -19,7 +19,7 @@ "import json\n", "\n", "annotations = []\n", - "for p in Path(\"annotations/data\").glob(\"*.json\"):\n", + "for p in Path(\"data\").glob(\"*.json\"):\n", " with open(p, encoding=\"utf-8\") as f:\n", " print(p)\n", " annotations.append(json.load(f))\n", @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -49,7 +49,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -58,7 +58,7 @@ "0.3546448712421808" ] }, - "execution_count": 3, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -71,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -81,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -99,7 +99,7 @@ " ('classifier', LinearSVC())])" ] }, - "execution_count": 5, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -125,16 +125,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([0.86, 0.74, 0.77, 0.84, 0.7 ])" + "array([0.81, 0.68, 0.73, 0.75, 0.81])" ] }, - "execution_count": 6, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -147,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -156,28 +156,18 @@ "text": [ " precision recall f1-score support\n", "\n", - " False 0.83 0.77 0.80 56\n", - " True 0.73 0.80 0.76 44\n", + " False 0.73 0.96 0.83 45\n", + " True 0.95 0.71 0.81 55\n", "\n", - " accuracy 0.78 100\n", - " macro avg 0.78 0.78 0.78 100\n", - "weighted avg 0.78 0.78 0.78 100\n", + " accuracy 0.82 100\n", + " macro avg 0.84 0.83 0.82 100\n", + "weighted avg 0.85 0.82 0.82 100\n", "\n" ] }, { "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -226,7 +216,7 @@ "orig_nbformat": 4, "vscode": { "interpreter": { - "hash": "590d04b986175369d2a3cfc6a3cb86687cb152d8a3ff3e5e61bf670e70f6d913" + "hash": "02dd6d3afbfa9fbbe1037d64ad9014965528a1ccad21929d6e72f466389a68ad" } } }, diff --git a/docs/how-to-guides/scraping.ipynb b/docs/how-to-guides/scraping.ipynb deleted file mode 100644 index 573dbc5..0000000 --- a/docs/how-to-guides/scraping.ipynb +++ /dev/null @@ -1,104 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import httpx\n", - "\n", - "transport = httpx.AsyncHTTPTransport(retries=2)\n", - "limits = httpx.Limits(max_connections=None)\n", - "timeout = httpx.Timeout(connect=60.0, read=300, write=60, pool=None)\n", - "async with httpx.AsyncClient(\n", - " transport=transport, limits=limits, timeout=timeout\n", - ") as client:\n", - " pass" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[38;5;226m2022-07-11 19:00:27 | WARNING | Environment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n", - "\u001b[38;5;226m2022-07-11 19:00:27 | WARNING | Cannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n", - "\u001b[38;5;226m2022-07-11 19:00:27 | WARNING | The selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n", - "\u001b[38;5;226m2022-07-11 19:00:27 | WARNING | Cannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | GreatAI (v0.1.3): configured ✅\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | 🔩 is_production: False\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | 🔩 should_log_exception_stack: True\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | 🔩 prediction_cache_size: 512\u001b[0m\n", - "\u001b[38;5;39m2022-07-11 19:00:27 | INFO | 🔩 dashboard_table_size: 50\u001b[0m\n", - "\u001b[38;5;226m2022-07-11 19:00:27 | WARNING | You still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n", - "\u001b[38;5;226m2022-07-11 19:00:27 | WARNING | > Find out more at https://se-ml.github.io/practices\u001b[0m\n" - ] - }, - { - "data": { - "text/plain": [ - "Trace[str]({'created': '2022-07-11T17:00:27.064568',\n", - " 'exception': None,\n", - " 'feedback': None,\n", - " 'logged_values': {'arg:your_name:length': 3, 'arg:your_name:value': 'Bob'},\n", - " 'models': [],\n", - " 'original_execution_time_ms': 0.0896,\n", - " 'output': 'Hi Bob',\n", - " 'tags': ['greeter', 'online', 'development'],\n", - " 'trace_id': '8ff5b268-2613-4e85-96ae-f248666a051f'})" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from great_ai import configure, RouteConfig\n", - "from great_ai import GreatAI\n", - "\n", - "\n", - "@GreatAI.create\n", - "def greeter(your_name: str) -> str:\n", - " return f\"Hi {your_name}\"\n", - "\n", - "\n", - "greeter(\"Bob\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.10.4 ('.env': venv)", - "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.10.4" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "02dd6d3afbfa9fbbe1037d64ad9014965528a1ccad21929d6e72f466389a68ad" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/reference/utilities.md b/docs/reference/utilities.md index eaffd3e..22789d8 100644 --- a/docs/reference/utilities.md +++ b/docs/reference/utilities.md @@ -10,10 +10,10 @@ Well-tested tools that can be used in production with confidence. The toolbox of ::: great_ai.utilities.clean ::: great_ai.utilities.get_sentences -::: great_ai.utilities.predict_language -::: great_ai.utilities.is_english -::: great_ai.utilities.english_name_of_language -::: great_ai.utilities.evaluate_ranking +::: great_ai.utilities.language.predict_language +::: great_ai.utilities.language.english_name_of_language +::: great_ai.utilities.language.is_english +::: great_ai.utilities.evaluate_ranking.evaluate_ranking ## Parallel processing @@ -29,7 +29,7 @@ Multiprocessing and multithreading-based parallelism with support for `async` fu ## Composable parallel processing -Because both [threaded_parallel_map][great_ai.utilities.parallel_map.threaded_parallel_map.threaded_parallel_map] and [parallel_map][great_ai.utilities.parallel_map.parallel_map] have a streaming interface, it is easy to compose them and end up with, for example, a process for each CPU core with its own thread-pool or event-loop. Longer pipelines are also easy to imagine. The chunking methods help in these compositions. +Because both [threaded_parallel_map][great_ai.utilities.parallel_map.threaded_parallel_map.threaded_parallel_map] and [parallel_map][great_ai.utilities.parallel_map.parallel_map.parallel_map] have a streaming interface, it is easy to compose them and end up with, for example, a process for each CPU core with its own thread-pool or event-loop. Longer pipelines are also easy to imagine. The chunking methods help in these compositions. For more info, check-out [the scraping guide](/how-to-guides/scraping). diff --git a/great_ai/deploy/great_ai.py b/great_ai/deploy/great_ai.py index 8a0d2cb..c269021 100644 --- a/great_ai/deploy/great_ai.py +++ b/great_ai/deploy/great_ai.py @@ -190,7 +190,7 @@ class GreatAI(Generic[T, V]): ) -> List[Trace[V]]: """Map the wrapped function over a list of input_values (`batch`). - A wrapper over [parallel_map][great_ai.utilities.parallel_map] + A wrapper over [parallel_map][great_ai.utilities.parallel_map.parallel_map.parallel_map] providing type-safety and a progressbar through tqdm. Args: diff --git a/great_ai/tracing/add_ground_truth.py b/great_ai/tracing/add_ground_truth.py index dbc8fcf..4080db2 100644 --- a/great_ai/tracing/add_ground_truth.py +++ b/great_ai/tracing/add_ground_truth.py @@ -66,7 +66,7 @@ def add_ground_truth( train_split_ratio: The probability-weight of giving each trace the `train` tag. test_split_ratio: The probability-weight of giving each trace the `test` tag. validation_split_ratio: The probability-weight of giving each trace the - `validation` tag. + `validation` tag. """ inputs = list(inputs) diff --git a/great_ai/utilities/get_sentences.py b/great_ai/utilities/get_sentences.py index d770530..8cb05f3 100644 --- a/great_ai/utilities/get_sentences.py +++ b/great_ai/utilities/get_sentences.py @@ -34,7 +34,7 @@ def get_sentences( Args: text: Text to be segmented into sentences. ignore_partial: Filter out sentences that are not capitalised/don't end with a - punctuation. + punctuation. true_case: Crude method: lowercase the first word of each sentence. remove_punctuation: Remove all kinds of punctuation. diff --git a/great_ai/utilities/language/english_name_of_language.py b/great_ai/utilities/language/english_name_of_language.py index 372de5c..2503c98 100644 --- a/great_ai/utilities/language/english_name_of_language.py +++ b/great_ai/utilities/language/english_name_of_language.py @@ -18,7 +18,7 @@ def english_name_of_language(language_code: Optional[str]) -> str: Args: language_code: Language code, for example, returned by - [great_ai.utilities.predict_language][]. + [great_ai.utilities.language.predict_language.predict_language][]. Returns: English name of language. diff --git a/great_ai/utilities/language/is_english.py b/great_ai/utilities/language/is_english.py index e40fbe9..3652f57 100644 --- a/great_ai/utilities/language/is_english.py +++ b/great_ai/utilities/language/is_english.py @@ -21,7 +21,7 @@ def is_english(language_code: Optional[str]) -> bool: Args: language_code: Language code, for example, returned by - `[great_ai.utilities.predict_language][]. + `[great_ai.utilities.language.predict_language.predict_language][]. Returns: Boolean indicating whether it's English. diff --git a/mkdocs.yaml b/mkdocs.yaml index 7b0e09b..2ef77cf 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -101,7 +101,6 @@ nav: - how-to-guides/handle-training-data.md - how-to-guides/large_file.md - how-to-guides/call-remote.md - - how-to-guides/scraping.ipynb - Reference: - reference/index.md - reference/utilities.md