diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md index c9739bfa2901..36d630b4135a 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md @@ -1,6 +1,7 @@ # Change Log azure-ai-formrecognizer ## 1.0.0b4 (Unreleased) + **Breaking Changes** - Remove `RecognizedReceipts` Class. @@ -8,6 +9,10 @@ - `requested_on` renamed to `training_started_on` and `completed_on` renamed to `training_completed_on` on `CustomFormModel` and `CustomFormModelInfo` +**Fixes and improvements** + +- Fixes a bug where `text_angle` was being returned out of the specified interval (-180, 180] + ## 1.0.0b3 (2020-06-10) **Breaking Changes** diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py index 27e0e32a6c3a..54d85ee5ca6a 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py @@ -20,6 +20,14 @@ def adjust_confidence(score): return score +def adjust_text_angle(text_angle): + """Adjust to (-180, 180] + """ + if text_angle > 180: + text_angle -= 360 + return text_angle + + def get_elements(field, read_result): text_elements = [] @@ -327,7 +335,7 @@ def __init__(self, **kwargs): def _from_generated(cls, read_result): return [cls( page_number=page.page, - text_angle=page.angle, + text_angle=adjust_text_angle(page.angle), width=page.width, height=page.height, unit=page.unit, diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_response_handlers.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_response_handlers.py index b1ec8c79a957..85615df99e88 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_response_handlers.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_response_handlers.py @@ -13,7 +13,8 @@ FormTable, FormTableCell, FormPageRange, - RecognizedForm + RecognizedForm, + adjust_text_angle ) @@ -70,7 +71,7 @@ def prepare_content_result(response): for idx, page in enumerate(read_result): form_page = FormPage( page_number=page.page, - text_angle=page.angle, + text_angle=adjust_text_angle(page.angle), width=page.width, height=page.height, unit=page.unit, diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py index 406e59585b02..c6c80def012e 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py @@ -164,7 +164,10 @@ def assertFormPagesTransformCorrect(self, pages, actual_read, page_result=None, if hasattr(page, "pages"): # this is necessary for how unlabeled forms are structured page = page.pages[0] self.assertEqual(page.page_number, actual_page.page) - self.assertEqual(page.text_angle, actual_page.angle) + if actual_page.angle <= 180: + self.assertEqual(page.text_angle, actual_page.angle) + if actual_page.angle > 180: + self.assertEqual(page.text_angle, actual_page.angle - 360) self.assertEqual(page.width, actual_page.width) self.assertEqual(page.height, actual_page.height) self.assertEqual(page.unit, actual_page.unit)