diff --git a/next_cvat/client/job_annotations.py b/next_cvat/client/job_annotations.py index 39700c5..59c9528 100644 --- a/next_cvat/client/job_annotations.py +++ b/next_cvat/client/job_annotations.py @@ -84,10 +84,22 @@ def add_tag_( return self def request(self) -> models.LabeledDataRequest: + def remove_id_from_dict(item_dict): + """Remove 'id' field from dictionary if present""" + if isinstance(item_dict, dict): + return {k: v for k, v in item_dict.items() if k != "id"} + return item_dict + request = models.LabeledDataRequest() request.version = self.annotations["version"] - request.tags = self.annotations["tags"] - request.shapes = self.annotations["shapes"] - request.tracks = self.annotations["tracks"] + + # Remove ID fields from existing annotations + request.tags = [remove_id_from_dict(tag) for tag in self.annotations["tags"]] + request.shapes = [ + remove_id_from_dict(shape) for shape in self.annotations["shapes"] + ] + request.tracks = [ + remove_id_from_dict(track) for track in self.annotations["tracks"] + ] return request