2 Commits

Author SHA1 Message Date
Jonathon Broughton 35d428e7bb Update main.py
build and deploy Speckle functions / publish-automate-function-version (push) Has been cancelled
2024-03-12 09:23:20 +00:00
Jonathon Broughton 3be31ec96f Update main.py 2024-03-12 08:51:02 +00:00
+17
View File
@@ -9,6 +9,7 @@ from speckle_automate import (
AutomationContext,
execute_automate_function,
)
from specklepy.objects import Base
from flatten import flatten_base
@@ -31,6 +32,18 @@ class FunctionInputs(AutomateBase):
),
)
import json
def serialize_base(base: Base) -> str:
"""Serializes a Base object to a JSON string."""
# Assuming there is a method to convert base objects to dictionaries
base_dict = base.to_dict() if hasattr(base, 'to_dict') else {}
# Use json.dumps() to convert the dictionary to a JSON string
# Set `default=str` to handle any objects that are not directly serializable by default
return json.dumps(base_dict, indent=4, default=str)
def automate_function(
automate_context: AutomationContext,
@@ -48,6 +61,10 @@ def automate_function(
# the context provides a conveniet way, to receive the triggering version
version_root_object = automate_context.receive_version()
# At the point in your code where you want to log the initial base object:
initial_base_json = serialize_base(initial_base)
print(f"Initial base object as JSON:\n{version_root_object}")
objects_with_forbidden_speckle_type = [
b
for b in flatten_base(version_root_object)