summaryrefslogtreecommitdiff
path: root/Lib/gzip.py
diff options
context:
space:
mode:
authorStéphane Wirtel <stephane@wirtel.be>2018-10-10 00:41:33 +0200
committerJulien Palard <julien@palard.fr>2018-10-10 00:41:33 +0200
commite8bbc52debfd1b28517946d65db257e6b6d92e29 (patch)
treea0e91d3a9e3655d82006d6d564001c58afcc26f6 /Lib/gzip.py
parent84eec1199583bcb034e43337bcb8e2b876ebd269 (diff)
downloadcpython-git-e8bbc52debfd1b28517946d65db257e6b6d92e29.tar.gz
bpo-23596: Use argparse for the command line of gzip (GH-9781)
Co-authored-by: Antony Lee <anntzer.lee@gmail.com>
Diffstat (limited to 'Lib/gzip.py')
-rw-r--r--Lib/gzip.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/Lib/gzip.py b/Lib/gzip.py
index ddc7bda1fe..a34d01ae36 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -532,18 +532,17 @@ def decompress(data):
return f.read()
-def _test():
- # Act like gzip; with -d, act like gunzip.
- # The input file is not deleted, however, nor are any other gzip
- # options or features supported.
- args = sys.argv[1:]
- decompress = args and args[0] == "-d"
- if decompress:
- args = args[1:]
- if not args:
- args = ["-"]
- for arg in args:
- if decompress:
+def main():
+ from argparse import ArgumentParser
+ parser = ArgumentParser(description=
+ "A simple command line interface for the gzip module: act like gzip, "
+ "but do not delete the input file.")
+ parser.add_argument("-d", "--decompress", action="store_true",
+ help="act like gunzip instead of gzip")
+ parser.add_argument("args", nargs="*", default=["-"], metavar='file')
+ args = parser.parse_args()
+ for arg in args.args:
+ if args.decompress:
if arg == "-":
f = GzipFile(filename="", mode="rb", fileobj=sys.stdin.buffer)
g = sys.stdout.buffer
@@ -571,4 +570,4 @@ def _test():
f.close()
if __name__ == '__main__':
- _test()
+ main()