Skip to content

Commit 2720d21

Browse files
committed
Added --warnings flag to cli4 and associated warnings= flag to cloudflare() call. Provides an ability to control warning messages on or after 2.20.* release
1 parent 676d258 commit 2720d21

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

CloudFlare/cloudflare.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class CloudFlare():
4949
class _v4base():
5050
""" :meta private: """
5151

52-
def __init__(self, config):
52+
def __init__(self, config, warnings=True):
5353
""" :meta private: """
5454

5555
self.network = None
@@ -89,12 +89,14 @@ def __init__(self, config):
8989

9090
self.logger = CFlogger(config['debug']).getLogger() if 'debug' in config and config['debug'] else None
9191

92-
warning = warning_2_20()
93-
if warning:
94-
if self.logger:
95-
self.logger.warning('\n' + warning)
96-
else:
97-
print_warning_2_20(warning)
92+
if warnings:
93+
# After 2.20.* there is a warning message posted to handle un-pinned versions
94+
warning = warning_2_20()
95+
if warning:
96+
if self.logger:
97+
self.logger.warning(''.join(['\n ' + v for v in warning.split('\n')]))
98+
else:
99+
print_warning_2_20(warning)
98100

99101
def __del__(self):
100102
if self.network:
@@ -1032,7 +1034,7 @@ def api_from_openapi(self, url=None):
10321034

10331035
return self._base.api_from_openapi(url)
10341036

1035-
def __init__(self, email=None, key=None, token=None, certtoken=None, debug=False, raw=False, use_sessions=True, profile=None, base_url=None, global_request_timeout=None, max_request_retries=None, http_headers=None):
1037+
def __init__(self, email=None, key=None, token=None, certtoken=None, debug=False, raw=False, use_sessions=True, profile=None, base_url=None, global_request_timeout=None, max_request_retries=None, http_headers=None, warnings=True):
10361038
""" :meta private: """
10371039

10381040
self._base = None
@@ -1093,7 +1095,7 @@ def __init__(self, email=None, key=None, token=None, certtoken=None, debug=False
10931095
if v == '':
10941096
config[k] = None
10951097

1096-
self._base = self._v4base(config)
1098+
self._base = self._v4base(config, warnings=warnings)
10971099

10981100
# add the API calls
10991101
try:

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,7 @@ $ cli4 [-V|--version] [-h|--help] [-v|--verbose] \
716716
[-b|--binary] \
717717
[-p|--profile profile-name] \
718718
[-h|--header additional-header] \
719+
[-w|--warnings [True|False]] \
719720
[--get|--patch|--post|--put|--delete] \
720721
[item=value|item=@filename|@filename ...] /command ...
721722
```

cli4/cli4.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,7 @@ def do_it(args):
397397
binary_file = False
398398
profile = None
399399
http_headers = None
400+
warnings = True
400401
method = 'GET'
401402

402403
usage = ('usage: cli4 '
@@ -410,13 +411,14 @@ def do_it(args):
410411
+ '[-b|--binary] '
411412
+ '[-p|--profile profile-name] '
412413
+ '[-h|--header additional-header] '
414+
+ '[-w|--warnings [True|False]] '
413415
+ '[--get|--patch|--post|--put|--delete] '
414416
+ '[item=value|item=@filename|@filename ...] '
415417
+ '/command ...')
416418

417419
try:
418420
opts, args = getopt.getopt(args,
419-
'VhveqjynirdA:bp:h:GPOUD',
421+
'VhveqjynirdA:bp:h:w:GPOUD',
420422
[
421423
'version', 'help', 'verbose',
422424
'examples',
@@ -428,6 +430,7 @@ def do_it(args):
428430
'binary',
429431
'profile=',
430432
'header=',
433+
'warnings=',
431434
'get', 'patch', 'post', 'put', 'delete'
432435
])
433436
except getopt.GetoptError:
@@ -461,6 +464,15 @@ def do_it(args):
461464
if http_headers is None:
462465
http_headers = []
463466
http_headers.append(arg)
467+
elif opt in ('-w', '--warnings'):
468+
if arg is None or arg == '':
469+
warnings = None
470+
elif arg.lower() in ('yes', 'true', '1'):
471+
warnings = True
472+
elif arg.lower() in ('no', 'false', '0'):
473+
warnings = False
474+
else:
475+
sys.exit('cli4: --warnings takes boolean True/False argument')
464476
elif opt in ('-d', '--dump'):
465477
do_dump = True
466478
elif opt in ('-A', '--openapi'):
@@ -487,7 +499,7 @@ def do_it(args):
487499
sys.exit(0)
488500

489501
try:
490-
cf = CloudFlare.CloudFlare(debug=verbose, raw=raw, profile=profile, http_headers=http_headers)
502+
cf = CloudFlare.CloudFlare(debug=verbose, raw=raw, profile=profile, http_headers=http_headers, warnings=warnings)
491503
except Exception as e:
492504
sys.exit(e)
493505

0 commit comments

Comments
 (0)