diff --git a/samples/calculator/README.md b/samples/calculator/README.md new file mode 100644 index 000000000..9d7777bda --- /dev/null +++ b/samples/calculator/README.md @@ -0,0 +1,8 @@ +# Simple UiPath Coded Agents + +This is a simple, standalone Coded Agent which does not require external dependencies. + +After initialization, execute the agent using this sample command: +``` +uipath run main.py '{"a": 0, "b": 1, "operator": "+"}' +``` diff --git a/samples/calculator/main.py b/samples/calculator/main.py new file mode 100644 index 000000000..18cdb73d3 --- /dev/null +++ b/samples/calculator/main.py @@ -0,0 +1,34 @@ +from pydantic.dataclasses import dataclass +from enum import Enum + +from uipath.tracing import traced +import logging + +logger = logging.getLogger(__name__) + +class Operator(Enum): + ADD = "+" + SUBTRACT = "-" + MULTIPLY = "*" + DIVIDE = "/" + +@dataclass +class CalculatorInput: + a: float + b: float + operator: Operator + +@dataclass +class CalculatorOutput: + result: float + +# use InputTriggerEventArgs when called by UiPath EventTriggers +@traced() +def main(input: CalculatorInput) -> CalculatorOutput: + result = 0 + match input.operator: + case Operator.ADD: result = input.a + input.b + case Operator.SUBTRACT: result = input.a - input.b + case Operator.MULTIPLY: result = input.a * input.b + case Operator.DIVIDE: result = input.a / input.b if input.b != 0 else 0 + return CalculatorOutput(result=result) diff --git a/samples/calculator/pyproject.toml b/samples/calculator/pyproject.toml new file mode 100644 index 000000000..c4b7ca83d --- /dev/null +++ b/samples/calculator/pyproject.toml @@ -0,0 +1,9 @@ +[project] +name = "event-agent" +version = "0.0.1" +description = "calculator-agent" +authors = [{ name = "John Doe", email = "john.doe@myemail.com" }] +dependencies = [ + "uipath>=2.1.43", +] +requires-python = ">=3.10"