From e8e4b46021557fbf5776c32dff46de022817fb6b Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Tue, 30 Nov 2021 11:49:40 -0800 Subject: [PATCH] use jc.utils type checks --- jc/parsers/csv_s.py | 5 ++--- jc/parsers/foo_s.py | 7 +++---- jc/parsers/ls_s.py | 7 +++---- jc/parsers/ping_s.py | 7 +++---- jc/parsers/vmstat_s.py | 7 +++---- 5 files changed, 14 insertions(+), 19 deletions(-) diff --git a/jc/parsers/csv_s.py b/jc/parsers/csv_s.py index eecb7de3..b357227c 100644 --- a/jc/parsers/csv_s.py +++ b/jc/parsers/csv_s.py @@ -95,9 +95,8 @@ def parse(data, raw=False, quiet=False, ignore_exceptions=False): Iterator object """ - if not quiet: jc.utils.compatibility(__name__, info.compatible) - if not hasattr(data, '__iter__') or isinstance(data, (str, bytes)): - raise TypeError("Input data must be a non-string iterable object.") + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.streaming_input_type_check(data) # convert data to an iterable in case a sequence like a list is used as input. # this allows the exhaustion of the input so we don't double-process later. diff --git a/jc/parsers/foo_s.py b/jc/parsers/foo_s.py index 2143b23e..03962509 100644 --- a/jc/parsers/foo_s.py +++ b/jc/parsers/foo_s.py @@ -97,14 +97,13 @@ def parse(data, raw=False, quiet=False, ignore_exceptions=False): Iterator object """ - if not quiet: jc.utils.compatibility(__name__, info.compatible) - if not hasattr(data, '__iter__') or isinstance(data, (str, bytes)): - raise TypeError("Input data must be a non-string iterable object.") + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.streaming_input_type_check(data) for line in data: output_line = {} try: - if not isinstance(line, str): raise TypeError("Input line must be a 'str' object.") + jc.utils.streaming_line_input_type_check(line) # # parse the input here diff --git a/jc/parsers/ls_s.py b/jc/parsers/ls_s.py index 2f7cac4a..465a0b69 100644 --- a/jc/parsers/ls_s.py +++ b/jc/parsers/ls_s.py @@ -123,15 +123,14 @@ def parse(data, raw=False, quiet=False, ignore_exceptions=False): Iterator object """ - if not quiet: jc.utils.compatibility(__name__, info.compatible) - if not hasattr(data, '__iter__') or isinstance(data, (str, bytes)): - raise TypeError("Input data must be a non-string iterable object.") + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.streaming_input_type_check(data) parent = '' for line in data: try: - if not isinstance(line, str): raise TypeError("Input line must be a 'str' object.") + jc.utils.streaming_line_input_type_check(line) # skip line if it starts with 'total 1234' if re.match(r'total [0-9]+', line): diff --git a/jc/parsers/ping_s.py b/jc/parsers/ping_s.py index fbbb56d3..6cfe9ec7 100644 --- a/jc/parsers/ping_s.py +++ b/jc/parsers/ping_s.py @@ -468,14 +468,13 @@ def parse(data, raw=False, quiet=False, ignore_exceptions=False): """ s = _state() - if not quiet: jc.utils.compatibility(__name__, info.compatible) - if not hasattr(data, '__iter__') or isinstance(data, (str, bytes)): - raise TypeError("Input data must be a non-string iterable object.") + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.streaming_input_type_check(data) for line in data: output_line = {} try: - if not isinstance(line, str): raise TypeError("Input line must be a 'str' object.") + jc.utils.streaming_line_input_type_check(line) # skip blank lines if line.strip() == '': diff --git a/jc/parsers/vmstat_s.py b/jc/parsers/vmstat_s.py index 9d18f4c6..188042e5 100644 --- a/jc/parsers/vmstat_s.py +++ b/jc/parsers/vmstat_s.py @@ -145,9 +145,8 @@ def parse(data, raw=False, quiet=False, ignore_exceptions=False): Iterator object """ - if not quiet: jc.utils.compatibility(__name__, info.compatible) - if not hasattr(data, '__iter__') or isinstance(data, (str, bytes)): - raise TypeError("Input data must be a non-string iterable object.") + jc.utils.compatibility(__name__, info.compatible, quiet) + jc.utils.streaming_input_type_check(data) procs = None buff_cache = None @@ -158,7 +157,7 @@ def parse(data, raw=False, quiet=False, ignore_exceptions=False): for line in data: output_line = {} try: - if not isinstance(line, str): raise TypeError("Input line must be a 'str' object.") + jc.utils.streaming_line_input_type_check(line) # skip blank lines if line.strip() == '':