From 367bdc2554f150bbecf8c8438d47f6926ae8e4a9 Mon Sep 17 00:00:00 2001 From: Agata Date: Fri, 15 Nov 2019 16:59:02 -0800 Subject: [PATCH 1/2] PE-27800 - Under certain conditions the response body can get printed more than once --- planet/scripts/util.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/planet/scripts/util.py b/planet/scripts/util.py index 18cc13074..15d7921f0 100644 --- a/planet/scripts/util.py +++ b/planet/scripts/util.py @@ -171,23 +171,26 @@ def echo_json_response(response, pretty, limit=None, ndjson=False): sort_keys = True nl = True try: - if ndjson and hasattr(response, 'items_iter'): + if hasattr(response, 'items_iter'): items = response.items_iter(limit) - for item in items: - click.echo(json.dumps(item)) + if ndjson: + for item in items: + click.echo(json.dumps(item)) + else: + click.echo(json.dumps(list(items))) elif not ndjson and hasattr(response, 'json_encode'): response.json_encode(click.get_text_stream('stdout'), limit=limit, indent=indent, sort_keys=sort_keys) - - res = response.get_raw() - if len(res) == 0: # if the body is empty, just return the status - click.echo("status: {}".format(response.response.status_code)) else: - res = json.dumps(json.loads(res), indent=indent, - sort_keys=sort_keys) - click.echo(res) - if nl: - click.echo() + res = response.get_raw() + if len(res) == 0: # if the body is empty, just return the status + click.echo("status: {}".format(response.response.status_code)) + else: + res = json.dumps(json.loads(res), indent=indent, + sort_keys=sort_keys) + click.echo(res) + if nl: + click.echo() except IOError as ioe: # hide scary looking broken pipe stack traces raise click.ClickException(str(ioe)) From d59f4d9b34a276a3eaf6741a8ee0015a9f259eef Mon Sep 17 00:00:00 2001 From: Agata Date: Mon, 2 Dec 2019 11:08:12 -0800 Subject: [PATCH 2/2] Fix broke jq parsing for regular data search --- planet/scripts/util.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/planet/scripts/util.py b/planet/scripts/util.py index 15d7921f0..da802808c 100644 --- a/planet/scripts/util.py +++ b/planet/scripts/util.py @@ -171,13 +171,10 @@ def echo_json_response(response, pretty, limit=None, ndjson=False): sort_keys = True nl = True try: - if hasattr(response, 'items_iter'): + if ndjson and hasattr(response, 'items_iter'): items = response.items_iter(limit) - if ndjson: - for item in items: - click.echo(json.dumps(item)) - else: - click.echo(json.dumps(list(items))) + for item in items: + click.echo(json.dumps(item)) elif not ndjson and hasattr(response, 'json_encode'): response.json_encode(click.get_text_stream('stdout'), limit=limit, indent=indent, sort_keys=sort_keys)