From 7ef39d826dad51c8a9ed1f026872d252dfe52bcf Mon Sep 17 00:00:00 2001 From: Keith Manville Date: Tue, 10 Sep 2024 13:00:34 -0400 Subject: [PATCH] feat: hello_world plugin and example entrypoint --- examples/hello-world.yaml | 10 ++++++++ plugins/hello_world/__init__.py | 16 +++++++++++++ plugins/hello_world/tasks.py | 41 +++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 examples/hello-world.yaml create mode 100644 plugins/hello_world/__init__.py create mode 100644 plugins/hello_world/tasks.py diff --git a/examples/hello-world.yaml b/examples/hello-world.yaml new file mode 100644 index 000000000..3ab57da83 --- /dev/null +++ b/examples/hello-world.yaml @@ -0,0 +1,10 @@ +hello_step: + hello: + name: $name +goodbye_step: + greet: + greeting: Goodbye + name: $name +shout_step: + shout: + message: $goodbye_step.message diff --git a/plugins/hello_world/__init__.py b/plugins/hello_world/__init__.py new file mode 100644 index 000000000..ab0a41a34 --- /dev/null +++ b/plugins/hello_world/__init__.py @@ -0,0 +1,16 @@ +# This Software (Dioptra) is being made available as a public service by the +# National Institute of Standards and Technology (NIST), an Agency of the United +# States Department of Commerce. This software was developed in part by employees of +# NIST and in part by NIST contractors. Copyright in portions of this software that +# were developed by NIST contractors has been licensed or assigned to NIST. Pursuant +# to Title 17 United States Code Section 105, works of NIST employees are not +# subject to copyright protection in the United States. However, NIST may hold +# international copyright in software created by its employees and domestic +# copyright (or licensing rights) in portions of software that were assigned or +# licensed to NIST. To the extent that NIST holds copyright in this software, it is +# being made available under the Creative Commons Attribution 4.0 International +# license (CC BY 4.0). The disclaimers of the CC BY 4.0 license apply to all parts +# of the software developed or licensed by NIST. +# +# ACCESS THE FULL CC BY 4.0 LICENSE HERE: +# https://creativecommons.org/licenses/by/4.0/legalcode diff --git a/plugins/hello_world/tasks.py b/plugins/hello_world/tasks.py new file mode 100644 index 000000000..45b9ccda2 --- /dev/null +++ b/plugins/hello_world/tasks.py @@ -0,0 +1,41 @@ +# This Software (Dioptra) is being made available as a public service by the +# National Institute of Standards and Technology (NIST), an Agency of the United +# States Department of Commerce. This software was developed in part by employees of +# NIST and in part by NIST contractors. Copyright in portions of this software that +# were developed by NIST contractors has been licensed or assigned to NIST. Pursuant +# to Title 17 United States Code Section 105, works of NIST employees are not +# subject to copyright protection in the United States. However, NIST may hold +# international copyright in software created by its employees and domestic +# copyright (or licensing rights) in portions of software that were assigned or +# licensed to NIST. To the extent that NIST holds copyright in this software, it is +# being made available under the Creative Commons Attribution 4.0 International +# license (CC BY 4.0). The disclaimers of the CC BY 4.0 license apply to all parts +# of the software developed or licensed by NIST. +# +# ACCESS THE FULL CC BY 4.0 LICENSE HERE: +# https://creativecommons.org/licenses/by/4.0/legalcode +import structlog +from dioptra import pyplugs + +LOGGER = structlog.get_logger() + + +@pyplugs.register() +def hello(name: str) -> str: + message = f"Hello, {name}" + LOGGER.info(message) + return message + + +@pyplugs.register() +def greet(greeting: str, name: str) -> str: + message = f"{greeting}, {name}" + LOGGER.info(message) + return message + + +@pyplugs.register() +def shout(message: str) -> str: + message = message.upper() + LOGGER.info(message) + return message