Skip to content

Commit

Permalink
CodeGen from PR 31123 in Azure/azure-rest-api-specs
Browse files Browse the repository at this point in the history
Merge 99589028184efbe1d10233705c48395ed05980e9 into 9d57d1d894236058929952f58ce24982a8e92f97
  • Loading branch information
SDKAuto committed Dec 2, 2024
1 parent 8fa64b5 commit 9d25cff
Show file tree
Hide file tree
Showing 103 changed files with 22,877 additions and 40,746 deletions.
6 changes: 3 additions & 3 deletions sdk/search/azure-search-documents/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include *.md
include azure/__init__.py
include azure/search/__init__.py
include LICENSE
include azure/search/documents/py.typed
recursive-include tests *.py
recursive-include samples *.py *.md
include azure/search/documents/py.typed
include azure/__init__.py
include azure/search/__init__.py
6 changes: 6 additions & 0 deletions sdk/search/azure-search-documents/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"commit": "8ea3636c7b52ac3d8c8303894f789c85b893edfd",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
"typespec_src": "specification/search/Azure.Search",
"@azure-tools/typespec-python": "0.36.5"
}
7 changes: 1 addition & 6 deletions sdk/search/azure-search-documents/azure/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
# pylint:disable=missing-docstring
__path__ = __import__("pkgutil").extend_path(__path__, __name__)
__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
7 changes: 1 addition & 6 deletions sdk/search/azure-search-documents/azure/search/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1 @@
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
# pylint:disable=missing-docstring
__path__ = __import__("pkgutil").extend_path(__path__, __name__)
__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
Original file line number Diff line number Diff line change
@@ -1,44 +1,32 @@
# coding=utf-8
# --------------------------------------------------------------------------
#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# The MIT License (MIT)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the ""Software""), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
# pylint: disable=wrong-import-position

from ._index_documents_batch import IndexDocumentsBatch
from ._search_documents_error import RequestEntityTooLargeError
from ._search_client import SearchClient, SearchItemPaged
from ._search_indexing_buffered_sender import SearchIndexingBufferedSender
from ._api_versions import ApiVersion
from typing import TYPE_CHECKING

if TYPE_CHECKING:
from ._patch import * # pylint: disable=unused-wildcard-import

from ._client import SearchClient # type: ignore
from ._version import VERSION

__version__ = VERSION

try:
from ._patch import __all__ as _patch_all
from ._patch import *
except ImportError:
_patch_all = []
from ._patch import patch_sdk as _patch_sdk

__all__ = (
"ApiVersion",
"IndexDocumentsBatch",
__all__ = [
"SearchClient",
"SearchItemPaged",
"SearchIndexingBufferedSender",
"RequestEntityTooLargeError",
)
]
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore

_patch_sdk()

This file was deleted.

141 changes: 141 additions & 0 deletions sdk/search/azure-search-documents/azure/search/documents/_client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from copy import deepcopy
from typing import Any, TYPE_CHECKING, Union
from typing_extensions import Self

from azure.core import PipelineClient
from azure.core.credentials import AzureKeyCredential
from azure.core.pipeline import policies
from azure.core.rest import HttpRequest, HttpResponse

from ._configuration import SearchClientConfiguration
from ._serialization import Deserializer, Serializer
from .operations import (
DataSourcesOperationsOperations,
DocumentsOperationsOperations,
IndexersOperationsOperations,
IndexesOperationsOperations,
SearchClientOperationsMixin,
SkillsetsOperationsOperations,
SynonymMapsOperationsOperations,
)

if TYPE_CHECKING:
from azure.core.credentials import TokenCredential


