From bc59a8307234eec1041054897646cdc695f85020 Mon Sep 17 00:00:00 2001 From: Svenja Date: Wed, 16 Aug 2023 14:04:27 +0200 Subject: [PATCH 1/4] next try --- generators/__init__.py | 6 ++++ generators/numbers/annotator_split/README.md | 1 + .../numbers/annotator_split/__init__.py | 18 ++++++++++ .../annotator_split/code_snippet_common.md | 17 +++++++++ .../annotator_split/code_snippet_refinery.md | 14 ++++++++ generators/numbers/annotator_split/config.py | 36 +++++++++++++++++++ 6 files changed, 92 insertions(+) create mode 100644 generators/numbers/annotator_split/README.md create mode 100644 generators/numbers/annotator_split/__init__.py create mode 100644 generators/numbers/annotator_split/code_snippet_common.md create mode 100644 generators/numbers/annotator_split/code_snippet_refinery.md create mode 100644 generators/numbers/annotator_split/config.py diff --git a/generators/__init__.py b/generators/__init__.py index d25aae0e..b890e750 100644 --- a/generators/__init__.py +++ b/generators/__init__.py @@ -1,3 +1,4 @@ + from fastapi import APIRouter from .distance import ( @@ -11,6 +12,10 @@ spacy_lemmatizer, ) +from .numbers import ( + annotator_split +) + from .paths import ( url_keyword_parser, domain_parser, @@ -96,6 +101,7 @@ bert_toxicity_detector, gpt_grammar_correction, gpt_tldr_summarization, + annotator_split, ]: module_name = module.__name__.split(".")[-1] model_name = ( diff --git a/generators/numbers/annotator_split/README.md b/generators/numbers/annotator_split/README.md new file mode 100644 index 00000000..651edc4c --- /dev/null +++ b/generators/numbers/annotator_split/README.md @@ -0,0 +1 @@ +The module gives out a random number within a given frame. With that, you can split annotations randomly. \ No newline at end of file diff --git a/generators/numbers/annotator_split/__init__.py b/generators/numbers/annotator_split/__init__.py new file mode 100644 index 00000000..fffb7fff --- /dev/null +++ b/generators/numbers/annotator_split/__init__.py @@ -0,0 +1,18 @@ +from pydantic import BaseModel +import random + +INPUT_EXAMPLE = { + "number": 4356 +} + + +class AnnotationSplitModel(BaseModel): + number: int + + class Config: + schema_example = {"example": INPUT_EXAMPLE} + +def annotator_split(request: AnnotationSplitModel): + """Generates a random number for split annotation""" + number = request.number + return random.randint(0, number-1) diff --git a/generators/numbers/annotator_split/code_snippet_common.md b/generators/numbers/annotator_split/code_snippet_common.md new file mode 100644 index 00000000..866e7090 --- /dev/null +++ b/generators/numbers/annotator_split/code_snippet_common.md @@ -0,0 +1,17 @@ +```python +import random + +def annotator_split(record) -> int: + return random.randint(0, record-1) + +# ↑ necessary bricks function +# ----------------------------------------------------------------------------------------- +# ↓ example implementation + +def example_integration(): + max_number = [3,5,1000,43694,1,14,0,13.5] + for number in max_number: + print(f"the random number in the maximal number-range of {number} is {annotator_split(number)}") + +example_integration() +``` \ No newline at end of file diff --git a/generators/numbers/annotator_split/code_snippet_refinery.md b/generators/numbers/annotator_split/code_snippet_refinery.md new file mode 100644 index 00000000..a6187dc3 --- /dev/null +++ b/generators/numbers/annotator_split/code_snippet_refinery.md @@ -0,0 +1,14 @@ + +```python +import random + +ATTRIBUTE: int + +def annotator_split(record): + try: + return random.randint(0, record[ATTRIBUTE]-1) + except: + print("Something went wrong. Please make sure, your desired maximal number is an Integer and bigger than 0.") + + +``` diff --git a/generators/numbers/annotator_split/config.py b/generators/numbers/annotator_split/config.py new file mode 100644 index 00000000..3eaa6083 --- /dev/null +++ b/generators/numbers/annotator_split/config.py @@ -0,0 +1,36 @@ +from util.configs import build_generator_function_config +from util.enums import State, RefineryDataType, BricksVariableType, SelectionType +from . import annotator_split, INPUT_EXAMPLE + + +def get_config(): + return build_generator_function_config( + function=annotator_split, + input_example=INPUT_EXAMPLE, + issue_id=240, + tabler_icon="Dice-3", + min_refinery_version="1.7.0", + state=State.PUBLIC.value, + type="python_function", + kern_token_proxy_usable="false", + docker_image="none", + available_for=["refinery", "common"], + part_of_group=[ + "text_analytics", + ], # first entry should be parent directory + # bricks integrator information + integrator_inputs={ + "name": "annotator_split", + "refineryDataType": RefineryDataType.TEXT.value, + "variables": { + "ATTRIBUTE": { + "selectionType": SelectionType.CHOICE.value, + "description": "only text fields", + "addInfo": [ + BricksVariableType.ATTRIBUTE.value, + BricksVariableType.GENERIC_STRING.value, + ], + }, + }, + }, + ) From fb349982452436da4de0c2f578d9c29515143df9 Mon Sep 17 00:00:00 2001 From: Svenja Date: Mon, 28 Aug 2023 14:30:36 +0200 Subject: [PATCH 2/4] make changes --- generators/numbers/annotator_split/__init__.py | 2 +- generators/numbers/annotator_split/code_snippet_common.md | 2 +- generators/numbers/annotator_split/config.py | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/generators/numbers/annotator_split/__init__.py b/generators/numbers/annotator_split/__init__.py index fffb7fff..4bc2c760 100644 --- a/generators/numbers/annotator_split/__init__.py +++ b/generators/numbers/annotator_split/__init__.py @@ -2,7 +2,7 @@ import random INPUT_EXAMPLE = { - "number": 4356 + "number": 4 } diff --git a/generators/numbers/annotator_split/code_snippet_common.md b/generators/numbers/annotator_split/code_snippet_common.md index 866e7090..ddbeac42 100644 --- a/generators/numbers/annotator_split/code_snippet_common.md +++ b/generators/numbers/annotator_split/code_snippet_common.md @@ -9,7 +9,7 @@ def annotator_split(record) -> int: # ↓ example implementation def example_integration(): - max_number = [3,5,1000,43694,1,14,0,13.5] + max_number = [2, 4, 6, 8, 10] for number in max_number: print(f"the random number in the maximal number-range of {number} is {annotator_split(number)}") diff --git a/generators/numbers/annotator_split/config.py b/generators/numbers/annotator_split/config.py index 3eaa6083..8e125fae 100644 --- a/generators/numbers/annotator_split/config.py +++ b/generators/numbers/annotator_split/config.py @@ -16,14 +16,14 @@ def get_config(): docker_image="none", available_for=["refinery", "common"], part_of_group=[ - "text_analytics", + "numbers", ], # first entry should be parent directory # bricks integrator information integrator_inputs={ "name": "annotator_split", - "refineryDataType": RefineryDataType.TEXT.value, + "refineryDataType": RefineryDataType.INTEGER.value, "variables": { - "ATTRIBUTE": { + "N_SPLIT": { "selectionType": SelectionType.CHOICE.value, "description": "only text fields", "addInfo": [ From 83efec814beaa756ded18485796d76335fe4a4cb Mon Sep 17 00:00:00 2001 From: Svenja Date: Wed, 6 Sep 2023 16:48:04 +0200 Subject: [PATCH 3/4] trying to get numbers back --- generators/numbers/annotator_split/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/numbers/annotator_split/README.md b/generators/numbers/annotator_split/README.md index 651edc4c..d2945064 100644 --- a/generators/numbers/annotator_split/README.md +++ b/generators/numbers/annotator_split/README.md @@ -1 +1 @@ -The module gives out a random number within a given frame. With that, you can split annotations randomly. \ No newline at end of file +The module gives out a random number within a given frame. With that, you can split annotations randomly. Every split between 0 and the maximal lenght of the frame is possible. \ No newline at end of file From 1f1be69dc7911887103edd48fb7b62a00346a880 Mon Sep 17 00:00:00 2001 From: Svenja Date: Wed, 6 Sep 2023 16:51:34 +0200 Subject: [PATCH 4/4] trying to get numbers back --- generators/numbers/annotator_split/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/numbers/annotator_split/__init__.py b/generators/numbers/annotator_split/__init__.py index 4bc2c760..f8963c9f 100644 --- a/generators/numbers/annotator_split/__init__.py +++ b/generators/numbers/annotator_split/__init__.py @@ -13,6 +13,6 @@ class Config: schema_example = {"example": INPUT_EXAMPLE} def annotator_split(request: AnnotationSplitModel): - """Generates a random number for split annotation""" + """Generates a random number for split annotations""" number = request.number return random.randint(0, number-1)