Skip to content

Commit 7b2c63a

Browse files
[ml] Cherry-pick type annotation fixes for ApiView (#34682)
* [ml] Fix datalake gen2 datastore type annotation (#34669) * Remove Optional type annotation from get() methods * Remove duplicate overloads * Update type annotations --------- Co-authored-by: Anna Tisch <[email protected]> * [ML] Fix operation keyword arg (#34666) * [ML] Fix operation keyword arg * Update _model_operations.py docstrings * Fix docstring * Datastore docstrings * Update image_classification_search_space.py type hints --------- Co-authored-by: Anna Tisch <[email protected]>
1 parent a095911 commit 7b2c63a

File tree

5 files changed

+84
-53
lines changed

5 files changed

+84
-53
lines changed

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_datastore/azure_storage.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@
1717
from azure.ai.ml._restclient.v2023_04_01_preview.models import DatastoreType
1818
from azure.ai.ml._schema._datastore import AzureBlobSchema, AzureDataLakeGen2Schema, AzureFileSchema
1919
from azure.ai.ml.constants._common import BASE_PATH_CONTEXT_KEY, TYPE
20-
from azure.ai.ml.entities._credentials import AccountKeyConfiguration, SasTokenConfiguration
20+
from azure.ai.ml.entities._credentials import (
21+
AccountKeyConfiguration,
22+
CertificateConfiguration,
23+
SasTokenConfiguration,
24+
ServicePrincipalConfiguration,
25+
)
2126
from azure.ai.ml.entities._datastore.datastore import Datastore
2227
from azure.ai.ml.entities._datastore.utils import from_rest_datastore_credentials
2328
from azure.ai.ml.entities._util import load_from_dict
@@ -145,7 +150,8 @@ class AzureBlobDatastore(Datastore):
145150
:param properties: The asset property dictionary.
146151
:type properties: dict[str, str]
147152
:param credentials: Credentials to use for Azure ML workspace to connect to the storage.
148-
:type credentials: Union[AccountKeySection, SasSection]
153+
:type credentials: Union[~azure.ai.ml.entities.AccountKeyConfiguration,
154+
~azure.ai.ml.entities.SasTokenConfiguration]
149155
:param kwargs: A dictionary of additional configuration parameters.
150156
:type kwargs: dict
151157
"""
@@ -243,7 +249,11 @@ class AzureDataLakeGen2Datastore(Datastore):
243249
:param protocol: Protocol to use to connect with the Azure storage account
244250
:type protocol: str
245251
:param credentials: Credentials to use for Azure ML workspace to connect to the storage.
246-
:type credentials: Union[ServicePrincipalConfiguration, CertificateConfiguration]
252+
:type credentials: Union[
253+
~azure.ai.ml.entities.ServicePrincipalConfiguration,
254+
~azure.ai.ml.entities.CertificateConfiguration
255+
256+
]
247257
:param properties: The asset property dictionary.
248258
:type properties: dict[str, str]
249259
:param kwargs: A dictionary of additional configuration parameters.
@@ -261,7 +271,7 @@ def __init__(
261271
endpoint: str = _get_storage_endpoint_from_metadata(),
262272
protocol: str = HTTPS,
263273
properties: Optional[Dict] = None,
264-
credentials: Optional[Union[AccountKeyConfiguration, SasTokenConfiguration]] = None,
274+
credentials: Optional[Union[ServicePrincipalConfiguration, CertificateConfiguration]] = None,
265275
**kwargs: Any
266276
):
267277
kwargs[TYPE] = DatastoreType.AZURE_DATA_LAKE_GEN2

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_datastore/datastore.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@
1313
from azure.ai.ml._restclient.v2023_04_01_preview.models import DatastoreType
1414
from azure.ai.ml._utils.utils import camel_to_snake, dump_yaml_to_file
1515
from azure.ai.ml.constants._common import BASE_PATH_CONTEXT_KEY, PARAMS_OVERRIDE_KEY, CommonYamlFields
16-
from azure.ai.ml.entities._credentials import NoneCredentialConfiguration
16+
from azure.ai.ml.entities._credentials import (
17+
AccountKeyConfiguration,
18+
CertificateConfiguration,
19+
NoneCredentialConfiguration,
20+
SasTokenConfiguration,
21+
ServicePrincipalConfiguration,
22+
)
1723
from azure.ai.ml.entities._mixins import RestTranslatableMixin
1824
from azure.ai.ml.entities._resource import Resource
1925
from azure.ai.ml.entities._util import find_type_in_override
@@ -28,7 +34,14 @@ class Datastore(Resource, RestTranslatableMixin, ABC):
2834
:param description: Description of the resource.
2935
:type description: str
3036
:param credentials: Credentials to use for Azure ML workspace to connect to the storage.
31-
:type credentials: Union[ServicePrincipalSection, CertificateSection]
37+
:type credentials: Optional[Union[
38+
~azure.ai.ml.entities.ServicePrincipalConfiguration,
39+
~azure.ai.ml.entities.CertificateConfiguration,
40+
~azure.ai.ml.entities.NoneCredentialConfiguration,
41+
~azure.ai.ml.entities.AccountKeyConfiguration,
42+
~azure.ai.ml.entities.SasTokenConfiguration
43+
44+
]]
3245
:param tags: Tag dictionary. Tags can be added, removed, and updated.
3346
:type tags: dict[str, str]
3447
:param properties: The asset property dictionary.
@@ -39,7 +52,15 @@ class Datastore(Resource, RestTranslatableMixin, ABC):
3952

4053
def __init__(
4154
self,
42-
credentials: Any,
55+
credentials: Optional[
56+
Union[
57+
ServicePrincipalConfiguration,
58+
CertificateConfiguration,
59+
NoneCredentialConfiguration,
60+
AccountKeyConfiguration,
61+
SasTokenConfiguration,
62+
]
63+
],
4364
name: Optional[str] = None,
4465
description: Optional[str] = None,
4566
tags: Optional[Dict] = None,

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_job/automl/image/image_classification_search_space.py

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class ImageClassificationSearchSpace(RestTranslatableMixin):
1818
Multilabel tasks.
1919
2020
:param ams_gradient: Enable AMSGrad when optimizer is 'adam' or 'adamw'.
21-
:type ams_gradient: str or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
21+
:type ams_gradient: bool or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
2222
:param beta1: Value of 'beta1' when optimizer is 'adam' or 'adamw'. Must be a float in the
2323
range [0, 1].
2424
:type beta1: float or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
@@ -85,7 +85,7 @@ class ImageClassificationSearchSpace(RestTranslatableMixin):
8585
:param training_batch_size: Training batch size. Must be a positive integer.
8686
:type training_batch_size: int or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
8787
:param validation_batch_size: Validation batch size. Must be a positive integer.
88-
:type validation_batch_size: str or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
88+
:type validation_batch_size: int or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
8989
:param warmup_cosine_lr_cycles: Value of cosine cycle when learning rate scheduler is
9090
'warmup_cosine'. Must be a float in the range [0, 1].
9191
:type warmup_cosine_lr_cycles: float or ~azure.ai.ml.entities._job.sweep.search_space.SweepDistribution
@@ -122,37 +122,37 @@ class ImageClassificationSearchSpace(RestTranslatableMixin):
122122
def __init__(
123123
self,
124124
*,
125-
ams_gradient: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
126-
beta1: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
127-
beta2: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
128-
distributed: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
129-
early_stopping: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
130-
early_stopping_delay: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
131-
early_stopping_patience: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
132-
enable_onnx_normalization: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
133-
evaluation_frequency: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
134-
gradient_accumulation_step: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
135-
layers_to_freeze: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
136-
learning_rate: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
137-
learning_rate_scheduler: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
138-
model_name: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
139-
momentum: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
140-
nesterov: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
141-
number_of_epochs: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
142-
number_of_workers: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
143-
optimizer: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
144-
random_seed: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
145-
step_lr_gamma: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
146-
step_lr_step_size: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
147-
training_batch_size: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
148-
validation_batch_size: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
149-
warmup_cosine_lr_cycles: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
150-
warmup_cosine_lr_warmup_epochs: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
151-
weight_decay: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
152-
training_crop_size: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
153-
validation_crop_size: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
154-
validation_resize_size: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
155-
weighted_loss: Optional[Union[bool, int, float, str, SweepDistribution]] = None,
125+
ams_gradient: Optional[Union[bool, SweepDistribution]] = None,
126+
beta1: Optional[Union[float, SweepDistribution]] = None,
127+
beta2: Optional[Union[float, SweepDistribution]] = None,
128+
distributed: Optional[Union[bool, SweepDistribution]] = None,
129+
early_stopping: Optional[Union[bool, SweepDistribution]] = None,
130+
early_stopping_delay: Optional[Union[int, SweepDistribution]] = None,
131+
early_stopping_patience: Optional[Union[int, SweepDistribution]] = None,
132+
enable_onnx_normalization: Optional[Union[bool, SweepDistribution]] = None,
133+
evaluation_frequency: Optional[Union[int, SweepDistribution]] = None,
134+
gradient_accumulation_step: Optional[Union[int, SweepDistribution]] = None,
135+
layers_to_freeze: Optional[Union[int, SweepDistribution]] = None,
136+
learning_rate: Optional[Union[float, SweepDistribution]] = None,
137+
learning_rate_scheduler: Optional[Union[str, SweepDistribution]] = None,
138+
model_name: Optional[Union[str, SweepDistribution]] = None,
139+
momentum: Optional[Union[float, SweepDistribution]] = None,
140+
nesterov: Optional[Union[bool, SweepDistribution]] = None,
141+
number_of_epochs: Optional[Union[int, SweepDistribution]] = None,
142+
number_of_workers: Optional[Union[int, SweepDistribution]] = None,
143+
optimizer: Optional[Union[str, SweepDistribution]] = None,
144+
random_seed: Optional[Union[int, SweepDistribution]] = None,
145+
step_lr_gamma: Optional[Union[float, SweepDistribution]] = None,
146+
step_lr_step_size: Optional[Union[int, SweepDistribution]] = None,
147+
training_batch_size: Optional[Union[int, SweepDistribution]] = None,
148+
validation_batch_size: Optional[Union[int, SweepDistribution]] = None,
149+
warmup_cosine_lr_cycles: Optional[Union[float, SweepDistribution]] = None,
150+
warmup_cosine_lr_warmup_epochs: Optional[Union[int, SweepDistribution]] = None,
151+
weight_decay: Optional[Union[float, SweepDistribution]] = None,
152+
training_crop_size: Optional[Union[int, SweepDistribution]] = None,
153+
validation_crop_size: Optional[Union[int, SweepDistribution]] = None,
154+
validation_resize_size: Optional[Union[int, SweepDistribution]] = None,
155+
weighted_loss: Optional[Union[int, SweepDistribution]] = None,
156156
) -> None:
157157
self.ams_gradient = ams_gradient
158158
self.beta1 = beta1

sdk/ml/azure-ai-ml/azure/ai/ml/operations/_model_operations.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -285,10 +285,10 @@ def get(self, name: str, version: Optional[str] = None, label: Optional[str] = N
285285
286286
:param name: Name of the model.
287287
:type name: str
288-
:keyword version: Version of the model.
289-
:paramtype version: str
290-
:keyword label: Label of the model. (mutually exclusive with version)
291-
:paramtype label: str
288+
:param version: Version of the model.
289+
:type version: str
290+
:param label: Label of the model. (mutually exclusive with version)
291+
:type label: str
292292
:raises ~azure.ai.ml.exceptions.ValidationException: Raised if Model cannot be successfully validated.
293293
Details will be provided in the error message.
294294
:return: Model asset object.
@@ -329,9 +329,9 @@ def download(self, name: str, version: str, download_path: Union[PathLike, str]
329329
:type name: str
330330
:param version: Version of the model.
331331
:type version: str
332-
:keyword download_path: Local path as download destination, defaults to current working directory of the current
332+
:param download_path: Local path as download destination, defaults to current working directory of the current
333333
user. Contents will be overwritten.
334-
:paramtype download_path: Union[PathLike, str]
334+
:type download_path: Union[PathLike, str]
335335
:raises ResourceNotFoundError: if can't find a model matching provided name.
336336
"""
337337

@@ -473,10 +473,10 @@ def list(
473473
) -> Iterable[Model]:
474474
"""List all model assets in workspace.
475475
476-
:keyword name: Name of the model.
477-
:paramtype name: Optional[str]
478-
:keyword stage: The Model stage
479-
:paramtype stage: Optional[str]
476+
:param name: Name of the model.
477+
:type name: Optional[str]
478+
:param stage: The Model stage
479+
:type stage: Optional[str]
480480
:keyword list_view_type: View type for including/excluding (for example) archived models.
481481
Defaults to :attr:`ListViewType.ACTIVE_ONLY`.
482482
:paramtype list_view_type: ListViewType

sdk/ml/azure-ai-ml/azure/ai/ml/operations/_workspace_connections_operations.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,15 @@ def delete(self, name: str) -> None:
133133
@monitor_with_activity(ops_logger, "WorkspaceConnections.List", ActivityType.PUBLICAPI)
134134
def list(
135135
self,
136-
*,
137136
connection_type: Optional[str] = None,
137+
*,
138138
include_data_connections: bool = False,
139139
**kwargs: Any,
140140
) -> Iterable[WorkspaceConnection]:
141141
"""List all workspace connections for a workspace.
142142
143-
:keyword connection_type: Type of workspace connection to list.
144-
:paramtype connection_type: Optional[str]
143+
:param connection_type: Type of workspace connection to list.
144+
:type connection_type: Optional[str]
145145
:keyword include_data_connections: If true, also return data connections. Defaults to False.
146146
:paramtype include_data_connections: bool
147147
:return: An iterator like instance of workspace connection objects

0 commit comments

Comments
 (0)