diff --git a/sdk/core/azure-core/azure/core/pipeline_client.py b/sdk/core/azure-core/azure/core/pipeline_client.py index f1e69d618da9..4a26c8d6118e 100644 --- a/sdk/core/azure-core/azure/core/pipeline_client.py +++ b/sdk/core/azure-core/azure/core/pipeline_client.py @@ -25,6 +25,7 @@ # -------------------------------------------------------------------------- import logging +from .configuration import Configuration from .pipeline import Pipeline from .pipeline.transport.base import PipelineClientBase from .pipeline.policies import ContentDecodePolicy @@ -59,20 +60,13 @@ class PipelineClient(PipelineClientBase): Builds a Pipeline client. :param str base_url: URL for the request. - :param config: Service configuration. This is a required parameter. - :type config: ~azure.core.Configuration - :param kwargs: keyword arguments + :keyword Configuration config: If omitted, the standard configuration is used. + :keyword Pipeline pipeline: If omitted, a Pipeline object is created and returned. + :keyword list[policy] policies: If omitted, the standard policies of the configuration object is used. + :keyword HttpTransport transport: If omitted, RequestsTransport is used for synchronous transport. :return: A pipeline object. :rtype: ~azure.core.pipeline.Pipeline - **Keyword arguments:** - - *pipeline* - A Pipeline object. If omitted, a Pipeline object is created and returned. - - *policies* - A list of policies object. If omitted, the standard policies of the configuration object is used. - - *transport* - The HTTP Transport instance. If omitted, RequestsTransport is used for synchronous transport. - .. admonition:: Example: .. literalinclude:: ../examples/test_example_sync.py @@ -83,16 +77,14 @@ class PipelineClient(PipelineClientBase): :caption: Builds the pipeline client. """ - def __init__(self, base_url, config, **kwargs): + def __init__(self, base_url, **kwargs): super(PipelineClient, self).__init__(base_url) - if config is None: - raise ValueError("Config is a required parameter") - self._config = config + self._config = kwargs.pop("config", None) or Configuration(**kwargs) self._base_url = base_url if kwargs.get("pipeline"): self._pipeline = kwargs["pipeline"] else: - self._pipeline = self._build_pipeline(config, **kwargs) + self._pipeline = self._build_pipeline(self._config, **kwargs) def __enter__(self): self._pipeline.__enter__() diff --git a/sdk/core/azure-core/azure/core/pipeline_client_async.py b/sdk/core/azure-core/azure/core/pipeline_client_async.py index 457a21967ffa..2ce17f92346b 100644 --- a/sdk/core/azure-core/azure/core/pipeline_client_async.py +++ b/sdk/core/azure-core/azure/core/pipeline_client_async.py @@ -25,6 +25,7 @@ # -------------------------------------------------------------------------- import logging +from .configuration import Configuration from .pipeline import AsyncPipeline from .pipeline.transport.base import PipelineClientBase from .pipeline.policies import ContentDecodePolicy @@ -58,20 +59,13 @@ class AsyncPipelineClient(PipelineClientBase): Builds an AsyncPipeline client. :param str base_url: URL for the request. - :param config: Service configuration. This is a required parameter. - :type config: ~azure.core.Configuration - :param kwargs: keyword arguments. + :keyword Configuration config: If omitted, the standard configuration is used. + :keyword Pipeline pipeline: If omitted, a Pipeline object is created and returned. + :keyword list[policy] policies: If omitted, the standard policies of the configuration object is used. + :keyword HttpTransport transport: If omitted, RequestsTransport is used for synchronous transport. :return: An async pipeline object. :rtype: ~azure.core.pipeline.AsyncPipeline - **Keyword arguments:** - - *pipeline* - A Pipeline object. If omitted, an AsyncPipeline is created and returned. - - *policies* - A list of policies object. If omitted, the standard policies of the configuration object is used. - - *transport* - The HTTP Transport instance. If omitted, AioHttpTransport is use for asynchronous transport. - .. admonition:: Example: .. literalinclude:: ../examples/test_example_async.py @@ -82,16 +76,14 @@ class AsyncPipelineClient(PipelineClientBase): :caption: Builds the async pipeline client. """ - def __init__(self, base_url, config, **kwargs): + def __init__(self, base_url, **kwargs): super(AsyncPipelineClient, self).__init__(base_url) - if config is None: - raise ValueError("Config is a required parameter") - self._config = config + self._config = kwargs.pop("config", None) or Configuration(**kwargs) self._base_url = base_url if kwargs.get("pipeline"): self._pipeline = kwargs["pipeline"] else: - self._pipeline = self._build_pipeline(config, **kwargs) + self._pipeline = self._build_pipeline(self._config, **kwargs) async def __aenter__(self): await self._pipeline.__aenter__() diff --git a/sdk/cosmos/azure-cosmos/azure/cosmos/_cosmos_client_connection.py b/sdk/cosmos/azure-cosmos/azure/cosmos/_cosmos_client_connection.py index eaeff4440c36..4fd82eeec093 100644 --- a/sdk/cosmos/azure-cosmos/azure/cosmos/_cosmos_client_connection.py +++ b/sdk/cosmos/azure-cosmos/azure/cosmos/_cosmos_client_connection.py @@ -189,7 +189,7 @@ def __init__( ] transport = kwargs.pop("transport", None) - self.pipeline_client = PipelineClient(url_connection, "empty-config", transport=transport, policies=policies) + self.pipeline_client = PipelineClient(base_url=url_connection, transport=transport, policies=policies) # Query compatibility mode. # Allows to specify compatibility mode used by client when making query requests. Should be removed when