Update pep8

This commit is contained in:
mbohlool 2017-06-08 17:36:03 -07:00
parent b49c6e9b50
commit bb49e2c433
4 changed files with 128 additions and 114 deletions

View File

@ -20,26 +20,21 @@ Copyright 2016 SmartBear Software
from __future__ import absolute_import
from . import models
from . import ws_client
from .rest import RESTClientObject
from .rest import ApiException
import os
import re
import json
import mimetypes
import os
import re
import tempfile
import threading
from datetime import datetime
from datetime import date
from datetime import date, datetime
# python 2 and python 3 compatibility library
from six import PY3, integer_types, iteritems, text_type
from six.moves.urllib.parse import quote
from . import models, ws_client
from .configuration import configuration
from .rest import ApiException, RESTClientObject
class ApiClient(object):
@ -59,9 +54,9 @@ class ApiClient(object):
:param header_name: a header to pass when making calls to the API.
:param header_value: a header value to pass when making calls to the API.
"""
def __init__(self, host=None, header_name=None, header_value=None,
cookie=None, config=configuration):
"""
Constructor of the class.
"""
@ -99,8 +94,8 @@ class ApiClient(object):
path_params=None, query_params=None, header_params=None,
body=None, post_params=None, files=None,
response_type=None, auth_settings=None, callback=None,
_return_http_data_only=None, collection_formats=None, _preload_content=True,
_request_timeout=None):
_return_http_data_only=None, collection_formats=None,
_preload_content=True, _request_timeout=None):
# header parameters
header_params = header_params or {}
@ -163,11 +158,16 @@ class ApiClient(object):
return_data = None
if callback:
callback(return_data) if _return_http_data_only else callback((return_data, response_data.status, response_data.getheaders()))
if _return_http_data_only:
callback(return_data)
else:
callback((return_data,
response_data.status, response_data.getheaders()))
elif _return_http_data_only:
return (return_data)
else:
return (return_data, response_data.status, response_data.getheaders())
return (return_data, response_data.status,
response_data.getheaders())
def sanitize_for_serialization(self, obj):
"""
@ -194,7 +194,7 @@ class ApiClient(object):
for sub_obj in obj]
elif isinstance(obj, tuple):
return tuple(self.sanitize_for_serialization(sub_obj)
for sub_obj in obj)
for sub_obj in obj)
elif isinstance(obj, (datetime, date)):
return obj.isoformat()
else:
@ -248,7 +248,7 @@ class ApiClient(object):
if data is None:
return None
if type(klass) == str:
if isinstance(klass, str):
if klass.startswith('list['):
sub_kls = re.match('list\[(.*)\]', klass).group(1)
return [self.__deserialize(sub_data, sub_kls)
@ -285,8 +285,8 @@ class ApiClient(object):
path_params=None, query_params=None, header_params=None,
body=None, post_params=None, files=None,
response_type=None, auth_settings=None, callback=None,
_return_http_data_only=None, collection_formats=None, _preload_content=True,
_request_timeout=None):
_return_http_data_only=None, collection_formats=None,
_preload_content=True, _request_timeout=None):
"""
Makes the HTTP request (synchronous) and return the deserialized data.
To make an async request, define a function for callback.
@ -307,13 +307,18 @@ class ApiClient(object):
:param callback function: Callback function for asynchronous request.
If provide this parameter,
the request will be called asynchronously.
:param _return_http_data_only: response data without head status code and headers
:param _return_http_data_only: response data without head status code
and headers
:param collection_formats: dict of collection formats for path, query,
header, and post parameters.
:param _preload_content: if False, the urllib3.HTTPResponse object will be returned without
reading/decoding response data. Default is True.
:param _request_timeout: timeout setting for this request. If one number provided, it will be total request
timeout. It can also be a pair (tuple) of (connection, read) timeouts.
:param _preload_content: if False, the urllib3.HTTPResponse object will
be returned without
reading/decoding response data.
Default is True.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:return:
If provide parameter callback,
the request will be called asynchronously.
@ -326,7 +331,8 @@ class ApiClient(object):
path_params, query_params, header_params,
body, post_params, files,
response_type, auth_settings, callback,
_return_http_data_only, collection_formats, _preload_content, _request_timeout)
_return_http_data_only, collection_formats,
_preload_content, _request_timeout)
else:
thread = threading.Thread(target=self.__call_api,
args=(resource_path, method,
@ -335,18 +341,22 @@ class ApiClient(object):
post_params, files,
response_type, auth_settings,
callback, _return_http_data_only,
collection_formats, _preload_content, _request_timeout))
collection_formats,
_preload_content,
_request_timeout))
thread.start()
return thread
def request(self, method, url, query_params=None, headers=None,
post_params=None, body=None, _preload_content=True, _request_timeout=None):
post_params=None, body=None, _preload_content=True,
_request_timeout=None):
"""
Makes the HTTP request using RESTClient.
"""
# FIXME(dims) : We need a better way to figure out which
# calls end up using web sockets
if (url.endswith('/exec') or url.endswith('/attach')) and (method == "GET" or method == "POST"):
if (url.endswith('/exec') or url.endswith('/attach')) and \
(method == "GET" or method == "POST"):
return ws_client.websocket_call(self.config,
url,
query_params=query_params,
@ -458,14 +468,15 @@ class ApiClient(object):
for k, v in iteritems(files):
if not v:
continue
file_names = v if type(v) is list else [v]
file_names = v if isinstance(v, list) else [v]
for n in file_names:
with open(n, 'rb') as f:
filename = os.path.basename(f.name)
filedata = f.read()
mimetype = mimetypes.\
guess_type(filename)[0] or 'application/octet-stream'
params.append(tuple([k, tuple([filename, filedata, mimetype])]))
mimetype = (mimetypes.guess_type(filename)[0] or
'application/octet-stream')
params.append(tuple([k, tuple([filename, filedata,
mimetype])]))
return params
@ -543,9 +554,8 @@ class ApiClient(object):
content_disposition = response.getheader("Content-Disposition")
if content_disposition:
filename = re.\
search(r'filename=[\'"]?([^\'"\s]+)[\'"]?', content_disposition).\
group(1)
filename = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?',
content_disposition).group(1)
path = os.path.join(os.path.dirname(path), filename)
with open(path, "w") as f:

View File

@ -130,8 +130,8 @@ class KubeConfigLoader(object):
context_name = self._config['current-context']
self._current_context = self._config['contexts'].get_with_name(
context_name)
if (self._current_context['context'].safe_get('user')
and self._config.safe_get('users')):
if (self._current_context['context'].safe_get('user') and
self._config.safe_get('users')):
user = self._config['users'].get_with_name(
self._current_context['context']['user'], safe=True)
if user:

View File

@ -3,11 +3,7 @@
"""
Kubernetes
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
OpenAPI spec version: v1.5.0-snapshot
Generated by: https://github.com/swagger-api/swagger-codegen.git
First version Generated by: https://github.com/swagger-api/swagger-codegen
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -24,11 +20,10 @@
from __future__ import absolute_import
import urllib3
import sys
import logging
import sys
import urllib3
from six import iteritems
from six.moves import http_client as httplib
@ -77,7 +72,8 @@ class ConfigurationObject(object):
self.debug = False
# SSL/TLS verification
# Set this to false to skip verifying SSL certificate when calling API from https server.
# Set this to false to skip verifying SSL certificate when calling API
# from https server.
self.verify_ssl = True
# Set this to customize the certificate file to verify the peer.
self.ssl_ca_cert = None
@ -101,8 +97,8 @@ class ConfigurationObject(object):
"""
Sets the logger_file.
If the logger_file is None, then add stream handler and remove file handler.
Otherwise, add file handler and remove stream handler.
If the logger_file is None, then add stream handler and remove file
handler. Otherwise, add file handler and remove stream handler.
:param value: The logger_file path.
:type: str
@ -184,8 +180,10 @@ class ConfigurationObject(object):
:param identifier: The identifier of apiKey.
:return: The token for api key authentication.
"""
if self.api_key.get(identifier) and self.api_key_prefix.get(identifier):
return self.api_key_prefix[identifier] + ' ' + self.api_key[identifier]
if (self.api_key.get(identifier) and
self.api_key_prefix.get(identifier)):
return (self.api_key_prefix[identifier] + ' ' +
self.api_key[identifier])
elif self.api_key.get(identifier):
return self.api_key[identifier]
@ -195,8 +193,9 @@ class ConfigurationObject(object):
:return: The token for basic HTTP authentication.
"""
return urllib3.util.make_headers(basic_auth=self.username + ':' + self.password)\
.get('authorization')
return urllib3.util.make_headers(
basic_auth=self.username + ':' + self.password).get(
'authorization')
def auth_settings(self):
"""

