diff --git a/sdk/core/azure-core/azure/core/pipeline_client.py b/sdk/core/azure-core/azure/core/pipeline_client.py index cb02f30ef72b..32d1be10120c 100644 --- a/sdk/core/azure-core/azure/core/pipeline_client.py +++ b/sdk/core/azure-core/azure/core/pipeline_client.py @@ -59,7 +59,7 @@ class PipelineClient(PipelineClientBase): Builds a Pipeline client. :param str base_url: URL for the request. - :param config: Service configuration. This is a required parameter. + :param config: Service configuration. This is a required unless pipeline or policies are given separately. :type config: ~azure.core.Configuration :param kwargs: keyword arguments :return: A pipeline object. @@ -80,10 +80,8 @@ class PipelineClient(PipelineClientBase): :caption: Builds the pipeline client. """ - def __init__(self, base_url, config, **kwargs): + def __init__(self, base_url, config=None, **kwargs): super(PipelineClient, self).__init__(base_url) - if config is None: - raise ValueError("Config is a required parameter") self._config = config self._base_url = base_url if kwargs.get("pipeline"): @@ -106,6 +104,8 @@ def _build_pipeline(self, config, **kwargs): # pylint: disable=no-self-use policies = kwargs.get('policies') if policies is None: # [] is a valid policy list + if config is None: + raise ValueError("No config or policies supplied.") policies = [ config.headers_policy, config.user_agent_policy, @@ -114,8 +114,8 @@ def _build_pipeline(self, config, **kwargs): # pylint: disable=no-self-use config.redirect_policy, config.retry_policy, config.custom_hook_policy, - config.logging_policy, DistributedTracingPolicy(), + config.logging_policy, ] if not transport: 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 1ebd6c637f5d..79692a4b03e3 100644 --- a/sdk/core/azure-core/azure/core/pipeline_client_async.py +++ b/sdk/core/azure-core/azure/core/pipeline_client_async.py @@ -58,7 +58,7 @@ class AsyncPipelineClient(PipelineClientBase): Builds an AsyncPipeline client. :param str base_url: URL for the request. - :param config: Service configuration. This is a required parameter. + :param config: Service configuration. This is a required unless pipeline or policies are given separately. :type config: ~azure.core.Configuration :param kwargs: keyword arguments. :return: An async pipeline object. @@ -79,10 +79,8 @@ class AsyncPipelineClient(PipelineClientBase): :caption: Builds the async pipeline client. """ - def __init__(self, base_url, config, **kwargs): + def __init__(self, base_url, config=None, **kwargs): super(AsyncPipelineClient, self).__init__(base_url) - if config is None: - raise ValueError("Config is a required parameter") self._config = config self._base_url = base_url if kwargs.get("pipeline"): @@ -105,6 +103,8 @@ def _build_pipeline(self, config, **kwargs): # pylint: disable=no-self-use policies = kwargs.get('policies') if policies is None: # [] is a valid policy list + if config is None: + raise ValueError("No config or policies supplied.") policies = [ config.headers_policy, config.user_agent_policy, @@ -113,8 +113,8 @@ def _build_pipeline(self, config, **kwargs): # pylint: disable=no-self-use config.redirect_policy, config.retry_policy, config.custom_hook_policy, - config.logging_policy, DistributedTracingPolicy(), + config.logging_policy, ] if not transport: