Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-cloudflare for
openSUSE:Factory checked in at 2023-07-12 17:27:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cloudflare (Old)
and /work/SRC/openSUSE:Factory/.python-cloudflare.new.8922 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cloudflare"
Wed Jul 12 17:27:23 2023 rev:10 rq:1098206 version:2.11.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cloudflare/python-cloudflare.changes
2023-07-01 23:18:30.350423805 +0200
+++
/work/SRC/openSUSE:Factory/.python-cloudflare.new.8922/python-cloudflare.changes
2023-07-12 17:27:49.514699636 +0200
@@ -1,0 +2,9 @@
+Tue Jul 11 14:06:47 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 2.11.6:
+ * handle multipart/form-data correctly for more than one file and with
params/data
+ * keywords not handled correctly at command level
+ * added after openapi review
+ * added deprecated processing, now shows version
+
+-------------------------------------------------------------------
Old:
----
cloudflare-2.11.1.tar.gz
New:
----
cloudflare-2.11.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cloudflare.spec ++++++
--- /var/tmp/diff_new_pack.SBh9Rr/_old 2023-07-12 17:27:50.122703845 +0200
+++ /var/tmp/diff_new_pack.SBh9Rr/_new 2023-07-12 17:27:50.126703872 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-cloudflare
-Version: 2.11.1
+Version: 2.11.6
Release: 0
Summary: Python wrapper for the Cloudflare v4 API
License: MIT
++++++ cloudflare-2.11.1.tar.gz -> cloudflare-2.11.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/CloudFlare/__init__.py
new/cloudflare-2.11.6/CloudFlare/__init__.py
--- old/cloudflare-2.11.1/CloudFlare/__init__.py 2022-11-24
19:52:10.000000000 +0100
+++ new/cloudflare-2.11.6/CloudFlare/__init__.py 2023-05-21
19:54:08.000000000 +0200
@@ -1,7 +1,7 @@
""" Cloudflare v4 API"""
from __future__ import absolute_import
-__version__ = '2.11.1'
+__version__ = '2.11.6'
from .cloudflare import CloudFlare
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cloudflare-2.11.1/CloudFlare/api_decode_from_openapi.py
new/cloudflare-2.11.6/CloudFlare/api_decode_from_openapi.py
--- old/cloudflare-2.11.1/CloudFlare/api_decode_from_openapi.py 2022-11-19
23:13:24.000000000 +0100
+++ new/cloudflare-2.11.6/CloudFlare/api_decode_from_openapi.py 2022-11-26
23:35:22.000000000 +0100
@@ -9,7 +9,7 @@
match_identifier = re.compile('\{[A-Za-z0-9_]*\}')
-def do_path(cmd, info):
+def do_path(cmd, values):
""" do_path() """
cmds = []
@@ -23,14 +23,18 @@
if cmd[-4:] == '/:id':
cmd = cmd[:-4]
- for action in info:
- action = action.upper()
- if action == '' or action not in API_TYPES:
+ for action in values:
+ if action == '' or action.upper() not in API_TYPES:
continue
- deprecated = False
- deprecated_date = ''
- deprecated_already = False
- v = {'action': action, 'cmd': cmd, 'deprecated': deprecated,
'deprecated_date': deprecated_date, 'deprecated_already': deprecated_already}
+ if 'deprecated' in values[action] and values[action]['deprecated']:
+ deprecated = True
+ deprecated_date = datetime.datetime.now().strftime('%Y-%m-%d')
+ deprecated_already = True
+ else:
+ deprecated = False
+ deprecated_date = ''
+ deprecated_already = False
+ v = {'action': action.upper(), 'cmd': cmd, 'deprecated': deprecated,
'deprecated_date': deprecated_date, 'deprecated_already': deprecated_already}
cmds.append(v)
return cmds
@@ -53,6 +57,8 @@
sys.stderr.write("OpenAPI json format structure: %s\n" % (e))
return None
+ sys.stderr.write("OpenAPI %s json file - version: %s\n" % (openapi,
info['version']))
+
all_cmds = []
for path in paths:
if path[0] != '/':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/CloudFlare/api_v4.py
new/cloudflare-2.11.6/CloudFlare/api_v4.py
--- old/cloudflare-2.11.1/CloudFlare/api_v4.py 2022-11-24 20:02:27.000000000
+0100
+++ new/cloudflare-2.11.6/CloudFlare/api_v4.py 2023-05-21 19:52:43.000000000
+0200
@@ -231,7 +231,7 @@
self.add('VOID', 'zones', 'logpush/datasets')
self.add('AUTH', 'zones', 'logpush/datasets', 'fields')
self.add('AUTH', 'zones', 'logpush/datasets', 'jobs')
- self.add('VOID', 'zones', 'logpush/edge')
+ self.add('AUTH', 'zones', 'logpush/edge')
self.add('AUTH', 'zones', 'logpush/edge/jobs')
self.add('AUTH', 'zones', 'logpush/jobs')
self.add('AUTH', 'zones', 'logpush/ownership')
@@ -383,11 +383,13 @@
self.add('AUTH', 'accounts', 'cfd_tunnel')
self.add('AUTH', 'accounts', 'cfd_tunnel', 'configurations')
self.add('AUTH', 'accounts', 'cfd_tunnel', 'connections')
+ self.add('AUTH', 'accounts', 'cfd_tunnel', 'management')
self.add('AUTH', 'accounts', 'cfd_tunnel', 'token')
self.add('AUTH', 'accounts', 'custom_pages')
self.add('VOID', 'accounts', 'dlp')
self.add('VOID', 'accounts', 'dlp/patterns')
self.add('AUTH', 'accounts', 'dlp/patterns/validate')
+ self.add('AUTH', 'accounts', 'dlp/payload_log')
self.add('AUTH', 'accounts', 'dlp/profiles')
self.add('AUTH', 'accounts', 'dlp/profiles/custom')
self.add('AUTH', 'accounts', 'dlp/profiles/predefined')
@@ -433,8 +435,12 @@
self.add('VOID', 'accounts', 'virtual_dns', 'dns_analytics')
self.add('AUTH', 'accounts', 'virtual_dns', 'dns_analytics/report')
self.add('AUTH', 'accounts', 'virtual_dns', 'dns_analytics/report/bytime')
+
self.add('VOID', 'accounts', 'workers')
self.add('AUTH', 'accounts', 'workers/account-settings')
+ self.add('VOID', 'accounts', 'workers/deployments')
+ self.add('AUTH', 'accounts', 'workers/deployments/by-script')
+ self.add('AUTH', 'accounts', 'workers/deployments/by-script', 'detail')
self.add('VOID', 'accounts', 'workers/dispatch')
self.add('AUTH', 'accounts', 'workers/dispatch/namespaces')
self.add('AUTH', 'accounts', 'workers/dispatch/namespaces', 'scripts')
@@ -464,7 +470,9 @@
self.add('AUTH', 'accounts', 'addressing/prefixes')
self.add('VOID', 'accounts', 'addressing/prefixes', 'bgp')
self.add('AUTH', 'accounts', 'addressing/prefixes', 'bgp/status')
+ self.add('AUTH', 'accounts', 'addressing/prefixes', 'bindings')
self.add('AUTH', 'accounts', 'addressing/prefixes', 'delegations')
+ self.add('AUTH', 'accounts', 'addressing/services')
def accounts_audit_logs(self):
""" accounts audit_logs """
@@ -549,6 +557,7 @@
self.add('AUTH', 'zones', 'access/apps', 'revoke_tokens')
self.add('AUTH', 'zones', 'access/bookmarks')
self.add('AUTH', 'zones', 'access/certificates')
+ self.add('AUTH', 'zones', 'access/certificates/settings')
# self.add('AUTH', 'zones', 'access/apps/ca')
self.add('AUTH', 'zones', 'access/apps', 'ca')
self.add('AUTH', 'zones', 'access/apps', 'user_policy_checks')
@@ -579,6 +588,7 @@
self.add('AUTH', 'accounts', 'access/apps', 'revoke_tokens')
self.add('AUTH', 'accounts', 'access/apps', 'user_policy_checks')
self.add('AUTH', 'accounts', 'access/certificates')
+ self.add('AUTH', 'accounts', 'access/certificates/settings')
self.add('AUTH', 'accounts', 'access/keys')
self.add('AUTH', 'accounts', 'access/keys/rotate')
self.add('VOID', 'accounts', 'access/logs')
@@ -602,6 +612,7 @@
self.add('AUTH', 'zones', 'waiting_rooms', 'rules')
self.add('AUTH', 'zones', 'waiting_rooms', 'status')
self.add('AUTH', 'zones', 'waiting_rooms/preview')
+ self.add('AUTH', 'zones', 'waiting_rooms/settings')
def accounts_extras(self):
""" extras """
@@ -622,6 +633,8 @@
self.add('AUTH', 'accounts', 'devices')
self.add('AUTH', 'accounts', 'devices', 'override_codes')
+ self.add('AUTH', 'accounts', 'devices/dex_tests')
+ self.add('AUTH', 'accounts', 'devices/networks')
self.add('AUTH', 'accounts', 'devices/policies')
self.add('AUTH', 'accounts', 'devices/policy')
self.add('AUTH', 'accounts', 'devices/policy', 'exclude')
@@ -636,6 +649,7 @@
self.add('AUTH', 'accounts', 'devices/settings')
self.add('AUTH', 'accounts', 'devices/unrevoke')
+
self.add('AUTH', 'accounts', 'dns_firewall')
self.add('VOID', 'accounts', 'dns_firewall', 'dns_analytics')
self.add('AUTH', 'accounts', 'dns_firewall', 'dns_analytics/report')
@@ -710,8 +724,11 @@
self.add('VOID', 'zones', 'cache')
self.add('AUTH', 'zones', 'cache/variants')
self.add('AUTH', 'zones', 'cache/cache_reserve')
+ self.add('AUTH', 'zones', 'cache/regional_tiered_cache')
+ self.add('AUTH', 'zones', 'cache/tiered_cache_smart_topology_enable')
self.add('AUTH', 'zones', 'managed_headers')
self.add('AUTH', 'zones', 'page_shield')
+ self.add('AUTH', 'zones', 'page_shield/policies')
self.add('AUTH', 'zones', 'page_shield/scripts')
self.add('AUTH', 'zones', 'page_shield/connections')
self.add('AUTH', 'zones', 'rulesets')
@@ -775,11 +792,49 @@
self.add('VOID', 'radar/annotations')
self.add('AUTH', 'radar/annotations/outages')
self.add('AUTH', 'radar/annotations/outages/locations')
+
+ self.add('VOID', 'radar/as112')
+ self.add('VOID', 'radar/as112/summary')
+ self.add('AUTH', 'radar/as112/summary/dnssec')
+ self.add('AUTH', 'radar/as112/summary/edns')
+ self.add('AUTH', 'radar/as112/summary/ip_version')
+ self.add('AUTH', 'radar/as112/summary/protocol')
+ self.add('AUTH', 'radar/as112/summary/query_type')
+ self.add('AUTH', 'radar/as112/summary/response_codes')
+ self.add('AUTH', 'radar/as112/timeseries')
+ self.add('AUTH', 'radar/as112/timeseries/dnssec')
+ self.add('AUTH', 'radar/as112/timeseries/edns')
+ self.add('AUTH', 'radar/as112/timeseries/ip_version')
+ self.add('AUTH', 'radar/as112/timeseries/protocol')
+ self.add('AUTH', 'radar/as112/timeseries/query_type')
+ self.add('AUTH', 'radar/as112/timeseries/response_codes')
+ self.add('VOID', 'radar/as112/top')
+ self.add('AUTH', 'radar/as112/top/locations')
+ self.add('AUTH', 'radar/as112/top/locations/dnssec')
+ self.add('AUTH', 'radar/as112/top/locations/edns')
+ self.add('AUTH', 'radar/as112/top/locations/ip_version')
+
self.add('VOID', 'radar/attacks')
self.add('VOID', 'radar/attacks/layer3')
self.add('AUTH', 'radar/attacks/layer3/summary')
self.add('AUTH', 'radar/attacks/layer3/timeseries')
self.add('AUTH', 'radar/attacks/layer3/timeseries_groups')
+ self.add('AUTH', 'radar/attacks/layer3/summary/bitrate')
+ self.add('AUTH', 'radar/attacks/layer3/summary/duration')
+ self.add('AUTH', 'radar/attacks/layer3/summary/ip_version')
+ self.add('AUTH', 'radar/attacks/layer3/summary/protocol')
+ self.add('AUTH', 'radar/attacks/layer3/summary/vector')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/bitrate')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/duration')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/industry')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/ip_version')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/protocol')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/vector')
+ self.add('AUTH', 'radar/attacks/layer3/timeseries_groups/vertical')
+ self.add('VOID', 'radar/attacks/layer3/top')
+ self.add('AUTH', 'radar/attacks/layer3/top/industry')
+ self.add('AUTH', 'radar/attacks/layer3/top/vertical')
+
self.add('VOID', 'radar/attacks/layer7')
self.add('AUTH', 'radar/attacks/layer7/summary')
self.add('AUTH', 'radar/attacks/layer7/timeseries')
@@ -791,20 +846,64 @@
self.add('VOID', 'radar/attacks/layer7/top/locations')
self.add('AUTH', 'radar/attacks/layer7/top/locations/origin')
self.add('AUTH', 'radar/attacks/layer7/top/locations/target')
+
self.add('VOID', 'radar/bgp')
+ self.add('VOID', 'radar/bgp/leaks')
+ self.add('AUTH', 'radar/bgp/leaks/events')
self.add('AUTH', 'radar/bgp/timeseries')
self.add('VOID', 'radar/bgp/top')
self.add('AUTH', 'radar/bgp/top/ases')
self.add('AUTH', 'radar/bgp/top/prefixes')
+ self.add('VOID', 'radar/bgp/hijacks')
+ self.add('AUTH', 'radar/bgp/hijacks/events')
+
+ self.add('AUTH', 'radar/datasets')
+ self.add('AUTH', 'radar/datasets/download')
+
self.add('VOID', 'radar/dns')
- self.add('AUTH', 'radar/dns/timeseries')
self.add('VOID', 'radar/dns/top')
self.add('AUTH', 'radar/dns/top/ases')
self.add('AUTH', 'radar/dns/top/locations')
+
+ self.add('VOID', 'radar/email')
+ self.add('VOID', 'radar/email/security')
+ self.add('VOID', 'radar/email/security/summary')
+ self.add('AUTH', 'radar/email/security/summary/arc')
+ self.add('AUTH', 'radar/email/security/summary/dkim')
+ self.add('AUTH', 'radar/email/security/summary/dmarc')
+ self.add('AUTH', 'radar/email/security/summary/malicious')
+ self.add('AUTH', 'radar/email/security/summary/spam')
+ self.add('AUTH', 'radar/email/security/summary/spf')
+ self.add('AUTH', 'radar/email/security/summary/threat_category')
+ self.add('VOID', 'radar/email/security/timeseries')
+ self.add('AUTH', 'radar/email/security/timeseries/arc')
+ self.add('AUTH', 'radar/email/security/timeseries/dkim')
+ self.add('AUTH', 'radar/email/security/timeseries/dmarc')
+ self.add('AUTH', 'radar/email/security/timeseries/malicious')
+ self.add('AUTH', 'radar/email/security/timeseries/spam')
+ self.add('AUTH', 'radar/email/security/timeseries/spf')
+ self.add('AUTH', 'radar/email/security/timeseries/threat_category')
+ self.add('VOID', 'radar/email/security/top')
+ self.add('AUTH', 'radar/email/security/top/ases')
+ self.add('AUTH', 'radar/email/security/top/ases/arc')
+ self.add('AUTH', 'radar/email/security/top/ases/dkim')
+ self.add('AUTH', 'radar/email/security/top/ases/dmarc')
+ self.add('AUTH', 'radar/email/security/top/ases/malicious')
+ self.add('AUTH', 'radar/email/security/top/ases/spam')
+ self.add('AUTH', 'radar/email/security/top/ases/spf')
+ self.add('AUTH', 'radar/email/security/top/locations')
+ self.add('AUTH', 'radar/email/security/top/locations/arc')
+ self.add('AUTH', 'radar/email/security/top/locations/dkim')
+ self.add('AUTH', 'radar/email/security/top/locations/dmarc')
+ self.add('AUTH', 'radar/email/security/top/locations/malicious')
+ self.add('AUTH', 'radar/email/security/top/locations/spam')
+ self.add('AUTH', 'radar/email/security/top/locations/spf')
+
self.add('VOID', 'radar/entities')
self.add('AUTH', 'radar/entities/asns')
self.add('AUTH', 'radar/entities/asns/ip')
self.add('AUTH', 'radar/entities/locations')
+
self.add('VOID', 'radar/http')
self.add('VOID', 'radar/http/summary')
self.add('AUTH', 'radar/http/summary/bot_class')
@@ -812,6 +911,7 @@
self.add('AUTH', 'radar/http/summary/http_protocol')
self.add('AUTH', 'radar/http/summary/http_version')
self.add('AUTH', 'radar/http/summary/ip_version')
+ self.add('AUTH', 'radar/http/summary/os')
self.add('AUTH', 'radar/http/summary/tls_version')
self.add('VOID', 'radar/http/timeseries')
self.add('AUTH', 'radar/http/timeseries/bot_class')
@@ -821,6 +921,7 @@
self.add('AUTH', 'radar/http/timeseries/http_protocol')
self.add('AUTH', 'radar/http/timeseries/http_version')
self.add('AUTH', 'radar/http/timeseries/ip_version')
+ self.add('AUTH', 'radar/http/timeseries/os')
self.add('AUTH', 'radar/http/timeseries/tls_version')
self.add('VOID', 'radar/http/top')
self.add('AUTH', 'radar/http/top/ases')
@@ -829,6 +930,7 @@
self.add('AUTH', 'radar/http/top/ases/http_protocol')
self.add('AUTH', 'radar/http/top/ases/http_version')
self.add('AUTH', 'radar/http/top/ases/ip_version')
+ self.add('AUTH', 'radar/http/top/ases/os')
self.add('AUTH', 'radar/http/top/ases/tls_version')
self.add('AUTH', 'radar/http/top/browsers')
self.add('AUTH', 'radar/http/top/browser_families')
@@ -838,18 +940,24 @@
self.add('AUTH', 'radar/http/top/locations/http_protocol')
self.add('AUTH', 'radar/http/top/locations/http_version')
self.add('AUTH', 'radar/http/top/locations/ip_version')
+ self.add('AUTH', 'radar/http/top/locations/os')
self.add('AUTH', 'radar/http/top/locations/tls_version')
+
self.add('VOID', 'radar/netflows')
self.add('AUTH', 'radar/netflows/timeseries')
self.add('VOID', 'radar/netflows/top')
self.add('AUTH', 'radar/netflows/top/ases')
self.add('AUTH', 'radar/netflows/top/locations')
+
+ self.add('VOID', 'radar/performance')
+ self.add('VOID', 'radar/performance/iqi')
+ self.add('AUTH', 'radar/performance/iqi/summary')
+ self.add('AUTH', 'radar/performance/iqi/timeseries_groups')
+
self.add('VOID', 'radar/ranking')
+ self.add('AUTH', 'radar/ranking/domain')
self.add('AUTH', 'radar/ranking/timeseries')
self.add('AUTH', 'radar/ranking/top')
- self.add('VOID', 'radar/reports')
- self.add('AUTH', 'radar/reports/datasets')
- self.add('AUTH', 'radar/reports/datasets/download')
self.add('VOID', 'radar/search')
self.add('AUTH', 'radar/search/global')
self.add('AUTH', 'radar/specialevents')
@@ -868,9 +976,21 @@
self.add('VOID', 'accounts', 'logpush')
self.add('AUTH', 'accounts', 'logpush/jobs')
+ self.add('VOID', 'accounts', 'logpush/datasets')
+ self.add('AUTH', 'accounts', 'logpush/datasets', 'fields')
+ self.add('AUTH', 'accounts', 'logpush/datasets', 'jobs')
+ self.add('AUTH', 'accounts', 'logpush/ownership')
+ self.add('AUTH', 'accounts', 'logpush/ownership/validate')
+ self.add('VOID', 'accounts', 'logpush/validate')
+ self.add('VOID', 'accounts', 'logpush/validate/destination')
+ self.add('AUTH', 'accounts', 'logpush/validate/destination/exists')
+ self.add('AUTH', 'accounts', 'logpush/validate/origin')
self.add('VOID', 'accounts', 'logs')
self.add('AUTH', 'accounts', 'logs/retrieve')
+ self.add('VOID', 'accounts', 'logs/control')
+ self.add('VOID', 'accounts', 'logs/control/cmb')
+ self.add('AUTH', 'accounts', 'logs/control/cmb/config')
self.add('VOID', 'accounts', 'magic/advanced_tcp_protection')
self.add('VOID', 'accounts', 'magic/advanced_tcp_protection/configs')
@@ -926,3 +1046,16 @@
self.add('VOID', 'zones', 'rulesets/phases/http_request_firewall_managed')
self.add('AUTH', 'zones',
'rulesets/phases/http_request_firewall_managed/entrypoint')
self.add('AUTH', 'zones',
'rulesets/phases/http_request_firewall_managed/entrypoint/versions')
+
+ self.add('VOID', 'zones', 'certificate_authorities')
+ self.add('AUTH', 'zones', 'certificate_authorities/hostname_associations')
+ self.add('AUTH', 'zones', 'hold')
+
+ self.add('VOID', 'accounts', 'challenges')
+ self.add('AUTH', 'accounts', 'challenges/widgets')
+ self.add('AUTH', 'accounts', 'challenges/widgets', 'rotate_secret')
+ self.add('AUTH', 'accounts', 'mtls_certificates')
+ self.add('AUTH', 'accounts', 'mtls_certificates', 'associations')
+ self.add('VOID', 'accounts', 'request-tracer')
+ self.add('AUTH', 'accounts', 'request-tracer/trace')
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/CloudFlare/cloudflare.py
new/cloudflare-2.11.6/CloudFlare/cloudflare.py
--- old/cloudflare-2.11.1/CloudFlare/cloudflare.py 2022-11-24
19:37:49.000000000 +0100
+++ new/cloudflare-2.11.6/CloudFlare/cloudflare.py 2023-05-21
19:26:25.000000000 +0200
@@ -194,6 +194,14 @@
if parts[4]:
url += '/' + parts[4]
+ if files and data:
+ # Can't send data and form data - so move data into files and
send as multipart/form-data
+ new_files = []
+ new_files += [(f, (files[f].name, files[f])) for f in files]
+ new_files += [(d, (None, data[d])) for d in data]
+ files = tuple(new_files)
+ data = None
+
if self.logger:
msg = build_curl(method, url, headers, params, data, files)
self.logger.debug('Call: emulated curl command ...\n%s', msg)
@@ -531,13 +539,6 @@
result = response_data
return result
- def api_from_web(self):
- """ Cloudflare v4 API"""
-
- # base url isn't enough; we need less
- url = '/'.join(self.base_url.split('/')[0:3])
- return self._read_from_web(url)
-
def api_from_openapi(self, url):
""" Cloudflare v4 API"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/CloudFlare/utils.py
new/cloudflare-2.11.6/CloudFlare/utils.py
--- old/cloudflare-2.11.1/CloudFlare/utils.py 2022-11-23 22:05:15.000000000
+0100
+++ new/cloudflare-2.11.6/CloudFlare/utils.py 2023-05-20 03:00:53.000000000
+0200
@@ -63,7 +63,16 @@
msg.append(' --data \'%s\' \\' % (str_data.replace('\n', '
')))
# files
if files is not None:
- msg.append(' --form "file=@%s" \\' % (files))
+ if isinstance(files, (list, tuple)):
+ for f in files:
+ if f[1][0] is None:
+ # not a file
+ msg.append(' --form "%s=%s" \\' % (f[0],
f[1][1]))
+ else:
+ # a file
+ msg.append(' --form "%s=@%s" \\' % (f[0],
f[1][0]))
+ else:
+ msg.append(' --form "file=@%s" \\' % (files))
# remove the last \ from the last line.
msg[-1] = msg[-1][:-1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/PKG-INFO
new/cloudflare-2.11.6/PKG-INFO
--- old/cloudflare-2.11.1/PKG-INFO 2022-11-24 20:05:11.165600300 +0100
+++ new/cloudflare-2.11.6/PKG-INFO 2023-05-21 19:58:05.450339600 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: cloudflare
-Version: 2.11.1
+Version: 2.11.6
Summary: Python wrapper for the Cloudflare v4 API
Home-page: https://github.com/cloudflare/python-cloudflare
Author: Martin J. Levy
@@ -578,7 +578,7 @@
The command will convert domain names prefixed with a colon (`:`) into
zone_identifiers: e.g. to view `example.com` you must use `cli4
/zones/:example.com` (the zone ID cannot be used).
```bash
-$ cli4 [-V|--version] [-h|--help] [-v|--verbose] [-q|--quiet] [-j|--json]
[-y|--yaml] [-r|--raw] [-d|--dump] [--get|--patch|--post|--put|--delete]
[item=value ...] /command...
+$ cli4 [-V|--version] [-h|--help] [-v|--verbose] [-q|--quiet] [-j|--json]
[-y|--yaml] [-n|ndjson] [-r|--raw] [-d|--dump] [-A|--openapi url] [-b|--binary]
[-p|--profile profile-name] [--get|--patch|--post|--put|--delete]
[item=value|item=@filename|@filename ...] /command ...
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/README.md
new/cloudflare-2.11.6/README.md
--- old/cloudflare-2.11.1/README.md 2022-11-17 21:45:44.000000000 +0100
+++ new/cloudflare-2.11.6/README.md 2023-05-21 19:26:25.000000000 +0200
@@ -561,7 +561,7 @@
The command will convert domain names prefixed with a colon (`:`) into
zone_identifiers: e.g. to view `example.com` you must use `cli4
/zones/:example.com` (the zone ID cannot be used).
```bash
-$ cli4 [-V|--version] [-h|--help] [-v|--verbose] [-q|--quiet] [-j|--json]
[-y|--yaml] [-r|--raw] [-d|--dump] [--get|--patch|--post|--put|--delete]
[item=value ...] /command...
+$ cli4 [-V|--version] [-h|--help] [-v|--verbose] [-q|--quiet] [-j|--json]
[-y|--yaml] [-n|ndjson] [-r|--raw] [-d|--dump] [-A|--openapi url] [-b|--binary]
[-p|--profile profile-name] [--get|--patch|--post|--put|--delete]
[item=value|item=@filename|@filename ...] /command ...
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/cli4/cli4.py
new/cloudflare-2.11.6/cli4/cli4.py
--- old/cloudflare-2.11.1/cli4/cli4.py 2022-11-23 14:41:31.000000000 +0100
+++ new/cloudflare-2.11.6/cli4/cli4.py 2023-05-21 19:26:25.000000000 +0200
@@ -4,6 +4,7 @@
import sys
import re
import getopt
+import keyword
import json
my_yaml = None
@@ -103,6 +104,9 @@
sys.exit('cli4: %s=%s - file open failure' % (tag_string,
filename))
# no need for param code below
continue
+ elif (value_string[0] == '"' and value_string[-1] == '"') or
(value_string[0] == '\'' and value_string[-1] == '\''):
+ # remove quotes
+ value = value_string[1:-1]
else:
value = value_string
@@ -237,13 +241,16 @@
raise e
else:
try:
- # dashes (vs underscores) cause issues in Python and other
languages
- if '-' in element:
+ if keyword.iskeyword(element):
+ # a keyword is appended with an extra underscore so it can
used with Python code
+ m = getattr(m, element + '_')
+ elif '-' in element:
+ # dashes (vs underscores) cause issues in Python and other
languages
m = getattr(m, element.replace('-','_'))
else:
m = getattr(m, element)
cmd.append(element)
- except AttributeError:
+ except AttributeError as e:
# the verb/element was not found
sys.stderr.write('cli4: /%s - not found\n' % (command))
raise e
@@ -360,7 +367,6 @@
output = 'json'
raw = False
dump = False
- dump_from_web = False
openapi_url = None
binary_file = False
profile = None
@@ -371,7 +377,6 @@
+ '[-j|--json] [-y|--yaml] [-n|ndjson] '
+ '[-r|--raw] '
+ '[-d|--dump] '
- + '[-a|--api] '
+ '[-A|--openapi url] '
+ '[-b|--binary] '
+ '[-p|--profile profile-name] '
@@ -381,12 +386,12 @@
try:
opts, args = getopt.getopt(args,
- 'VhvqjyrdaA:bp:GPOUD',
+ 'VhvqjyrdA:bp:GPOUD',
[
'version',
'help', 'verbose', 'quiet', 'json',
'yaml', 'ndjson',
'raw',
- 'dump', 'api', 'openapi=',
+ 'dump', 'openapi=',
'binary',
'profile=',
'get', 'patch', 'post', 'put', 'delete'
@@ -420,8 +425,6 @@
profile = arg
elif opt in ('-d', '--dump'):
dump = True
- elif opt in ('-a', '--api'):
- dump_from_web = True
elif opt in ('-A', '--openapi'):
openapi_url = arg
elif opt in ('-b', '--binary'):
@@ -447,11 +450,6 @@
sys.stdout.write(a)
sys.exit(0)
- if dump_from_web:
- a = dump_commands_from_web(cf)
- sys.stdout.write(a)
- sys.exit(0)
-
if openapi_url:
a = dump_commands_from_web(cf, openapi_url)
sys.stdout.write(a)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/cli4/dump.py
new/cloudflare-2.11.6/cli4/dump.py
--- old/cloudflare-2.11.1/cli4/dump.py 2022-11-22 13:40:45.000000000 +0100
+++ new/cloudflare-2.11.6/cli4/dump.py 2023-05-21 19:26:25.000000000 +0200
@@ -5,12 +5,9 @@
w = cf.api_list()
return '\n'.join(w) + '\n'
-def dump_commands_from_web(cf, url=None):
+def dump_commands_from_web(cf, url):
"""dump a tree of all the known API commands - from web"""
- if url:
- w = cf.api_from_openapi(url)
- else:
- w = cf.api_from_web()
+ w = cf.api_from_openapi(url)
a = []
for r in w:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/cloudflare.egg-info/PKG-INFO
new/cloudflare-2.11.6/cloudflare.egg-info/PKG-INFO
--- old/cloudflare-2.11.1/cloudflare.egg-info/PKG-INFO 2022-11-24
20:05:11.000000000 +0100
+++ new/cloudflare-2.11.6/cloudflare.egg-info/PKG-INFO 2023-05-21
19:58:05.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: cloudflare
-Version: 2.11.1
+Version: 2.11.6
Summary: Python wrapper for the Cloudflare v4 API
Home-page: https://github.com/cloudflare/python-cloudflare
Author: Martin J. Levy
@@ -578,7 +578,7 @@
The command will convert domain names prefixed with a colon (`:`) into
zone_identifiers: e.g. to view `example.com` you must use `cli4
/zones/:example.com` (the zone ID cannot be used).
```bash
-$ cli4 [-V|--version] [-h|--help] [-v|--verbose] [-q|--quiet] [-j|--json]
[-y|--yaml] [-r|--raw] [-d|--dump] [--get|--patch|--post|--put|--delete]
[item=value ...] /command...
+$ cli4 [-V|--version] [-h|--help] [-v|--verbose] [-q|--quiet] [-j|--json]
[-y|--yaml] [-n|ndjson] [-r|--raw] [-d|--dump] [-A|--openapi url] [-b|--binary]
[-p|--profile profile-name] [--get|--patch|--post|--put|--delete]
[item=value|item=@filename|@filename ...] /command ...
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/cloudflare.egg-info/SOURCES.txt
new/cloudflare-2.11.6/cloudflare.egg-info/SOURCES.txt
--- old/cloudflare-2.11.1/cloudflare.egg-info/SOURCES.txt 2022-11-24
20:05:11.000000000 +0100
+++ new/cloudflare-2.11.6/cloudflare.egg-info/SOURCES.txt 2023-05-21
19:58:05.000000000 +0200
@@ -59,4 +59,5 @@
examples/example_user_tokens.py
examples/example_with_usage.py
examples/example_zone_search.sh
-examples/example_zones.py
\ No newline at end of file
+examples/example_zones.py
+tests/test1.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cloudflare-2.11.1/tests/test1.py
new/cloudflare-2.11.6/tests/test1.py
--- old/cloudflare-2.11.1/tests/test1.py 1970-01-01 01:00:00.000000000
+0100
+++ new/cloudflare-2.11.6/tests/test1.py 2020-01-26 21:23:53.000000000
+0100
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+import os
+import sys
+sys.path.insert(0, os.path.abspath('..'))
+import CloudFlare
+
+import pytest
+
+def test_ips():
+ cf = CloudFlare.CloudFlare()
+ ips = cf.ips.get()
+ assert ips
+
+if __name__ == '__main__':
+ pytest.main([__file__])