%PDF- %PDF-
Direktori : /lib/python3/dist-packages/CloudFlare/ |
Current File : //lib/python3/dist-packages/CloudFlare/utils.py |
""" misc utilities for Cloudflare API""" from __future__ import absolute_import import sys import requests from . import __version__ def user_agent(): """ misc utilities for Cloudflare API""" # the default User-Agent is something like 'python-requests/2.11.1' # this additional data helps support @ Cloudflare help customers return ('python-cloudflare/' + __version__ + '/' + 'python-requests/' + str(requests.__version__) + '/' + 'python/' + '.'.join(map(str, sys.version_info[:3])) ) def sanitize_secrets(secrets): """ misc utilities for Cloudflare API""" redacted_phrase = 'REDACTED' if secrets is None: return None secrets_copy = secrets.copy() if 'password' in secrets_copy: secrets_copy['password'] = redacted_phrase elif 'X-Auth-Key' in secrets_copy: secrets_copy['X-Auth-Key'] = redacted_phrase elif 'X-Auth-User-Service-Key' in secrets_copy: secrets_copy['X-Auth-User-Service-Key'] = redacted_phrase elif 'Authorization' in secrets_copy: secrets_copy['Authorization'] = redacted_phrase return secrets_copy def build_curl(method, url, headers, params, data, files): """ misc utilities for Cloudflare API""" msg = [] # url url_full = url if params is not None: for k in params: if k is None: continue url_full += '&%s=%s' % (k, params[k]) url_full = url_full.replace('&', '?', 1) msg.append(' curl -X %s "%s" \\' % (str(method), str(url_full))) # headers h = sanitize_secrets(headers) for k in h: if k is None: continue msg.append(' -H "%s: %s" \\' % (k, h[k])) # data if data is not None: try: str_data = json.dumps(data) except: str_data = str(data) msg.append(' --data \'%s\' \\' % (str_data.replace('\n', ' '))) # files if files is not None: msg.append(' --form "file=@%s" \\' % (files)) # remove the last \ from the last line. msg[-1] = msg[-1][:-1] return '\n'.join(msg)