129
rest.py
View File

@ -3,11 +3,7 @@
"""
Kubernetes
No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
OpenAPI spec version: v1.5.0-snapshot
Generated by: https://github.com/swagger-api/swagger-codegen.git
First version Generated by: https://github.com/swagger-api/swagger-codegen
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -26,11 +22,11 @@ from __future__ import absolute_import
import io
import json
import ssl
import certifi
import logging
import re
import ssl
import certifi
# python 2 and python 3 compatibility library
from six import PY3
from six.moves.urllib.parse import urlencode
@ -112,7 +108,8 @@ class RESTClientObject(object):
)
def request(self, method, url, query_params=None, headers=None,
body=None, post_params=None, _preload_content=True, _request_timeout=None):
body=None, post_params=None, _preload_content=True,
_request_timeout=None):
"""
:param method: http request method
:param url: http request url
@ -122,13 +119,17 @@ class RESTClientObject(object):
:param post_params: request post parameters,
`application/x-www-form-urlencoded`
and `multipart/form-data`
:param _preload_content: if False, the urllib3.HTTPResponse object will be returned without
reading/decoding response data. Default is True.
:param _request_timeout: timeout setting for this request. If one number provided, it will be total request
timeout. It can also be a pair (tuple) of (connection, read) timeouts.
:param _preload_content: if False, the urllib3.HTTPResponse object will
be returned without reading/decoding response
data. Default is True.
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
"""
method = method.upper()
assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT', 'PATCH', 'OPTIONS']
assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT', 'PATCH',
'OPTIONS']
if post_params and body:
raise ValueError(
@ -142,8 +143,10 @@ class RESTClientObject(object):
if _request_timeout:
if isinstance(_request_timeout, (int, ) if PY3 else (int, long)):
timeout = urllib3.Timeout(total=_request_timeout)
elif isinstance(_request_timeout, tuple) and len(_request_timeout) == 2:
timeout = urllib3.Timeout(connect=_request_timeout[0], read=_request_timeout[1])
elif (isinstance(_request_timeout, tuple) and
len(_request_timeout) == 2):
timeout = urllib3.Timeout(connect=_request_timeout[0],
read=_request_timeout[1])
if 'Content-Type' not in headers:
headers['Content-Type'] = 'application/json'
@ -155,55 +158,53 @@ class RESTClientObject(object):
url += '?' + urlencode(query_params)
if headers['Content-Type'] == 'application/json-patch+json':
if not isinstance(body, list):
headers['Content-Type'] = 'application/strategic-merge-patch+json'
headers['Content-Type'] = \
'application/strategic-merge-patch+json'
request_body = None
if body:
request_body = json.dumps(body)
r = self.pool_manager.request(method, url,
body=request_body,
preload_content=_preload_content,
timeout=timeout,
headers=headers)
r = self.pool_manager.request(
method, url, body=request_body,
preload_content=_preload_content,
timeout=timeout, headers=headers)
elif re.search('json', headers['Content-Type'], re.IGNORECASE):
request_body = None
if body:
request_body = json.dumps(body)
r = self.pool_manager.request(method, url,
body=request_body,
preload_content=_preload_content,
timeout=timeout,
headers=headers)
elif headers['Content-Type'] == 'application/x-www-form-urlencoded':
r = self.pool_manager.request(method, url,
fields=post_params,
encode_multipart=False,
preload_content=_preload_content,
timeout=timeout,
headers=headers)
r = self.pool_manager.request(
method, url, body=request_body,
preload_content=_preload_content, timeout=timeout,
headers=headers)
elif headers['Content-Type'] == \
'application/x-www-form-urlencoded':
r = self.pool_manager.request(
method, url, fields=post_params,
encode_multipart=False,
preload_content=_preload_content, timeout=timeout,
headers=headers)
elif headers['Content-Type'] == 'multipart/form-data':
# must del headers['Content-Type'], or the correct Content-Type
# which generated by urllib3 will be overwritten.
# must del headers['Content-Type'], or the correct
# Content-Type which generated by urllib3 will be
# overwritten.
del headers['Content-Type']
r = self.pool_manager.request(method, url,
fields=post_params,
encode_multipart=True,
preload_content=_preload_content,
timeout=timeout,
headers=headers)
r = self.pool_manager.request(
method, url, fields=post_params, encode_multipart=True,
preload_content=_preload_content, timeout=timeout,
headers=headers)
# Pass a `string` parameter directly in the body to support
# other content types than Json when `body` argument is provided
# in serialized form
# other content types than Json when `body` argument is
# provided in serialized form
elif isinstance(body, str):
request_body = body
r = self.pool_manager.request(method, url,
body=request_body,
preload_content=_preload_content,
timeout=timeout,
headers=headers)
r = self.pool_manager.request(
method, url, body=request_body,
preload_content=_preload_content, timeout=timeout,
headers=headers)
else:
# Cannot generate the request from given parameters
msg = """Cannot prepare a request message for provided arguments.
Please check that your arguments match declared content type."""
msg = "Cannot prepare a request message for provided " \
"arguments. \nPlease check that your arguments " \
"match declared content type."
raise ApiException(status=0, reason=msg)
# For `GET`, `HEAD`
else:
@ -232,22 +233,24 @@ class RESTClientObject(object):
return r
def GET(self, url, headers=None, query_params=None, _preload_content=True, _request_timeout=None):
def GET(self, url, headers=None, query_params=None, _preload_content=True,
_request_timeout=None):
return self.request("GET", url,
headers=headers,
_preload_content=_preload_content,
_request_timeout=_request_timeout,
query_params=query_params)
def HEAD(self, url, headers=None, query_params=None, _preload_content=True, _request_timeout=None):
def HEAD(self, url, headers=None, query_params=None, _preload_content=True,
_request_timeout=None):
return self.request("HEAD", url,
headers=headers,
_preload_content=_preload_content,
_request_timeout=_request_timeout,
query_params=query_params)
def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True,
_request_timeout=None):
def OPTIONS(self, url, headers=None, query_params=None, post_params=None,
body=None, _preload_content=True, _request_timeout=None):
return self.request("OPTIONS", url,
headers=headers,
query_params=query_params,
@ -256,7 +259,8 @@ class RESTClientObject(object):
_request_timeout=_request_timeout,
body=body)
def DELETE(self, url, headers=None, query_params=None, body=None, _preload_content=True, _request_timeout=None):
def DELETE(self, url, headers=None, query_params=None, body=None,
_preload_content=True, _request_timeout=None):
return self.request("DELETE", url,
headers=headers,
query_params=query_params,
@ -264,8 +268,8 @@ class RESTClientObject(object):
_request_timeout=_request_timeout,
body=body)
def POST(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True,
_request_timeout=None):
def POST(self, url, headers=None, query_params=None, post_params=None,
body=None, _preload_content=True, _request_timeout=None):
return self.request("POST", url,
headers=headers,
query_params=query_params,
@ -274,8 +278,8 @@ class RESTClientObject(object):
_request_timeout=_request_timeout,
body=body)
def PUT(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True,
_request_timeout=None):
def PUT(self, url, headers=None, query_params=None, post_params=None,
body=None, _preload_content=True, _request_timeout=None):
return self.request("PUT", url,
headers=headers,
query_params=query_params,
@ -284,8 +288,8 @@ class RESTClientObject(object):
_request_timeout=_request_timeout,
body=body)
def PATCH(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True,
_request_timeout=None):
def PATCH(self, url, headers=None, query_params=None, post_params=None,
body=None, _preload_content=True, _request_timeout=None):
return self.request("PATCH", url,
headers=headers,
query_params=query_params,
@ -316,7 +320,8 @@ class ApiException(Exception):
error_message = "({0})\n"\
"Reason: {1}\n".format(self.status, self.reason)
if self.headers:
error_message += "HTTP response headers: {0}\n".format(self.headers)
error_message += "HTTP response headers: {0}\n"\
.format(self.headers)
if self.body:
error_message += "HTTP response body: {0}\n".format(self.body)