From fa622d3e14a561f630bc954dea23d08f0177e01f Mon Sep 17 00:00:00 2001 From: Cristian Date: Tue, 8 Sep 2020 09:17:10 -0500 Subject: [PATCH] refactor: Replace --index with --with-headers in the list command to make it more explicit. Change it so it affects the csv output too. --- archivebox/cli/archivebox_list.py | 10 +++++----- archivebox/logging_util.py | 8 ++++---- archivebox/main.py | 4 ++-- tests/test_list.py | 27 +++++++++++++++++++++------ 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/archivebox/cli/archivebox_list.py b/archivebox/cli/archivebox_list.py index 504fd270..529dad80 100644 --- a/archivebox/cli/archivebox_list.py +++ b/archivebox/cli/archivebox_list.py @@ -52,9 +52,9 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional help="Print the output in HTML format" ) parser.add_argument( - '--index', + '--with-headers', action='store_true', - help='Include the index additional structures' + help='Include the headers in the output document' ) parser.add_argument( '--sort', #'-s', @@ -112,9 +112,9 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional command = parser.parse_args(args or ()) filter_patterns_str = accept_stdin(stdin) - if command.index and not (command.json or command.html): + if command.with_headers and not (command.json or command.html or command.csv): stderr( - '[X] --index can only be used with --json or --html options.\n', + '[X] --with-headers can only be used with --json, --html or --csv options.\n', color='red', ) raise SystemExit(2) @@ -130,7 +130,7 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional csv=command.csv, json=command.json, html=command.html, - index=command.index, + with_headers=command.with_headers, out_dir=pwd or OUTPUT_DIR, ) raise SystemExit(not matching_folders) diff --git a/archivebox/logging_util.py b/archivebox/logging_util.py index 70a62919..36903867 100644 --- a/archivebox/logging_util.py +++ b/archivebox/logging_util.py @@ -463,11 +463,11 @@ def printable_folders(folders: Dict[str, Optional["Link"]], json: bool=False, html: bool=False, csv: Optional[str]=None, - index: bool=False) -> str: + with_headers: bool=False) -> str: links = folders.values() if json: from .index.json import to_json - if index: + if with_headers: output = { **MAIN_INDEX_HEADER, 'num_links': len(links), @@ -480,7 +480,7 @@ def printable_folders(folders: Dict[str, Optional["Link"]], return to_json(output, indent=4, sort_keys=True) elif html: from .index.html import main_index_template - if index: + if with_headers: output = main_index_template(links, True) else: from .index.html import MINIMAL_INDEX_TEMPLATE @@ -488,7 +488,7 @@ def printable_folders(folders: Dict[str, Optional["Link"]], return output elif csv: from .index.csv import links_to_csv - return links_to_csv(folders.values(), cols=csv.split(','), header=True) + return links_to_csv(folders.values(), cols=csv.split(','), header=with_headers) return '\n'.join( f'{folder} {link and link.url} "{link and link.title}"' diff --git a/archivebox/main.py b/archivebox/main.py index 1cd876e6..a9ac8ca6 100644 --- a/archivebox/main.py +++ b/archivebox/main.py @@ -709,7 +709,7 @@ def list_all(filter_patterns_str: Optional[str]=None, csv: Optional[str]=None, json: bool=False, html: bool=False, - index: bool=False, + with_headers: bool=False, out_dir: str=OUTPUT_DIR) -> Iterable[Link]: """List, filter, and export information about archive entries""" @@ -742,7 +742,7 @@ def list_all(filter_patterns_str: Optional[str]=None, out_dir=out_dir, ) - print(printable_folders(folders, json=json, csv=csv, html=html, index=index)) + print(printable_folders(folders, json=json, csv=csv, html=html, with_headers=with_headers)) return folders diff --git a/tests/test_list.py b/tests/test_list.py index fdc59e47..75fa0ec8 100644 --- a/tests/test_list.py +++ b/tests/test_list.py @@ -10,10 +10,10 @@ def test_list_json(process, disable_extractors_dict): assert output_json[0]["url"] == "http://127.0.0.1:8080/static/example.com.html" -def test_list_json_index(process, disable_extractors_dict): +def test_list_json_headers(process, disable_extractors_dict): subprocess.run(["archivebox", "add", "http://127.0.0.1:8080/static/example.com.html", "--depth=0"], capture_output=True, env=disable_extractors_dict) - list_process = subprocess.run(["archivebox", "list", "--json", "--index"], capture_output=True) + list_process = subprocess.run(["archivebox", "list", "--json", "--with-headers"], capture_output=True) output_json = json.loads(list_process.stdout.decode("utf-8")) assert output_json["links"][0]["url"] == "http://127.0.0.1:8080/static/example.com.html" @@ -25,17 +25,32 @@ def test_list_html(process, disable_extractors_dict): assert "