From ce3cf66db72c352b44cfca607dbd0aff4a3c8ee2 Mon Sep 17 00:00:00 2001 From: Claire Kuang Date: Thu, 28 Oct 2021 18:50:43 +0100 Subject: [PATCH] added fastapi --- server/__pycache__/main.cpython-39.pyc | Bin 0 -> 633 bytes server/__pycache__/mesh_diff.cpython-39.pyc | Bin 0 -> 4892 bytes server/main.py | 14 ++++++++ mesh_diff.py => server/mesh_diff.py | 36 +++++++++++--------- 4 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 server/__pycache__/main.cpython-39.pyc create mode 100644 server/__pycache__/mesh_diff.cpython-39.pyc create mode 100644 server/main.py rename mesh_diff.py => server/mesh_diff.py (84%) diff --git a/server/__pycache__/main.cpython-39.pyc b/server/__pycache__/main.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..885fa0d0843ae67b877a966f99d90f7a75d24548 GIT binary patch literal 633 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 QPq9> SpeckleClient: return client def receive_data( - client: SpeckleClient, stream_id: str = STREAM_ID, commit_id: str = COMMIT_ID + client: SpeckleClient, stream_id: str, commit_id: str ) -> Any: transport = ServerTransport(client, stream_id) @@ -96,13 +96,18 @@ def find_closest_point(current: Point, points: List[Point]): return smallest_distance -def compare_meshes(): +def compare_meshes(stream_id: str, commit_current: str, commit_previous: str): client = get_authenticated_client() + # see if existing diff commit already exists + # query for latest x commits in diff branch + # read commit message & parse + # return url if found + # get meshes from commits - previous_commit = receive_data(client, STREAM_ID, PREV_COMMIT_ID) + previous_commit = receive_data(client, stream_id, commit_previous) previous_meshes = get_all_meshes(previous_commit) - current_commit = receive_data(client, STREAM_ID, COMMIT_ID) + current_commit = receive_data(client, stream_id, commit_current) current_meshes = get_all_meshes(current_commit) # pre process meshes in the current commit to check for same object ID (this means obj hasn't changed) - skip these @@ -170,18 +175,18 @@ def compare_meshes(): prev_meshes.append(mesh) # create a new commit with the diff meshes and changed edges - send_diff_data(diff_meshes, match_meshes, prev_meshes) + return send_diff_data(stream_id, commit_current, commit_previous, diff_meshes, match_meshes, prev_meshes) -def send_diff_data(meshes: List[Mesh], unchanged: List[Mesh], prev: List[Mesh]): +def send_diff_data(stream_id: str, commit_current: str, commit_previous: str, meshes: List[Mesh], unchanged: List[Mesh], prev: List[Mesh]): client = get_authenticated_client() # create a branch if necessary - branches = client.branch.list(STREAM_ID) + branches = client.branch.list(stream_id) has_res_branch = any(b.name == DIFF_BRANCH for b in branches) if not has_res_branch: client.branch.create( - STREAM_ID, name=DIFF_BRANCH, description="all your stream diff results" + stream_id, name=DIFF_BRANCH, description="all your stream diff results" ) # create a commit with message "current_commit_id - previous_commit_id" @@ -190,19 +195,18 @@ def send_diff_data(meshes: List[Mesh], unchanged: List[Mesh], prev: List[Mesh]): base["same"] = unchanged base["ref"] = prev - transport = ServerTransport(client=client, stream_id=STREAM_ID) + transport = ServerTransport(client=client, stream_id=stream_id) hash = operations.send(base=base, transports=[transport]) commit_id = client.commit.create( - STREAM_ID, + stream_id, hash, # object id DIFF_BRANCH, - message= COMMIT_ID + "-" + PREV_COMMIT_ID + message= commit_current + "-" + commit_previous ) - return 'https://speckle.xyz/streams/' + STREAM_ID + '/branches/' + DIFF_BRANCH + return 'https://speckle.xyz/streams/' + stream_id + '/commits/' + commit_id -compare_meshes()