Skip to content

Commit

Permalink
[translation] filters renames/alignment (#19826)
Browse files Browse the repository at this point in the history
* align with .net naming and map order_by query string to property name

* update tests and re-enable mixed filters tests

* update changelog

* fix type hint
  • Loading branch information
kristapratico authored Jul 21, 2021
1 parent 865065c commit dde54e1
Show file tree
Hide file tree
Showing 10 changed files with 3,612 additions and 83 deletions.
5 changes: 5 additions & 0 deletions sdk/translation/azure-ai-translation-document/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@

### Breaking Changes

- Changed: renamed kwargs `translated_before` and `translated_after` to `created_before` and `created_after`, respectively,
for `list_all_document_statuses`.
- Changed: renamed `order_by` sorting query option `createdDateTimeUtc` to `created_on` for `list_all_translation_statuses` and
`list_all_document_statuses`.

### Bugs Fixed

### Other Changes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from ._helpers import (
get_http_logging_policy,
convert_datetime,
convert_order_by,
get_authentication_policy,
get_translation_input,
POLLING_INTERVAL,
Expand Down Expand Up @@ -231,14 +232,17 @@ def list_all_translation_statuses(self, **kwargs):
By default, we sort by all submitted operations descendingly by start time.
:keyword int results_per_page: is the number of operations returned per page.
:keyword list[str] translation_ids: translation operations ids to filter by.
:keyword list[str] statuses: translation operation statuses to filter by.
:keyword list[str] statuses: translation operation statuses to filter by. Options include
'NotStarted', 'Running', 'Succeeded', 'Failed', 'Cancelled', 'Cancelling',
and 'ValidationFailed'.
:keyword created_after: get operations created after certain datetime.
:paramtype created_after: Union[str, datetime.datetime]
:keyword created_before: get operations created before certain datetime.
:paramtype created_before: Union[str, datetime.datetime]
:keyword list[str] order_by: the sorting query for the operations returned.
format: ["parm1 asc/desc", "parm2 asc/desc", ...]
(ex: 'createdDateTimeUtc asc', 'createdDateTimeUtc desc').
:keyword list[str] order_by: the sorting query for the operations returned. Currently only
'created_on' supported.
format: ["param1 asc/desc", "param2 asc/desc", ...]
(ex: 'created_on asc', 'created_on desc').
:return: A pageable of TranslationStatus.
:rtype: ~azure.core.paging.ItemPaged[TranslationStatus]
:raises ~azure.core.exceptions.HttpResponseError:
Expand All @@ -252,6 +256,8 @@ def list_all_translation_statuses(self, **kwargs):
:dedent: 4
:caption: List all submitted translations under the resource.
"""

order_by = convert_order_by(kwargs.pop("order_by", None))
created_after = kwargs.pop("created_after", None)
created_before = kwargs.pop("created_before", None)
created_after = convert_datetime(created_after) if created_after else None
Expand Down Expand Up @@ -279,6 +285,7 @@ def _convert_from_generated_model(
created_date_time_utc_start=created_after,
created_date_time_utc_end=created_before,
ids=translation_ids,
order_by=order_by,
**kwargs
)

Expand All @@ -293,14 +300,17 @@ def list_all_document_statuses(self, translation_id, **kwargs):
By default, we sort by all documents descendingly by start time.
:keyword int results_per_page: is the number of documents returned per page.
:keyword list[str] document_ids: document IDs to filter by.
:keyword list[str] statuses: document statuses to filter by.
:keyword translated_after: get document translated after certain datetime.
:paramtype translated_after: Union[str, datetime.datetime]
:keyword translated_before: get document translated before certain datetime.
:paramtype translated_before: Union[str, datetime.datetime]
:keyword list[str] order_by: the sorting query for the documents.
format: ["parm1 asc/desc", "parm2 asc/desc", ...]
(ex: 'createdDateTimeUtc asc', 'createdDateTimeUtc desc').
:keyword list[str] statuses: document statuses to filter by. Options include
'NotStarted', 'Running', 'Succeeded', 'Failed', 'Cancelled', 'Cancelling',
and 'ValidationFailed'.
:keyword created_after: get document created after certain datetime.
:paramtype created_after: Union[str, datetime.datetime]
:keyword created_before: get document created before certain datetime.
:paramtype created_before: Union[str, datetime.datetime]
:keyword list[str] order_by: the sorting query for the documents. Currently only
'created_on' is supported.
format: ["param1 asc/desc", "param2 asc/desc", ...]
(ex: 'created_on asc', 'created_on desc').
:return: A pageable of DocumentStatus.
:rtype: ~azure.core.paging.ItemPaged[DocumentStatus]
:raises ~azure.core.exceptions.HttpResponseError:
Expand All @@ -314,13 +324,15 @@ def list_all_document_statuses(self, translation_id, **kwargs):
:dedent: 4
:caption: List all the document statuses as they are being translated.
"""
translated_after = kwargs.pop("translated_after", None)
translated_before = kwargs.pop("translated_before", None)
translated_after = (
convert_datetime(translated_after) if translated_after else None

order_by = convert_order_by(kwargs.pop("order_by", None))
created_after = kwargs.pop("created_after", None)
created_before = kwargs.pop("created_before", None)
created_after = (
convert_datetime(created_after) if created_after else None
)
translated_before = (
convert_datetime(translated_before) if translated_before else None
created_before = (
convert_datetime(created_before) if created_before else None
)
results_per_page = kwargs.pop("results_per_page", None)
document_ids = kwargs.pop("document_ids", None)
Expand All @@ -341,9 +353,10 @@ def _convert_from_generated_model(generated_model):
id=translation_id,
cls=model_conversion_function,
maxpagesize=results_per_page,
created_date_time_utc_start=translated_after,
created_date_time_utc_end=translated_before,
created_date_time_utc_start=created_after,
created_date_time_utc_end=created_before,
ids=document_ids,
order_by=order_by,
**kwargs
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# ------------------------------------

import datetime
from typing import Union
from typing import Union, Optional, List
import six
from azure.core.credentials import AzureKeyCredential
from azure.core.pipeline.policies import AzureKeyCredentialPolicy
Expand Down Expand Up @@ -123,3 +123,10 @@ def convert_datetime(date_time):
except ValueError:
return datetime.datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S")
raise TypeError("Bad datetime type")


def convert_order_by(order_by):
# type: (Optional[List[str]]) -> Optional[List[str]]
if order_by:
order_by = [order.replace("created_on", "createdDateTimeUtc") for order in order_by]
return order_by
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from .._helpers import (
get_http_logging_policy,
convert_datetime,
convert_order_by,
get_authentication_policy,
get_translation_input,
POLLING_INTERVAL,
Expand Down Expand Up @@ -243,14 +244,17 @@ def list_all_translation_statuses(self, **kwargs):
By default, we sort by all submitted operations descendingly by start time.
:keyword int results_per_page: is the number of operations returned per page.
:keyword list[str] translation_ids: translation operations ids to filter by.
:keyword list[str] statuses: translation operation statuses to filter by.
:keyword list[str] statuses: translation operation statuses to filter by. Options include
'NotStarted', 'Running', 'Succeeded', 'Failed', 'Cancelled', 'Cancelling',
and 'ValidationFailed'.
:keyword created_after: get operations created after certain datetime.
:paramtype created_after: Union[str, datetime.datetime]
:keyword created_before: get operations created before certain datetime.
:paramtype created_before: Union[str, datetime.datetime]
:keyword list[str] order_by: the sorting query for the operations returned.
format: ["parm1 asc/desc", "parm2 asc/desc", ...]
(ex: 'createdDateTimeUtc asc', 'createdDateTimeUtc desc').
:keyword list[str] order_by: the sorting query for the operations returned. Currently only
'created_on' supported.
format: ["param1 asc/desc", "param2 asc/desc", ...]
(ex: 'created_on asc', 'created_on desc').
:return: A pageable of TranslationStatus.
:rtype: ~azure.core.paging.ItemPaged[TranslationStatus]
:raises ~azure.core.exceptions.HttpResponseError:
Expand All @@ -265,6 +269,7 @@ def list_all_translation_statuses(self, **kwargs):
:caption: List all submitted translations under the resource.
"""

order_by = convert_order_by(kwargs.pop("order_by", None))
created_after = kwargs.pop("created_after", None)
created_before = kwargs.pop("created_before", None)
created_after = convert_datetime(created_after) if created_after else None
Expand All @@ -289,6 +294,7 @@ def _convert_from_generated_model(generated_model):
created_date_time_utc_start=created_after,
created_date_time_utc_end=created_before,
ids=translation_ids,
order_by=order_by,
**kwargs
)

Expand All @@ -303,14 +309,17 @@ def list_all_document_statuses(self, translation_id, **kwargs):
By default, we sort by all documents descendingly by start time.
:keyword int results_per_page: is the number of documents returned per page.
:keyword list[str] document_ids: document IDs to filter by.
:keyword list[str] statuses: document statuses to filter by.
:keyword translated_after: get document translated after certain datetime.
:paramtype translated_after: Union[str, datetime.datetime]
:keyword translated_before: get document translated before certain datetime.
:paramtype translated_before: Union[str, datetime.datetime]
:keyword list[str] order_by: the sorting query for the documents.
format: ["parm1 asc/desc", "parm2 asc/desc", ...]
(ex: 'createdDateTimeUtc asc', 'createdDateTimeUtc desc').
:keyword list[str] statuses: document statuses to filter by. Options include
'NotStarted', 'Running', 'Succeeded', 'Failed', 'Cancelled', 'Cancelling',
and 'ValidationFailed'.
:keyword created_after: get document created after certain datetime.
:paramtype created_after: Union[str, datetime.datetime]
:keyword created_before: get document created before certain datetime.
:paramtype created_before: Union[str, datetime.datetime]
:keyword list[str] order_by: the sorting query for the documents. Currently only
'created_on' is supported.
format: ["param1 asc/desc", "param2 asc/desc", ...]
(ex: 'created_on asc', 'created_on desc').
:return: A pageable of DocumentStatus.
:rtype: ~azure.core.paging.ItemPaged[DocumentStatus]
:raises ~azure.core.exceptions.HttpResponseError:
Expand All @@ -324,13 +333,15 @@ def list_all_document_statuses(self, translation_id, **kwargs):
:dedent: 4
:caption: List all the document statuses as they are being translated.
"""
translated_after = kwargs.pop("translated_after", None)
translated_before = kwargs.pop("translated_before", None)
translated_after = (
convert_datetime(translated_after) if translated_after else None

order_by = convert_order_by(kwargs.pop("order_by", None))
created_after = kwargs.pop("created_after", None)
created_before = kwargs.pop("created_before", None)
created_after = (
convert_datetime(created_after) if created_after else None
)
translated_before = (
convert_datetime(translated_before) if translated_before else None
created_before = (
convert_datetime(created_before) if created_before else None
)
results_per_page = kwargs.pop("results_per_page", None)
document_ids = kwargs.pop("document_ids", None)
Expand All @@ -350,9 +361,10 @@ def _convert_from_generated_model(generated_model):
id=translation_id,
cls=model_conversion_function,
maxpagesize=results_per_page,
created_date_time_utc_start=translated_after,
created_date_time_utc_end=translated_before,
created_date_time_utc_start=created_after,
created_date_time_utc_end=created_before,
ids=document_ids,
order_by=order_by,
**kwargs
)

Expand Down
Loading

0 comments on commit dde54e1

Please sign in to comment.