def _valid_timeout_value(timeout, name):
     if isinstance(timeout, int) or isinstance(timeout, float):
         if timeout > 0:
             return timeout
         raise ParamTypeInvalidException(param=name,
                                         param_type='positive integer')
     elif isinstance(timeout, str) and timeout.isdigit():
         if float(timeout) > 0:
             return float(timeout)
         raise ParamTypeInvalidException(param=name,
                                         param_type='positive integer')
     raise ParamTypeInvalidException(param=name,
                                     param_type='float or int or str')
def _modify_user_agent(client_user_agent):
    base = _user_agent_header()
    default_agent = _default_user_agent()
    # merge default UA and client_UA
    user_agent = _merge_user_agent(default_agent, None)
    for key, value in user_agent.items():
        base += ' %s/%s' % (key, value)
    if client_user_agent is not None:
        if not isinstance(client_user_agent, str):
            raise ParamTypeInvalidException(param='client_user_agent', param_type='str')
        return ' '.join([base, client_user_agent])
    return base
Exemplo n.º 3
0
 def _init_retry(self, custom_retry_policy):
     # TODO initialize
     # retry
     if custom_retry_policy is not None:
         self.retry_policy = custom_retry_policy
     elif self.config.enable_retry:
         try:
             max_retry_times = int(self.config.max_retry_times)
         except ValueError:
             raise ParamTypeInvalidException(param='max_retry_times', param_type='int')
         else:
             self.retry_policy = retry_policy.get_default_retry_policy(
                 max_retry_times=max_retry_times)
     else:
         self.retry_policy = retry_policy.NO_RETRY_POLICY
    def _filter_params(params):
        # handle params
        new_params = {}

        def handle_params(params, prefix=''):
            if isinstance(params, list):
                for i in range(len(params)):
                    handle_params(params[i], prefix=prefix + '.' + str(i + 1))
            elif isinstance(params, dict):
                for item in params.keys():
                    handle_params(params.get(item), prefix=prefix + '.' + item)
            else:
                new_params[prefix.rstrip('.')] = params

        # TODO None and [] are filer
        if params is not None:
            if not isinstance(params, dict):
                raise ParamTypeInvalidException(params=params, param_type='dict')
            for key, value in params.items():
                if params[key] is not None:
                    handle_params(params=value, prefix=key)

            return new_params
def assert_integer_positive(integer, name):
    if isinstance(integer, int) and integer > 0:
        return
    raise ParamTypeInvalidException(param=name, param_type='positive integer')