| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # Copyright 2014 Baidu, Inc.
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- # except in compliance with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the
- # License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- # either express or implied. See the License for the specific language governing permissions
- # and limitations under the License.
- """
- This module defines a common configuration class for BCE.
- """
- from future.utils import iteritems
- from builtins import str
- from builtins import bytes
- import baidubce.protocol
- import baidubce.region
- from baidubce.retry.retry_policy import BackOffRetryPolicy
- from baidubce import compat
- class BceClientConfiguration(object):
- """Configuration of Bce client."""
- def __init__(self,
- credentials=None,
- endpoint=None,
- protocol=None,
- region=None,
- connection_timeout_in_mills=None,
- send_buf_size=None,
- recv_buf_size=None,
- retry_policy=None,
- security_token=None,
- cname_enabled=False,
- backup_endpoint=None,
- proxy_host=None,
- proxy_port=None,
- path_style_enable=False,
- auto_follow_redirect=False,
- under_line_headers=True,
- ):
- self.credentials = credentials
- self.endpoint = compat.convert_to_bytes(endpoint) if endpoint is not None else endpoint
- self.protocol = protocol
- self.region = region
- self.connection_timeout_in_mills = connection_timeout_in_mills
- self.send_buf_size = send_buf_size
- self.recv_buf_size = recv_buf_size
- self.proxy_host = proxy_host
- self.proxy_port = proxy_port
- if retry_policy is None:
- self.retry_policy = BackOffRetryPolicy()
- else:
- self.retry_policy = retry_policy
- self.security_token = security_token
- self.cname_enabled = cname_enabled
- self.path_style_enable = path_style_enable
- self.backup_endpoint = compat.convert_to_bytes(backup_endpoint) if backup_endpoint is not None else backup_endpoint
- self.auto_follow_redirect = auto_follow_redirect
- self.under_line_headers = under_line_headers
- def merge_non_none_values(self, other):
- """
- :param other:
- :return:
- """
- for k, v in iteritems(other.__dict__):
- if v is not None:
- self.__dict__[k] = v
- DEFAULT_PROTOCOL = baidubce.protocol.HTTP
- DEFAULT_REGION = baidubce.region.BEIJING
- DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS = 50 * 1000
- DEFAULT_SEND_BUF_SIZE = 1024 * 1024
- DEFAULT_RECV_BUF_SIZE = 10 * 1024 * 1024
- DEFAULT_CONFIG = BceClientConfiguration(
- protocol=DEFAULT_PROTOCOL,
- region=DEFAULT_REGION,
- connection_timeout_in_mills=DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS,
- send_buf_size=DEFAULT_SEND_BUF_SIZE,
- recv_buf_size=DEFAULT_RECV_BUF_SIZE,
- retry_policy=BackOffRetryPolicy())
|