53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
"""This module contains the business logic of the function.
|
|
|
|
Use the automation_context module to wrap your function in an Automate context helper
|
|
"""
|
|
|
|
from pydantic import Field
|
|
from speckle_automate import (
|
|
AutomateBase,
|
|
AutomationContext,
|
|
execute_automate_function,
|
|
)
|
|
|
|
|
|
class FunctionInputs(AutomateBase):
|
|
"""These are function author defined values.
|
|
|
|
Automate will make sure to supply them matching the types specified here.
|
|
Please use the pydantic model schema to define your inputs:
|
|
https://docs.pydantic.dev/latest/usage/models/
|
|
"""
|
|
|
|
def automate_function(
|
|
automate_context: AutomationContext,
|
|
function_inputs: FunctionInputs,
|
|
) -> None:
|
|
"""This is an example Speckle Automate function.
|
|
|
|
Args:
|
|
automate_context: A context helper object, that carries relevant information
|
|
about the runtime context of this function.
|
|
It gives access to the Speckle project data, that triggered this run.
|
|
It also has convenience methods attach result data to the Speckle model.
|
|
function_inputs: An instance object matching the defined schema.
|
|
"""
|
|
automate_context.mark_run_success("Successfully Sent to RealtimeLCA™ by Gaiup.")
|
|
|
|
def automate_function_without_inputs(automate_context: AutomationContext) -> None:
|
|
"""A function example without inputs.
|
|
|
|
If your function does not need any input variables,
|
|
besides what the automation context provides,
|
|
the inputs argument can be omitted.
|
|
"""
|
|
automate_context.mark_run_success("Successfully Sent to Gaiup RealtimeLCA™.")
|
|
|
|
|
|
# make sure to call the function with the executor
|
|
if __name__ == "__main__":
|
|
# NOTE: always pass in the automate function by its reference, do not invoke it!
|
|
|
|
# pass in the function reference with the inputs schema to the executor
|
|
execute_automate_function(automate_function_without_inputs)
|