diff --git a/pygeoapi/provider/speckle.py b/pygeoapi/provider/speckle.py index 99ae89c..c1ace02 100644 --- a/pygeoapi/provider/speckle.py +++ b/pygeoapi/provider/speckle.py @@ -111,7 +111,7 @@ class SpeckleProvider(BaseProvider): print(completed_process.stderr) raise Exception(m) - patch_specklepy() + patch_specklepy() # assign global values @@ -399,9 +399,8 @@ class SpeckleProvider(BaseProvider): ) print(f"____{datetime.now().astimezone(timezone.utc)} _Rendering model '{branch['name']}' of the project '{stream['name']}'") - speckle_data = self.traverse_data(commit_obj, comments) - set_actions(self, client) + speckle_data = self.traverse_data(commit_obj, comments) speckle_data["features"].extend(speckle_data["comments"]) speckle_data["comments"] = [] diff --git a/pygeoapi/provider/speckle_utils/patch/server.py b/pygeoapi/provider/speckle_utils/patch/server.py index bfef494..78cf1e0 100644 --- a/pygeoapi/provider/speckle_utils/patch/server.py +++ b/pygeoapi/provider/speckle_utils/patch/server.py @@ -168,8 +168,23 @@ class ServerTransport(AbstractTransport): # iter through returned objects saving them as we go target_transport.begin_write() all_lines = [line for _,line in enumerate(lines)] + + # fix wrongly split lines for i, line in enumerate(all_lines): - if line: + if line and i!= 0 and (len(line)<=10 or'"id": "' not in line[:10]): + # find the last line with ID + matching_index = -1 + for k, id_line in enumerate(all_lines): + if k10 and '"id": "' in line[:10]: hash = line.split('"id": "')[1].split('"')[0] obj = "{" + line + "}" if i==0: