From ce7f1fb7c2483b4182fd3fec67735e86bda6ddc3 Mon Sep 17 00:00:00 2001 From: Narek Mkhitaryan Date: Mon, 17 Apr 2023 16:32:03 +0400 Subject: [PATCH] added History page in docs --- CHANGELOG.md | 379 ----------- CHANGELOG.rst | 596 ++++++++++++++++++ README.rst | 2 +- docs/source/changelog_link.rst | 1 + docs/source/index.rst | 1 + .../lib/app/interface/base_interface.py | 4 +- .../mixpanel/test_mixpanel_decorator.py | 16 +- 7 files changed, 606 insertions(+), 393 deletions(-) delete mode 100644 CHANGELOG.md create mode 100644 CHANGELOG.rst create mode 100644 docs/source/changelog_link.rst diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index f29c383d0..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,379 +0,0 @@ -# Changelog -All release highlights of this project will be documented in this file. -## 4.4.11 - April 2, 2023 -### Added -- `SAClient.set_project_status()` method. -- `SAClient.set_folder_status()` method. -### Updated -- `SAClient.create_annotation_class()` added OCR type attribute group support in the vector projects. -- `SAClient.create_annotation_classes_from_classes_json()` added OCR type attribute group support in the vector projects. -## 4.4.10 - March 12, 2023 -### Updated -- Configuration file creation flow -- `SAClient.search_projects()` method, removed `include_complete_image_count` argument, use `include_complete_item_count` instead. -- `SAClient.get_project_metadata()` method, removed `include_complete_image_count` argument, use `include_complete_item_count` instead. -- `SAClient.create_project()` method to support classes, workflows and instructions_link. -### Fixed -- `SAClient.clone_project()` method to address the issue of FPS mode is not being copied. -### Deprecated -- `SAClient.create_project_from_metadata()` method, use `SAClient.create_project()` instead. -- `SAClient.get_project_image_count()` method, use `SAClient.get_project_metadata()` instead. -### Removed -- `SAClient.class_distribution()` method -- `SAClient.benchmark()` method -## 4.4.9 - January 29, 2023 -### Added -- `SAClient.set_approval_statuses` _method_ function to change the approval status of items (images, audio / videos) in bulk. -### Updated -- `SAClient.convert_project_type` _method_ updated from Pixel to Vector converter, added polygon holes handling. -## 4.4.8 - December 25, 2022 -### Added -- New project types `Tiled`, `PointCloud`, `Other`. -- `SAClient.get_project_by_id` _method_ to get project metadata by id. -- `SAClient.get_folder_by_id` _method_ to get folder metadata by id. -- `SAClient.get_item_by_id` _method_ to get item metadata by id. -### Updated -- `SAClient.consensus` _method_ to compute agreement scores between tag type annotations. -### -## 4.4.7 - December 04, 2022 -### Updated -- `SAClient.search_folders` _method_ to add a new `status` argument for searching folders via status. -- Schemas for `Annotation Classes` and `Video Annotation` to support **text** and **numeric input** attribute group types. -### Fixed -- `SAClient.query` _method_ to address invalid exceptions. -- `SAClient.download_export` _method_ to address the issue with downloading for Windows OS. -- `SAClient.attach_items_from_integrated_storage` _method_ to address "integration not found" error. -- `SAClient.aggregate_annotations_as_df` _method_ to support files without "___objects" in their naming. -### Removed -- `SAClient.add_annotation_bbox_to_image` _method_, use `SAClient.upload_annotations` instead. -- `SAClient.add_annotation_point_to_image` _method_, use `SAClient.upload_annotations` instead. -- `SAClient.add_annotation_comment_to_image` _method_, use `SAClient.upload_annotations` instead. -### -## 4.4.6 - November 23, 2022 -### Updated -- `SAClient.aggregate_annotations_as_df` method to aggregate "comment" type instances. -- `SAClient.add_annotation_bbox_to_image`, `SAClient.add_annotation_point_to_image`, `SAClient.add_annotation_comment_to_image` _methods_ to add deprecation warnings. -### Fixed -- Special characters are being encoded after annotation upload (Windows) -- `SAClient.assign_folder` _method_ to address the invalid argument name. -- `SAClient.upload_images_from_folder_to_project` _method_ to address uploading of more than 500 items. -- `SAClient.upload_annotations_from_folder_to_project` _method_ to address the issue of a folder size being more than 25,5 MB. -- `SAClient.download_image` _method_ to address the KeyError 'id' when `include_annotations` is set to `True`. -### Removed -`SAClient.upload_preannotations_from_folder_to_project` _method_ -`SAClient.copy_image` _method_ -### -## 4.4.5 - October 23, 2022 -### Added -- `SAClient.add_items_to_subset` _method_ to associate given items with a Subset. -- `SAClient.upload_annotations` _method_ to upload annotations in SA format from the system memory. -### Updated -- `SAClient.upload_annotations_from_folder_to_project` & `SAClient.upload_image_annotations` _methods_ to add `keep_status` argument to prevent the annotation status from changing to **In Progress** after the annotation upload. -- Item metadata to add a new key for holding the id of an item. --`SAClient.upload_preannotations_from_folder_to_project` to add a deprecation warning message. --`SAClient.copy_image` to add a deprecation warning message. -### Fixed -- `SAClient.validate_annotations` _method_. -- `SAClient.search_items`, `SAClient.get_item_metadata` _methods_ to address defects related to pydantic 1.8.2. -- A defect related to editor to address the issue of uploading a tag instance without attributes. -### -## 4.4.4 - September 11, 2022 -### Updated -- Improvements on working with large files. -### Fixed -- `SAClient.upload_annotations_from_folder_to_project()` _method_ to address the issue of the dissaperaing progress bar. -- `SAClient.run_prediction()` _method_ to address the issue of the OCR model. -- `SAClient.validate_annotations()` _method_ to address the issue of missing log messages. -- `SAClient.create_project_from_metadata()` _method_ to address the issue of returning deprecated `is_multiselect` key. -- `SAClient.get_annotations()` _method_ to address the issue of returning error messages as annotation dicts. -### -## 4.4.2, 4.4.3 - August 21, 2022 -### Updated -- the **schema** of `classes JSON` to support new values for the `"group_type"` key for a given attribute group. `"group_type": "radio" | "checklist" | "text" | "numeric"`. -- the **schema** of `video annotation JSON` to support instances that have a `"tag"` type. -### Fixed -- `SAClient.get_annotations()` _method_ to address the issue of working with the large projects. -- `SAClient.get_annotations_per_frame()` _method_ to address the issue of throwing an error on small videos when the fps is set to 1. -- `SAClient.upload_annotations_from_folder_to_project()` to address the issue of timestamp values represented in seconds for the `"lastAction"`. -- `SAClient.download_export()` _method_ to address the issue of empty logs. -- `SAClient.clone_project()` _method_ to address the issue of having a corrupted project clone, when the source project has a keypoint workflow. -### -## 4.4.1 - July 24, 2022 -### Added -- `SAClient.create_custom_fields()` _method_ to create/add new custom fields to a project’s custom field schema. -- `SAClient.get_custom_fields()` _method_ to get a project’s custom field schema. -- `SAClient.delete_custom_fields()` _method_ to remove existing custom fields from a project’s custom field schema. -- `SAClient.upload_custom_values()` _method_ to attach custom field-value pairs to items. -- `SAClient.delete_custom_values()` _method_ to remove custom field-value pairs from items. -### Updated -- the **schema** of `classes JSON` to support the new `"default_value"` key to set a default attribute(s) for a given attribute group. -- `SAClient.get_item_metadata()` _method_ to add a new input argument `include_custom_metadata` to return custom metadata in the result items. -- `SAClient.search_items()` _method_ to add a new input argument `include_custom_metadata` to return custom metadata in the result items. -- `SAClient.query()` _method_ to return custom metadata in the result items. -### Fixed -- `SAClient` _class_ to address the system crash that occurs on instantiation via `config.json` file. -- `SAClient.query()` _method_ to address the issue of not returning more than 50 items. -- `SAClient.upload_annotations_from_folder_to_project()` to address the issue of some fields not being auto populated after the upload is finished. -- `SAClient.get_folder_metadata()`, `SAClient.search_folders()` to address the issue of transforming the ‘+’ sign in a folder to a whitespace. -### Removed -- `superannotate.assign_images()` _function_. Please use the `SAClient.assign_items()` _method_ instead. -- `superannotate.unassign_images()` _function_. Please use the `SAClient.unassign_items()` _method_ instead. -- `superannotate.delete_images()` _function_. Please use the `SAClient.delete_items()` _method_ instead. -### -## 4.4.0 - July 03, 2022 -### Added -- `superannotate.SAClient()` _class_ to instantiate team-level authentication and inheriting methods to access the back-end. -- `SAClient.download_annotations()` _method_ to download annotations without preparing an Export object. -- `SAClient.get_subsets()` _method_ to get the existing subsets for a given project. -- `SAClient.assign_items()` _method_ to assign items in a given project to annotators or quality specialists. -- `SAClient.unassign_items()` _method_ to remove assignments from items. -- `SAClient.delete_items()` _method_ to delete items in a given project. -### Updated -- `JSON Schema` for video annotations to version `1.0.45` to show **polygon** and **polyline** annotations. -- `SAClient.get_annotations_per_frame()` _method_ to show **polygon** and **polyline** annotations. -- `SAClient.get_annotations_per_frame()` _method_ to pick instances closer to a given **frame start** instead of the **median**. -- `SAClient.query()` _method_ to add the `subset` argument to support querying in a subset. -### Fixed -- `SAClient.set_annotation_statuses()` _method_ to address the issue occurring with more than 500 items. -- `SAClient.get_annotations()` _method_ to address the `PayloadError` occurring with more than 20000 items. -- `SAClient.get_annotations()` _method_ to address the missing `'duration'` and `'tags'` keys for newly uploaded and unannotated videos. -- `SAClient.get_annotations_per_frame()` _method_ to address missing `'duration'` and `'tags'` keys for newly uploaded and unannotated videos. -- `SAClient.get_annotations_per_frame()` _method_ to address the wrong `classId` value for unclassified instances. -### Removed -- `superannotate.init()` _function_. Please instantiate `superannotate.SAClient()` _class_ to authenticate. -- `superannotate.set_image_annotation_status()` _function_. Please use the `SAClient.set_annotation_statuses()` _method_ instead. -- `superannotate.set_images_annotations_statuses()` _function_. Please use the `SAClient.set_annotation_statuses()` _method_ instead. -## 4.3.4 - May 22, 2022 -### Updated -- `JSON Schema` for video annotations to version `x` to reflect point annotations. -- `superannotate.download_export()` function to preserve SA folder structure while downloading to S3 bucket. -- `superannotate.get_item_metadata()` function to have string type values instead of int type for the `approval_status` key. -- `superannotate.get_item_metadata()` function to change the value for the `path` key in the item metadata from `project/folder/item` format to `project/folder`. -- `superannotate.get_item_metadata()` function to add the `is_pinned` key in the returned metadata. -- `superannotate.clone_project()` function to have `NotStarted` project status for the newly created project. -### Fixed -- `superannotate.query()` function to address the missing value for the `path` key. -- `superannotate.import_annotation()` function to address the extension issue with JPEG files while converting from `VOC` to SA. -- `superannotate.import_annotation()` function to address int type pointlabels in the converted `JSON` from `COCO` to SA. -- `superannotate_get_annotations()` & `superannotate.add_annotation_comment_to_image()` to address the issue with `asyncio` occuring on Windows. -- `superannotate.set_image_annotation_status()` function add a deprecation warning. -- `superannotate.set_images_annotation_statuses()` function add a deprecation warning. -### Removed -- `share_projects()` function. -- `superannotate.attach_image_urls_to_project()` function. Please use the `superannotate.attach_items()` function instead. -- `superannotate.attach_document_urls_to_project()` function. Please use the `superannotate.attach_items()` function instead. -- `superannotate.attach_video_urls_to_project()` function. Please use the `superannotate.attach_items()` function instead. -- `superannotate.copy_images()` function. Please use the `superannotate.copy_items()` function instead. -- `superannotate.move_images()` function. Please use the `superannotate.move_items()` function instead. -### -## 4.3.3 - May 01 2022 -### Added -- `attach_items()` function to link items (images, videos, and documents) from external storages to SuperAnnotate using URLs. -- `copy_items()` function to copy items (images, videos, and documents) in bulk between folders in a project. -- `move_items()` function to move items (images, videos, and documents) in bulk between folders in a project. -- `set_annotation_statuses()` function to change the annotation status of items (images, videos, and documents) in bulk. -### Updated -- `aggregate_annotations_as_df()` function now supports Text Projects. -### Fixed -- `validate_annotations()` function to accept only numeric type values for the `points` field. -- `prepare_export()` function to address the issue when the entire project is prepared when a wrong folder name is provided. -- `search_team_contributors()` function to address the error message when `email` parameter is used. -- `get_item_metadata()` to address the issue with approved/disapproved items. -### Removed -- `get_project_and_folder_metadata()` function. -- `get_image_metadata()` function. Please use `get_item_metadata()` instead. -- `search_images()` function. Please use `search_items()` instead. -- `search images_all_folders()` function. Please use `search_items()` instead. -### -## 4.3.2 - April 10 2022 -### Added -- `query()` function to run SAQuL queries via SDK. -- `search_items()` function to search items by various filtering criteria for all supported project types. `search_images()` and `search_images_all_folders()` functions will be deprecated. -- `get_item_metadata()` function to get item metadata for all supported project types. `get_image_metadata()` will be deprecated. -### Updated -- `search_projects()` function to add new parameter that gives an option to filter projects by project `status`. -- `get_annotation_per_frame()` function to add a unique identifier for each annotation instance. -### Fixed -- pixel annotations to address the issue with the hex code. -- `sa.validate_annotations()` function to address the incorrect error message. -- `create_project_from_metadata()` function to address the issue with instructions. -### Removed -- `get_image_annotations()` function. Please use `get_annotations()` -- `upload_images_from_public_urls()` function. -### -## 4.3.1 - March 20 2022 -### Added -- `get_integrations()` to list all existing integrations with cloud storages. -- `attach_items_from_integrated_storage()` to attach items from an integrated cloud storage. -- `upload_priority_scores()` to set priority scores for a given list of items. -### Updated -- `JSON Schema` to version `1.0.40` to add instance type differentiation for text annotations and `"exclude"` key for subtracted polygon instances for image annotations. -- `validate_annotations()` to validate text and image annotations based on JSON schema version `1.0.40`. -- `get_annotations()` to get annotation instances based on JSON schema version `1.0.40`. -- `prepare_export()` to prepare for the download annotations with based on JSON schema version `1.0.40`. -- `upload_annotations_from_folder_to_project()` & `upload_preannotations_from_folder_to_project()` to handle upload based on JSON schema version `1.0.40`. -- `create_project()` to add `"status"` key in returned metadata. -- `get_project_metadata()` to add `"status"` key. -- `create_project_from_project_metadata()` to make `"description"` key not required. -- `clone_project()` to add generic `"description"`. -### Fixed -- `sa.get_annotations_per_frame()` to take correct attributes. -- `sa.get_annotations_per_frame()` & `get_annotations()` to eliminate duplicate instances. -### -## 4.3.0 - Feb 27 2022 -### Added -- `get_annotations` to load annotations for the list of items. -- `get_annotations_per_frame` to generate frame by frame annotations for the given video. -### Updated -- `get_image_annotations()` to reference `get_annotations()`. -- `create_annotation_class()` to add `class_type` in parameters to specify class type on creation. -- `create_annotation_classes_from_classes_json()` to handle class type in classes JSON. -- `search_annotation_classes()` to return class type in metadata. -- `upload_annotations_from_folder_to_project()` to handle tag annotations. -- `upload_preannotations_from_folder_to_project()` to handle tag annotations. -- `upload_image_annotations()` to handle tag annotations. -- `validate_annotations()` to validate vector annotation schema with tag instances. -- `aggregate_annotations_as_df()` to handle tag annotations in annotations df. -- `class_distribution()` to handle class distribution of tag instances. -- `upload_images_from_public_urls()` for deprecation log. -### Fixed -- `upload_images_from_folder_to_project()` to upload images without invalid rotation. -- `upload-annotations` CLI to upload annotations to specified folder. -- `create_project_from_metadata()` to setup image quality and workflow from given metadata. -- `get_project_metadata()` to return information on project contributors. -- `get_project_metadata()` to return number of completed images in project root. -- `get_project_workflow()` to return `className` in project workflow. -- file handler permissions in GColab at `import` stage of the package. -### -## 4.2.9 - Jan 30 2022 -### Added -- `superannotate_schemas` as a stand alone package on annotation schemas. -### Updated -- `upload_annotations_from_folder_to_project()` to reference the `validate_annotations()`. -- `upload_videos_from_folder_to_project()` to remove code duplications. -- `clone_project()` to set upload state of clone project to inital. -### Fixed -- `validate_annotations()` to fix rotated bounding box schema. -### Removed -- Third party logs from logging mechanism. -### -## 4.2.8 - Jan 9 2022 -### Added -- `invite_contributers_to_team()` for bulk team invite. -- `add_contributors_to_project()` for bulk project sharing. -### Updated -- `upload_images_from_folder_to_project()` for non existing S3 path handling. -- `upload_annotations_from_folder_to_project()` for template name and class processing on template annotation upload. -- `add_annotation_comment_to_image()` for unrecognized author processing. -- `add_annotation_point_to_image()` for valid point addition on empty state. -- `add_annotation_bbox_to_image()` for valid bbox addition on empty state. -- `add_annotation_comment_to_image()` for valid comment addition on empty state. -### Fixed -- `superannotatecli upload_images` to accept default list of image extensions. -### Removed -- `invite_contributor_to_team()` use `invite_contributors_to_team()` instead. -### -## 4.2.7 - Dec 12 2021 -### Added -- Logging mechanism. -### Updated -- Cloning projects with attached URLs. -- Improve relation between image status and annotations. -- Deprecate functions of zero usage. -### Fixed -- Small bug fix & enhancements. -### -## 4.2.6 - Nov 21 2021 -### Added -- Validation schemas for annotations. -- Dataframe aggregation for video projects. -### Fixed -- Minor bug fixes and enhancements. -### -## 4.2.4 - Nov 2 2021 -### Fixed -- Minor bug fixes and enhancements. -### -## 4.2.3 - Oct 31 2021 -### Fixed -- Minor bug fixes and enhancements. -### -## 4.2.2 - Oct 22 2021 -### Fixed -- Minor bug fixes and enhancements. -### -## 4.2.1 - Oct 13 2021 -### Fixed -- `init` functionality. -- `upload_annotation` functionality. -### -## 4.2.0 - Oct 10 2021 -### Added -- `delete_annotations()` for bulk annotation delete. -### Updated -- Project/folder limitations. -### Fixed -- Refactor and major bug fix. -## 4.1.9 - Sep 22 2021 -### Added -- Text project support. -## 4.1.8 - Aug 15 2021 -### Added -- Video project release. -### -## 4.1.7 - Aug 1 2021 -### Fixed -- Video upload refinements. -### -## 4.1.6 - Jul 19 2021 -### Added -- Training/Test data with folder structure. -- Token validation. -### Updated -- Add success property on mixpanel events. -### Fixed -- Upload template enhancements. -### -## 4.1.5 - Jun 16 2021 -### Added -- Folder assignment. -### Updated -- COCO keypoint enhancements. -### -## 4.1.4 - May 26 2021 -### Added -- Mixpanel Integration. -### Updated -- Image upload enhancements. -- Video upload enhancements. -- Annotation upload enhancements. -- Consensus enhancements. -- Image copy/move enhancements. -- COCO import/export enhancements. -- AWS region enhancements. -### -## 4.1.3 - Apr 19 2021 -### Added -- Folder limitations. -### -## 4.1.2 - Apr 1 2021 -### Fixed -- Video upload to folder. -### -## 4.1.1 - Mar 31 2021 -### Added -- Attach image URLs. -### -## 4.1.0 - Mar 22 2021 -### Added -- Folder structure on platform. -### -## 4.0.1 - Mar 15 2021 -### Updated -- The FPS change during video upload has more stable frame choosing algorithm now. -### -## 4.0.0 - Feb 28 2021 -### Updated -- Improved image storage structure on platform, which requires this upgrade in SDK. This change in platform is backward incompatible with previous versions of SDK. -### -Changelog not maintained before version 4.0.0. diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 000000000..d20da23b3 --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,596 @@ +.. _ref_history: + +======= +History +======= + +All release highlights of this project will be documented in this file. + +4.4.11 - April 2, 2023 +______________________ + +**Added** + + - ``SAClient.set_project_status()`` method. + - ``SAClient.set_folder_status()`` method. + +**Updated** + + - ``SAClient.create_annotation_class()`` added OCR type attribute group support in the vector projects. + - ``SAClient.create_annotation_classes_from_classes_json()`` added OCR type attribute group support in the vector projects. + +4.4.10 - March 12, 2023 +_______________________ + +**Updated** + + - Configuration file creation flow + - ``SAClient.search_projects()`` method, removed ``include_complete_image_count`` argument, use ``include_complete_item_count`` instead. + - ``SAClient.get_project_metadata()`` method, removed ``include_complete_image_count`` argument, use ``include_complete_item_count`` instead. + - ``SAClient.create_project()`` method to support classes, workflows and instructions_link. + +**Fixed** + + - ``SAClient.clone_project()`` method to address the issue of FPS mode is not being copied. + +**Deprecated** + + - ``SAClient.create_project_from_metadata()`` method, use ``SAClient.create_project()`` instead. + - ``SAClient.get_project_image_count()`` method, use ``SAClient.get_project_metadata()`` instead. + +**Removed** + + - ``SAClient.class_distribution()`` method + - ``SAClient.benchmark()`` method + +4.4.9 - January 29, 2023 +________________________ + +**Added** + + - ``SAClient.set_approval_statuses`` method function to change the approval status of items (images, audio / videos) in bulk. + +**Updated** + + - ``SAClient.convert_project_type`` method updated from Pixel to Vector converter, added polygon holes handling. + +4.4.8 - December 25, 2022 +____________________________ + +**Added** + + - New project types ``Tiled``, ``PointCloud``, ``Other``. + - ``SAClient.get_project_by_id`` method to get project metadata by id. + - ``SAClient.get_folder_by_id`` method to get folder metadata by id. + - ``SAClient.get_item_by_id`` method to get item metadata by id. + +**Updated** + + - ``SAClient.consensus`` method to compute agreement scores between tag type annotations. + +4.4.7 - December 04, 2022 +_________________________ + +**Updated** + + - ``SAClient.search_folders`` method to add a new ``status`` argument for searching folders via status. + - Schemas for ``Annotation Classes`` and ``Video Annotation`` to support **text** and **numeric input** attribute group types. + +**Fixed** + + - ``SAClient.query`` method to address invalid exceptions. + - ``SAClient.download_export`` method to address the issue with downloading for Windows OS. + - ``SAClient.attach_items_from_integrated_storage`` method to address "integration not found" error. + - ``SAClient.aggregate_annotations_as_df`` method to support files without "___objects" in their naming. + +**Removed** + + - ``SAClient.add_annotation_bbox_to_image`` method, use ``SAClient.upload_annotations`` instead. + - ``SAClient.add_annotation_point_to_image`` method, use ``SAClient.upload_annotations`` instead. + - ``SAClient.add_annotation_comment_to_image`` method, use ``SAClient.upload_annotations`` instead. + +4.4.6 - November 23, 2022 +_________________________ + +**Updated** + + - ``SAClient.aggregate_annotations_as_df`` method to aggregate "comment" type instances. + - ``SAClient.add_annotation_bbox_to_image``, ``SAClient.add_annotation_point_to_image``, ``SAClient.add_annotation_comment_to_image`` methods to add deprecation warnings. + +**Fixed** + + - Special characters are being encoded after annotation upload (Windows) + - ``SAClient.assign_folder`` method to address the invalid argument name. + - ``SAClient.upload_images_from_folder_to_project`` method to address uploading of more than 500 items. + - ``SAClient.upload_annotations_from_folder_to_project`` method to address the issue of a folder size being more than 25,5 MB. + - ``SAClient.download_image`` method to address the KeyError 'id' when ``include_annotations`` is set to ``True``. + +**Removed** + + - ``SAClient.upload_preannotations_from_folder_to_project`` method + - ``SAClient.copy_image`` method + +4.4.5 - October 23, 2022 +________________________ + +**Added** + + - ``SAClient.add_items_to_subset`` method to associate given items with a Subset. + - ``SAClient.upload_annotations`` method to upload annotations in SA format from the system memory. + +**Updated** + + - ``SAClient.upload_annotations_from_folder_to_project`` & ``SAClient.upload_image_annotations`` methods to add ``keep_status`` argument to prevent the annotation status from changing to **In Progress** after the annotation upload. + - Item metadata to add a new key for holding the id of an item. + - ``SAClient.upload_preannotations_from_folder_to_project`` to add a deprecation warning message. + - ``SAClient.copy_image`` to add a deprecation warning message. + +**Fixed** + + - ``SAClient.validate_annotations`` method. + - ``SAClient.search_items``, ``SAClient.get_item_metadata`` methods to address defects related to pydantic 1.8.2. + - A defect related to editor to address the issue of uploading a tag instance without attributes. + +4.4.4 - September 11, 2022 +__________________________ + +**Updated** + + - Improvements on working with large files. + +**Fixed** + + - ``SAClient.upload_annotations_from_folder_to_project()`` method to address the issue of the disappearing progress bar. + - ``SAClient.run_prediction()`` method to address the issue of the OCR model. + - ``SAClient.validate_annotations()`` method to address the issue of missing log messages. + - ``SAClient.create_project_from_metadata()`` method to address the issue of returning deprecated ``is_multiselect`` key. + - ``SAClient.get_annotations()`` method to address the issue of returning error messages as annotation dicts. + +4.4.2, 4.4.3 - August 21, 2022 +______________________________ + +**Updated** + + - the **schema** of ``classes JSON`` to support new values for the ``"group_type"`` key for a given attribute group. ``"group_type": "radio" | "checklist" | "text" | "numeric"``. + - the **schema** of ``video annotation JSON`` to support instances that have a ``"tag"`` type. + +**Fixed** + + - ``SAClient.get_annotations()`` method to address the issue of working with the large projects. + - ``SAClient.get_annotations_per_frame()`` method to address the issue of throwing an error on small videos when the fps is set to 1. + - ``SAClient.upload_annotations_from_folder_to_project()`` to address the issue of timestamp values represented in seconds for the ``"lastAction"``. + - ``SAClient.download_export()`` method to address the issue of empty logs. + - ``SAClient.clone_project()`` method to address the issue of having a corrupted project clone, when the source project has a keypoint workflow. + +4.4.1 - July 24, 2022 +_____________________ + +**Added** + + - ``SAClient.create_custom_fields()`` method to create/add new custom fields to a project’s custom field schema. + - ``SAClient.get_custom_fields()`` method to get a project’s custom field schema. + - ``SAClient.delete_custom_fields()`` method to remove existing custom fields from a project’s custom field schema. + - ``SAClient.upload_custom_values()`` method to attach custom field-value pairs to items. + - ``SAClient.delete_custom_values()`` method to remove custom field-value pairs from items. + +**Updated** + + - The **schema** of ``classes JSON`` to support the new ``"default_value"`` key to set a default attribute(s) for a given attribute group. + - ``SAClient.get_item_metadata()`` method to add a new input argument ``include_custom_metadata`` to return custom metadata in the result items. + - ``SAClient.search_items()`` method to add a new input argument ``include_custom_metadata`` to return custom metadata in the result items. + - ``SAClient.query()`` method to return custom metadata in the result items. + +**Fixed** + + - ``SAClient`` class to address the system crash that occurs on instantiation via ``config.json`` file. + - ``SAClient.query()`` method to address the issue of not returning more than 50 items. + - ``SAClient.upload_annotations_from_folder_to_project()`` to address the issue of some fields not being auto populated after the upload is finished. + - ``SAClient.get_folder_metadata()``, ``SAClient.search_folders()`` to address the issue of transforming the ‘+’ sign in a folder to a whitespace. + +**Removed** + + - ``superannotate.assign_images()`` function. Please use the ``SAClient.assign_items()`` method instead. + - ``superannotate.unassign_images()`` function. Please use the ``SAClient.unassign_items()`` method instead. + - ``superannotate.delete_images()`` function. Please use the ``SAClient.delete_items()`` method instead. + +4.4.0 - July 03, 2022 +_____________________ + +**Added** + + - ``superannotate.SAClient()`` class to instantiate team-level authentication and inheriting methods to access the back-end. + - ``SAClient.download_annotations()`` method to download annotations without preparing an Export object. + - ``SAClient.get_subsets()`` method to get the existing subsets for a given project. + - ``SAClient.assign_items()`` method to assign items in a given project to annotators or quality specialists. + - ``SAClient.unassign_items()`` method to remove assignments from items. + - ``SAClient.delete_items()`` method to delete items in a given project. + +**Updated** + + - ``JSON Schema`` for video annotations to version ``1.0.45`` to show **polygon** and **polyline** annotations. + - ``SAClient.get_annotations_per_frame()`` method to show **polygon** and **polyline** annotations. + - ``SAClient.get_annotations_per_frame()`` method to pick instances closer to a given **frame start** instead of the **median**. + - ``SAClient.query()`` method to add the ``subset`` argument to support querying in a subset. + +**Fixed** + + - ``SAClient.set_annotation_statuses()`` method to address the issue occurring with more than 500 items. + - ``SAClient.get_annotations()`` method to address the ``PayloadError`` occurring with more than 20000 items. + - ``SAClient.get_annotations()`` method to address the missing ``'duration'`` and ``'tags'`` keys for newly uploaded and unannotated videos. + - ``SAClient.get_annotations_per_frame()`` method to address missing ``'duration'`` and ``'tags'`` keys for newly uploaded and unannotated videos. + - ``SAClient.get_annotations_per_frame()`` method to address the wrong ``classId`` value for unclassified instances. + +**Removed** + + - ``superannotate.init()`` function. Please instantiate ``superannotate.SAClient()`` class to authenticate. + - ``superannotate.set_image_annotation_status()`` function. Please use the ``SAClient.set_annotation_statuses()`` method instead. + - ``superannotate.set_images_annotations_statuses()`` function. Please use the ``SAClient.set_annotation_statuses()`` method instead. + +4.3.4 - May 22, 2022 +____________________ + +**Updated** + + - ``JSON Schema`` for video annotations to version ``x`` to reflect point annotations. + - ``superannotate.download_export()`` function to preserve SA folder structure while downloading to S3 bucket. + - ``superannotate.get_item_metadata()`` function to have string type values instead of int type for the ``approval_status`` key. + - ``superannotate.get_item_metadata()`` function to change the value for the ``path`` key in the item metadata from ``project/folder/item`` format to ``project/folder``. + - ``superannotate.get_item_metadata()`` function to add the ``is_pinned`` key in the returned metadata. + - ``superannotate.clone_project()`` function to have ``NotStarted`` project status for the newly created project. + +**Fixed** + + - ``superannotate.query()`` function to address the missing value for the ``path`` key. + - ``superannotate.import_annotation()`` function to address the extension issue with JPEG files while converting from ``VOC`` to SA. + - ``superannotate.import_annotation()`` function to address int type pointlabels in the converted ``JSON`` from ``COCO`` to SA. + - ``superannotate_get_annotations()`` & ``superannotate.add_annotation_comment_to_image()`` to address the issue with ``asyncio`` occurring on Windows. + - ``superannotate.set_image_annotation_status()`` function add a deprecation warning. + - ``superannotate.set_images_annotation_statuses()`` function add a deprecation warning. + +**Removed** + + - ``share_projects()`` function. + - ``superannotate.attach_image_urls_to_project()`` function. Please use the ``superannotate.attach_items()`` function instead. + - ``superannotate.attach_document_urls_to_project()`` function. Please use the ``superannotate.attach_items()`` function instead. + - ``superannotate.attach_video_urls_to_project()`` function. Please use the ``superannotate.attach_items()`` function instead. + - ``superannotate.copy_images()`` function. Please use the ``superannotate.copy_items()`` function instead. + - ``superannotate.move_images()`` function. Please use the ``superannotate.move_items()`` function instead. + +4.3.3 - May 01 2022 +___________________ + +**Added** + + - ``attach_items()`` function to link items (images, videos, and documents) from external storages to SuperAnnotate using URLs. + - ``copy_items()`` function to copy items (images, videos, and documents) in bulk between folders in a project. + - ``move_items()`` function to move items (images, videos, and documents) in bulk between folders in a project. + - ``set_annotation_statuses()`` function to change the annotation status of items (images, videos, and documents) in bulk. + +**Updated** + + - ``aggregate_annotations_as_df()`` function now supports Text Projects. + +**Fixed** + + - ``validate_annotations()`` function to accept only numeric type values for the ``points`` field. + - ``prepare_export()`` function to address the issue when the entire project is prepared when a wrong folder name is provided. + - ``search_team_contributors()`` function to address the error message when ``email`` parameter is used. + - ``get_item_metadata()`` to address the issue with approved/disapproved items. + +**Removed** + + - ``get_project_and_folder_metadata()`` function. + - ``get_image_metadata()`` function. Please use ``get_item_metadata()`` instead. + - ``search_images()`` function. Please use ``search_items()`` instead. + - ``search images_all_folders()`` function. Please use ``search_items()`` instead. + +4.3.2 - April 10 2022 +_____________________ + +**Added** + + - ``query()`` function to run SAQuL queries via SDK. + - ``search_items()`` function to search items by various filtering criteria for all supported project types. ``search_images()`` and ``search_images_all_folders()`` functions will be deprecated. + - ``get_item_metadata()`` function to get item metadata for all supported project types. ``get_image_metadata()`` will be deprecated. + +**Updated** + + - ``search_projects()`` function to add new parameter that gives an option to filter projects by project ``status``. + - ``get_annotation_per_frame()`` function to add a unique identifier for each annotation instance. + +**Fixed** + + - pixel annotations to address the issue with the hex code. + - ``sa.validate_annotations()`` function to address the incorrect error message. + - ``create_project_from_metadata()`` function to address the issue with instructions. + +**Removed** + + - ``get_image_annotations()`` function. Please use ``get_annotations()`` + - ``upload_images_from_public_urls()`` function. + +4.3.1 - March 20 2022 +_____________________ + +**Added** + + - ``get_integrations()`` to list all existing integrations with cloud storages. + - ``attach_items_from_integrated_storage()`` to attach items from an integrated cloud storage. + - ``upload_priority_scores()`` to set priority scores for a given list of items. + +**Updated** + + - ``JSON Schema`` to version ``1.0.40`` to add instance type differentiation for text annotations and ``"exclude"`` key for subtracted polygon instances for image annotations. + - ``validate_annotations()`` to validate text and image annotations based on JSON schema version ``1.0.40``. + - ``get_annotations()`` to get annotation instances based on JSON schema version ``1.0.40``. + - ``prepare_export()`` to prepare for the download annotations with based on JSON schema version ``1.0.40``. + - ``upload_annotations_from_folder_to_project()`` & ``upload_preannotations_from_folder_to_project()`` to handle upload based on JSON schema version ``1.0.40``. + - ``create_project()`` to add ``"status"`` key in returned metadata. + - ``get_project_metadata()`` to add ``"status"`` key. + - ``create_project_from_project_metadata()`` to make ``"description"`` key not required. + - ``clone_project()`` to add generic ``"description"``. + +**Fixed** + + - ``sa.get_annotations_per_frame()`` to take correct attributes. + - ``sa.get_annotations_per_frame()`` & ``get_annotations()`` to eliminate duplicate instances. + +4.3.0 - Feb 27 2022 +___________________ + +**Added** + + - ``get_annotations`` to load annotations for the list of items. + - ``get_annotations_per_frame`` to generate frame by frame annotations for the given video. + +**Updated** + + - ``get_image_annotations()`` to reference ``get_annotations()``. + - ``create_annotation_class()`` to add ``class_type`` in parameters to specify class type on creation. + - ``create_annotation_classes_from_classes_json()`` to handle class type in classes JSON. + - ``search_annotation_classes()`` to return class type in metadata. + - ``upload_annotations_from_folder_to_project()`` to handle tag annotations. + - ``upload_preannotations_from_folder_to_project()`` to handle tag annotations. + - ``upload_image_annotations()`` to handle tag annotations. + - ``validate_annotations()`` to validate vector annotation schema with tag instances. + - ``aggregate_annotations_as_df()`` to handle tag annotations in annotations df. + - ``class_distribution()`` to handle class distribution of tag instances. + - ``upload_images_from_public_urls()`` for deprecation log. + +**Fixed** + + - ``upload_images_from_folder_to_project()`` to upload images without invalid rotation. + - ``upload-annotations`` CLI to upload annotations to specified folder. + - ``create_project_from_metadata()`` to setup image quality and workflow from given metadata. + - ``get_project_metadata()`` to return information on project contributors. + - ``get_project_metadata()`` to return number of completed images in project root. + - ``get_project_workflow()`` to return ``className`` in project workflow. + - file handler permissions in GColab at ``import`` stage of the package. + +4.2.9 - Jan 30 2022 +___________________ + +**Added** + + - ``superannotate_schemas`` as a stand alone package on annotation schemas. + +**Updated** + + - ``upload_annotations_from_folder_to_project()`` to reference the ``validate_annotations()``. + - ``upload_videos_from_folder_to_project()`` to remove code duplications. + - ``clone_project()`` to set upload state of clone project to initial. + +**Fixed** + + - ``validate_annotations()`` to fix rotated bounding box schema. + +**Removed** + + - Third party logs from logging mechanism. + +4.2.8 - Jan 9 2022 +__________________ + +**Added** + + - ``invite_contributers_to_team()`` for bulk team invite. + - ``add_contributors_to_project()`` for bulk project sharing. + +**Updated** + + - ``upload_images_from_folder_to_project()`` for non existing S3 path handling. + - ``upload_annotations_from_folder_to_project()`` for template name and class processing on template annotation upload. + - ``add_annotation_comment_to_image()`` for unrecognized author processing. + - ``add_annotation_point_to_image()`` for valid point addition on empty state. + - ``add_annotation_bbox_to_image()`` for valid bbox addition on empty state. + - ``add_annotation_comment_to_image()`` for valid comment addition on empty state. + +**Fixed** + + - ``superannotatecli upload_images`` to accept default list of image extensions. + +**Removed** + + - ``invite_contributor_to_team()`` use ``invite_contributors_to_team()`` instead. + +4.2.7 - Dec 12 2021 +___________________ + +**Added** + + - Logging mechanism. + +**Updated** + + - Cloning projects with attached URLs. + - Improve relation between image status and annotations. + - Deprecate functions of zero usage. + +**Fixed** + + - Small bug fix & enhancements. + +4.2.6 - Nov 21 2021 +___________________ + +**Added** + + - Validation schemas for annotations. + - Dataframe aggregation for video projects. + +**Fixed** + + - Minor bug fixes and enhancements. + +4.2.4 - Nov 2 2021 +__________________ + +**Fixed** + + - Minor bug fixes and enhancements. + +4.2.3 - Oct 31 2021 +___________________ + +**Fixed** + + - Minor bug fixes and enhancements. + +4.2.2 - Oct 22 2021 +___________________ + +**Fixed** + + - Minor bug fixes and enhancements. + +4.2.1 - Oct 13 2021 +___________________ + +**Fixed** + + - ``init`` functionality. + - ``upload_annotation`` functionality. + +4.2.0 - Oct 10 2021 +___________________ + +**Added** + + - ``delete_annotations()`` for bulk annotation delete. + +**Updated** + + - Project/folder limitations. + +**Fixed** + + - Refactor and major bug fix. + +4.1.9 - Sep 22 2021 +___________________ + +**Added** + + - Text project support. + +4.1.8 - Aug 15 2021 +___________________ + +**Added** + + - Video project release. + +4.1.7 - Aug 1 2021 +__________________ + +**Fixed** + + - Video upload refinements. + +4.1.6 - Jul 19 2021 +___________________ + +**Added** + + - Training/Test data with folder structure. + - Token validation. + +**Updated** + + - Add success property on mixpanel events. + +**Fixed** + + - Upload template enhancements. + +4.1.5 - Jun 16 2021 +___________________ + +**Added** + + - Folder assignment. + +**Updated** + + - COCO keypoint enhancements. + +4.1.4 - May 26 2021 +___________________ + +**Added** + + - Mixpanel Integration. + +**Updated** + + - Image upload enhancements. + - Video upload enhancements. + - Annotation upload enhancements. + - Consensus enhancements. + - Image copy/move enhancements. + - COCO import/export enhancements. + - AWS region enhancements. + +4.1.3 - Apr 19 2021 +___________________ + +**Added** + + - Folder limitations. + +4.1.2 - Apr 1 2021 +__________________ + +**Fixed** + + - Video upload to folder. + +4.1.1 - Mar 31 2021 +___________________ + +**Added** + + - Attach image URLs. + +4.1.0 - Mar 22 2021 +___________________ + +**Added** + + - Folder structure on platform. + +4.0.1 - Mar 15 2021 +___________________ + +**Updated** + + - The FPS change during video upload has more stable frame choosing algorithm now. + +4.0.0 - Feb 28 2021 +___________________ + +**Updated** + + - Improved image storage structure on platform, which requires this upgrade in SDK. This change in platform is backward incompatible with previous versions of SDK. + +Changelog not maintained before version 4.0.0. diff --git a/README.rst b/README.rst index 4d7c71847..675982ff3 100644 --- a/README.rst +++ b/README.rst @@ -12,7 +12,7 @@ Welcome to the SuperAnnotate Python Software Development Kit (SDK), which enable :target: https://github.com/superannotateai/superannotate-python-sdk/blob/master/LICENSE/ :alt: License .. |Changelog| image:: https://img.shields.io/static/v1?label=change&message=log&color=yellow&style=flat-square - :target: https://github.com/superannotateai/superannotate-python-sdk/blob/master/CHANGELOG.md + :target: https://github.com/superannotateai/superannotate-python-sdk/blob/master/CHANGELOG.rst :alt: Changelog Resources diff --git a/docs/source/changelog_link.rst b/docs/source/changelog_link.rst new file mode 100644 index 000000000..09929fe43 --- /dev/null +++ b/docs/source/changelog_link.rst @@ -0,0 +1 @@ +.. include:: ../../CHANGELOG.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index fe53b1efb..b4d9afc86 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -16,6 +16,7 @@ API Reference CLI Reference SA Server + History LICENSE.rst ---------- diff --git a/src/superannotate/lib/app/interface/base_interface.py b/src/superannotate/lib/app/interface/base_interface.py index 50b1ecdf5..5725a58a0 100644 --- a/src/superannotate/lib/app/interface/base_interface.py +++ b/src/superannotate/lib/app/interface/base_interface.py @@ -211,7 +211,9 @@ def _track_method(self, args, kwargs, success: bool): team_name = client.controller.team_data.name properties["Success"] = success - default = self.get_default_payload(team_name=team_name, user_email=user_email) + default = self.get_default_payload( + team_name=team_name, user_email=user_email + ) self._track( user_email, event_name, diff --git a/tests/integration/mixpanel/test_mixpanel_decorator.py b/tests/integration/mixpanel/test_mixpanel_decorator.py index 87263d991..9a34011b0 100644 --- a/tests/integration/mixpanel/test_mixpanel_decorator.py +++ b/tests/integration/mixpanel/test_mixpanel_decorator.py @@ -67,9 +67,7 @@ def test_init(self, track_method): @patch("lib.app.interface.base_interface.Tracker._track") @patch("lib.core.usecases.GetTeamUseCase") @patch("lib.infrastructure.serviceprovider.ServiceProvider.get_user") - def test_init_via_token( - self, get_user, get_team_use_case, track_method - ): + def test_init_via_token(self, get_user, get_team_use_case, track_method): SAClient(token="test=3232") result = list(track_method.call_args)[0] payload = self.default_payload @@ -87,9 +85,7 @@ def test_init_via_token( @patch("lib.app.interface.base_interface.Tracker._track") @patch("lib.core.usecases.GetTeamUseCase") @patch("lib.infrastructure.serviceprovider.ServiceProvider.get_user") - def test_init_via_config_file( - self, get_user, get_team_use_case, track_method - ): + def test_init_via_config_file(self, get_user, get_team_use_case, track_method): with tempfile.TemporaryDirectory() as config_dir: config_ini_path = f"{config_dir}/config.ini" with patch("lib.core.CONFIG_INI_FILE_LOCATION", config_ini_path): @@ -191,12 +187,8 @@ def test_create_project_multi_thread(self, track_method): "project_description": self.PROJECT_DESCRIPTION, "project_type": self.PROJECT_TYPE, } - thread_1 = threading.Thread( - target=sa.create_project, kwargs=kwargs_1 - ) - thread_2 = threading.Thread( - target=sa.create_project, kwargs=kwargs_2 - ) + thread_1 = threading.Thread(target=sa.create_project, kwargs=kwargs_1) + thread_2 = threading.Thread(target=sa.create_project, kwargs=kwargs_2) thread_1.start() thread_2.start() thread_1.join()