Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH v2] Complete python module arguments



Python modules can behave like commands in their own right. This allows
modules to define _python_module-* functions that are used to complete
module arguments. Also gets the ball rolling by defining completions for
venv, http.server, and json.tool.
---
 Completion/Unix/Command/_python                    |  3 +++
 Completion/Unix/Command/_python_module-http.server |  8 ++++++++
 Completion/Unix/Command/_python_module-json.tool   | 13 +++++++++++++
 Completion/Unix/Command/_python_module-venv        | 14 ++++++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 Completion/Unix/Command/_python_module-http.server
 create mode 100644 Completion/Unix/Command/_python_module-json.tool
 create mode 100644 Completion/Unix/Command/_python_module-venv

diff --git a/Completion/Unix/Command/_python b/Completion/Unix/Command/_python
index 6e209a1998d7..a5d46cfd66e6 100644
--- a/Completion/Unix/Command/_python
+++ b/Completion/Unix/Command/_python
@@ -56,6 +56,9 @@ case "$state" in
     if [[ -z "$opt_args[(I)-(c|m)]" ]]; then
       shift words
       (( CURRENT-- ))
+    elif [[ -n "$opt_args[(I)-m]" ]]; then
+      local ret
+      _call_function ret _python_module-$opt_args[-m] && return ret
     fi
     _normal && return
     ;;
diff --git a/Completion/Unix/Command/_python_module-http.server b/Completion/Unix/Command/_python_module-http.server
new file mode 100644
index 000000000000..e5ea4a8df3d5
--- /dev/null
+++ b/Completion/Unix/Command/_python_module-http.server
@@ -0,0 +1,8 @@
+#autoload
+
+_arguments -S \
+  '(-h --help)'{-h,--help}'[show a help message and exit]' \
+  '--cgi[run as CGI server]' \
+  '(-b --bind)'{-b+,--bind=}'[bind to this address]:address:' \
+  '(-d --directory)'{-d+,--directory=}'[serve this directory]:directory:_directories' \
+  '(-p --protocol)'{-p+,--protocol=}'[conform to this HTTP version]:protcol version:(HTTP/1.0 HTTP/1.1)'
diff --git a/Completion/Unix/Command/_python_module-json.tool b/Completion/Unix/Command/_python_module-json.tool
new file mode 100644
index 000000000000..61c22686be1c
--- /dev/null
+++ b/Completion/Unix/Command/_python_module-json.tool
@@ -0,0 +1,13 @@
+#autoload
+
+_arguments -S \
+  '(-h --help)'{-h,--help}'[show a help message and exit]' \
+  '--sort-keys[sort the output of dictionaries alphabetically by key]' \
+  '--no-ensure-ascii[disable escaping of non-ASCII characters]' \
+  '--json-lines[parse input using the JSON Lines format]' \
+  '--indent=[separate items with newlines and use this number of spaces for indentation]:spaces:' \
+  '--tab[separate items with newlines and use tabs for indentation]' \
+  '--no-indent[separate items with spaces rather than newlines]' \
+  '--compact[suppress all whitespace separation]' \
+  '1:infile:_files' \
+  '2:outfile:_files'
diff --git a/Completion/Unix/Command/_python_module-venv b/Completion/Unix/Command/_python_module-venv
new file mode 100644
index 000000000000..1af53cc41dcf
--- /dev/null
+++ b/Completion/Unix/Command/_python_module-venv
@@ -0,0 +1,14 @@
+#autoload
+
+_arguments -S \
+  '(-h --help)'{-h,--help}'[show a help message and exit]' \
+  '--system-site-packages[give the virtual environment access to the system site-packages dir]' \
+  '(--symlinks --copies)--symlinks[try to use symlinks rather than copies]' \
+  '(--symlinks --copies)--copies[try to use copies rather than symlinks]' \
+  '(--clear --upgrade)--clear[delete the contents of the environment directory if it already exists]' \
+  '(--clear --upgrade)--upgrade[upgrade the environment directory to use this version of Python]' \
+  '--without-pip[skip installing or upgrading pip]' \
+  '--prompt[provides an alternative prompt prefix for the environment]' \
+  '--upgrade-deps[upgrade core dependencies to the latest version]' \
+  '--without-scm-ignore-files[skip adding SCM ignore files to the environment directory]'
+  '*::virtual environment:_directories'
-- 
2.48.1





Messages sorted by: Reverse Date, Date, Thread, Author