parameters: (service_name, client_config,
                                        scoped_config)
return_statement: return None
docstring: Gets the manually configured signature version.
  
      :returns: the customer configured signature version, or None if no
          signature version was configured.
docstring_summary: Gets the manually configured signature version.
docstring_tokens: Gets the manually configured signature version .
function: def _get_configured_signature_version(service_name, client_config,
                                        scoped_config):
      """
      Gets the manually configured signature version.
  
      :returns: the customer configured signature version, or None if no
          signature version was configured.
      """
      # Client config overrides everything.
      if client_config and client_config.signature_version is not None:
          return client_config.signature_version
  
      # Scoped config overrides picking from the endpoint metadata.
      if scoped_config is not None:
          # A given service may have service specific configuration in the
          # config file, so we need to check there as well.
          service_config = scoped_config.get(service_name)
          if service_config is not None and isinstance(service_config, dict):
              version = service_config.get('signature_version')
              if version:
                  logger.debug(
                      "Switching signature version for service %s "
                      "to version %s based on config file override.",
                      service_name, version)
                  return version
      return None
function_tokens: def _get_configured_signature_version ( service_name , client_config , scoped_config ) : # Client config overrides everything. if client_config and client_config . signature_version is not None : return client_config . signature_version # Scoped config overrides picking from the endpoint metadata. if scoped_config is not None : # A given service may have service specific configuration in the # config file, so we need to check there as well. service_config = scoped_config . get ( service_name ) if service_config is not None and isinstance ( service_config , dict ) : version = service_config . get ( 'signature_version' ) if version : logger . debug ( "Switching signature version for service %s " "to version %s based on config file override." , service_name , version ) return version return None