class SearchClient(SearchClientOperationsMixin): # pylint: disable=too-many-instance-attributes
"""Client that can be used to manage and query indexes and documents, as well as
manage other resources, on a search service.
:ivar data_sources_operations: DataSourcesOperationsOperations operations
:vartype data_sources_operations:
azure.search.documents.operations.DataSourcesOperationsOperations
:ivar indexers_operations: IndexersOperationsOperations operations
:vartype indexers_operations: azure.search.documents.operations.IndexersOperationsOperations
:ivar skillsets_operations: SkillsetsOperationsOperations operations
:vartype skillsets_operations: azure.search.documents.operations.SkillsetsOperationsOperations
:ivar synonym_maps_operations: SynonymMapsOperationsOperations operations
:vartype synonym_maps_operations:
azure.search.documents.operations.SynonymMapsOperationsOperations
:ivar indexes_operations: IndexesOperationsOperations operations
:vartype indexes_operations: azure.search.documents.operations.IndexesOperationsOperations
:ivar documents_operations: DocumentsOperationsOperations operations
:vartype documents_operations: azure.search.documents.operations.DocumentsOperationsOperations
:param endpoint: Service host. Required.
:type endpoint: str
:param credential: Credential used to authenticate requests to the service. Is either a
AzureKeyCredential type or a TokenCredential type. Required.
:type credential: ~azure.core.credentials.AzureKeyCredential or
~azure.core.credentials.TokenCredential
:keyword api_version: The API version to use for this operation. Default value is "2024-07-01".
Note that overriding this default value may result in unsupported behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: Union[AzureKeyCredential, "TokenCredential"], **kwargs: Any) -> None:
_endpoint = "{endpoint}"
self._config = SearchClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)
_policies = kwargs.pop("policies", None)
if _policies is None:
_policies = [
policies.RequestIdPolicy(**kwargs),
self._config.headers_policy,
self._config.user_agent_policy,
self._config.proxy_policy,
policies.ContentDecodePolicy(**kwargs),
self._config.redirect_policy,
self._config.retry_policy,
self._config.authentication_policy,
self._config.custom_hook_policy,
self._config.logging_policy,
policies.DistributedTracingPolicy(**kwargs),
policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
self._config.http_logging_policy,
]
self._client: PipelineClient = PipelineClient(base_url=_endpoint, policies=_policies, **kwargs)

self._serialize = Serializer()
self._deserialize = Deserializer()
self._serialize.client_side_validation = False
self.data_sources_operations = DataSourcesOperationsOperations(
self._client, self._config, self._serialize, self._deserialize
)
self.indexers_operations = IndexersOperationsOperations(
self._client, self._config, self._serialize, self._deserialize
)
self.skillsets_operations = SkillsetsOperationsOperations(
self._client, self._config, self._serialize, self._deserialize
)
self.synonym_maps_operations = SynonymMapsOperationsOperations(
self._client, self._config, self._serialize, self._deserialize
)
self.indexes_operations = IndexesOperationsOperations(
self._client, self._config, self._serialize, self._deserialize
)
self.documents_operations = DocumentsOperationsOperations(
self._client, self._config, self._serialize, self._deserialize
)

def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
"""Runs the network request through the client's chained policies.
>>> from azure.core.rest import HttpRequest
>>> request = HttpRequest("GET", "https://www.example.org/")
<HttpRequest [GET], url: 'https://www.example.org/'>
>>> response = client.send_request(request)
<HttpResponse: 200 OK>
For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request
:param request: The network request you want to make. Required.
:type request: ~azure.core.rest.HttpRequest
:keyword bool stream: Whether the response payload will be streamed. Defaults to False.
:return: The response of your network call. Does not do error handling on your response.
:rtype: ~azure.core.rest.HttpResponse
"""

request_copy = deepcopy(request)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True),
}

request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments)
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore

def close(self) -> None:
self._client.close()

def __enter__(self) -> Self:
self._client.__enter__()
return self

def __exit__(self, *exc_details: Any) -> None:
self._client.__exit__(*exc_details)
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import Any, TYPE_CHECKING, Union

from azure.core.credentials import AzureKeyCredential
from azure.core.pipeline import policies

from ._version import VERSION

if TYPE_CHECKING:
from azure.core.credentials import TokenCredential


class SearchClientConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for SearchClient.
Note that all parameters used to create this instance are saved as instance
attributes.
:param endpoint: Service host. Required.
:type endpoint: str
:param credential: Credential used to authenticate requests to the service. Is either a
AzureKeyCredential type or a TokenCredential type. Required.
:type credential: ~azure.core.credentials.AzureKeyCredential or
~azure.core.credentials.TokenCredential
:keyword api_version: The API version to use for this operation. Default value is "2024-07-01".
Note that overriding this default value may result in unsupported behavior.
:paramtype api_version: str
"""

def __init__(self, endpoint: str, credential: Union[AzureKeyCredential, "TokenCredential"], **kwargs: Any) -> None:
api_version: str = kwargs.pop("api_version", "2024-07-01")

if endpoint is None:
raise ValueError("Parameter 'endpoint' must not be None.")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")

self.endpoint = endpoint
self.credential = credential
self.api_version = api_version
self.credential_scopes = kwargs.pop("credential_scopes", ["https://search.azure.com/.default"])
kwargs.setdefault("sdk_moniker", "search-documents/{}".format(VERSION))
self.polling_interval = kwargs.get("polling_interval", 30)
self._configure(**kwargs)

def _infer_policy(self, **kwargs):
if isinstance(self.credential, AzureKeyCredential):
return policies.AzureKeyCredentialPolicy(self.credential, "api-key", **kwargs)
if hasattr(self.credential, "get_token"):
return policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)
raise TypeError(f"Unsupported credential: {self.credential}")

def _configure(self, **kwargs: Any) -> None:
self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs)
self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs)
self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs)
self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs)
self.http_logging_policy = kwargs.get("http_logging_policy") or policies.HttpLoggingPolicy(**kwargs)
self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs)
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
self.authentication_policy = kwargs.get("authentication_policy")
if self.credential and not self.authentication_policy:
self.authentication_policy = self._infer_policy(**kwargs)

This file was deleted.

Loading

0 comments on commit 9d25cff

Please sign in to comment.