Renderers

Renderers are the managers of request body enconding and the content-type header.

Renderer name Content-type Encoding
form application/x-www-form-urlencoded param1=value1&param2=value2
multipart multipart/form-data Content-Disposition: form-data; name=”param1”nnvalue1
plain text/plain; charset=utf-8 param1=value1\nparam2=value2
json application/json {“param1”: “value1”, “param2”: “value2”}

JSONRenderer

Build the body for a application/json request.

FormRenderer

Build the body for a application/x-www-form-urlencoded request.

MultiPartRenderer

Build the body for a multipart/form-data request.

PlainTextRenderer

Build the body for a text/plain request.

Renderers module

class sdklib.http.renderers.BaseRenderer[source]

Bases: object

DEFAULT_CONTENT_TYPE = ''
encode_params(data=None, **kwargs)[source]

Build the body for a request.

class sdklib.http.renderers.CustomRenderer(content_type)[source]

Bases: sdklib.http.renderers.BaseRenderer

encode_params(data=None, **kwargs)[source]

Build the body for a custom request.

class sdklib.http.renderers.FormRenderer(collection_format='multi', output_str='javascript', sort=False)[source]

Bases: sdklib.http.renderers.BaseRenderer

COLLECTION_SEPARATORS = {'csv': ',', 'pipes': '|', 'ssv': ' ', 'tsv': '\t'}
DEFAULT_CONTENT_TYPE = 'application/x-www-form-urlencoded'
VALID_COLLECTION_FORMATS = ['multi', 'csv', 'ssv', 'tsv', 'pipes', 'encoded']
collection_format
encode_params(data=None, **kwargs)[source]

Encode parameters in a piece of data. Will successfully encode parameters when passed as a dict or a list of 2-tuples. Order is retained if data is a list of 2-tuples but arbitrary if parameters are supplied as a dict.

class sdklib.http.renderers.JSONRenderer[source]

Bases: sdklib.http.renderers.BaseRenderer

DEFAULT_CONTENT_TYPE = 'application/json'
encode_params(data=None, **kwargs)[source]

Build the body for a application/json request.

class sdklib.http.renderers.MultiPartRenderer(boundary='----------ThIs_Is_tHe_bouNdaRY', output_str='javascript')[source]

Bases: sdklib.http.renderers.BaseRenderer

encode_params(data=None, files=None, **kwargs)[source]

Build the body for a multipart/form-data request. Will successfully encode files when passed as a dict or a list of tuples. Order is retained if data is a list of tuples but arbitrary if parameters are supplied as a dict. The tuples may be string (filepath), 2-tuples (filename, fileobj), 3-tuples (filename, fileobj, contentype) or 4-tuples (filename, fileobj, contentype, custom_headers).

class sdklib.http.renderers.PlainTextRenderer(charset=None, collection_format='multi', output_str='javascript')[source]

Bases: sdklib.http.renderers.BaseRenderer

COLLECTION_SEPARATORS = {'csv': ',', 'pipes': '|', 'ssv': ' ', 'tsv': '\t'}
VALID_COLLECTION_FORMATS = ['multi', 'csv', 'ssv', 'tsv', 'pipes', 'plain']
collection_format
encode_params(data=None, **kwargs)[source]

Build the body for a text/plain request. Will successfully encode parameters when passed as a dict or a list of 2-tuples. Order is retained if data is a list of 2-tuples but arbitrary if parameters are supplied as a dict.

get_content_type(charset=None)[source]
class sdklib.http.renderers.XMLRenderer[source]

Bases: sdklib.http.renderers.BaseRenderer

DEFAULT_CONTENT_TYPE = 'application/xml'
encode_params(data=None, **kwargs)[source]

Build the body for a application/xml request.

sdklib.http.renderers.get_primitive_as_string(strings_dict, value)[source]
sdklib.http.renderers.get_renderer(name=None, mime_type=None)[source]
sdklib.http.renderers.guess_file_name_stream_type_header(args)[source]

Guess filename, file stream, file type, file header from args.

Parameters:args – may be string (filepath), 2-tuples (filename, fileobj), 3-tuples (filename,

fileobj, contentype) or 4-tuples (filename, fileobj, contentype, custom_headers). :return: filename, file stream, file type, file header

sdklib.http.renderers.to_string(value, lang='javascript')[source]
sdklib.http.renderers.url_encode(params, sort=False)[source]