devcontainer setup

This commit is contained in:
Gergő Jedlicska
2023-08-30 07:41:08 +00:00
parent 02871571c1
commit 9b78af538b
9 changed files with 130 additions and 170 deletions
+45
View File
@@ -0,0 +1,45 @@
from pydantic import BaseModel, ConfigDict
from stringcase import camelcase
from specklepy.transports.memory import MemoryTransport
from specklepy.transports.server import ServerTransport
from specklepy.api.operations import receive
from specklepy.api.client import SpeckleClient
from flatten import flatten_base
from speckle_project_data import SpeckleProjectData
class FunctionInputs(BaseModel):
"""
These are function author defined values, automate will make sure to supply them.
"""
speckle_type_to_count: str
model_config = ConfigDict(alias_generator=camelcase)
def automate_function(
project_data: SpeckleProjectData,
function_inputs: FunctionInputs,
speckle_token: str,
):
client = SpeckleClient(project_data.speckle_server_url)
client.authenticate_with_token(speckle_token)
commit = client.commit.get(project_data.project_id, project_data.version_id)
memory_transport = MemoryTransport()
server_transport = ServerTransport(project_data.project_id, client)
if not commit.referencedObject:
raise ValueError("The commit has no root referencedObject.")
base = receive(commit.referencedObject, server_transport, memory_transport)
count = 0
for b in flatten_base(base):
if b.speckle_type == function_inputs.speckle_type_to_count:
count += 1
print(
f"Found {count} object that match the queried speckle type: ",
"{function_inputs.speckle_type_to_count}",
)