about summary refs log tree commit diff
path: root/Completion/Unix/Command/_python
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_python')
-rw-r--r--Completion/Unix/Command/_python38
1 files changed, 38 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_python b/Completion/Unix/Command/_python
new file mode 100644
index 000000000..be27f8300
--- /dev/null
+++ b/Completion/Unix/Command/_python
@@ -0,0 +1,38 @@
+#compdef python
+
+# Python 2.4
+
+local curcontext="$curcontext" state line expl
+typeset -A opt_args
+
+_arguments -C -s -S \
+  '(1 -)-c+[program passed in as string (terminates option list)]:python command:' \
+  '-d[debug output from parser]' \
+  '-E[ignore environment variables (such as PYTHONPATH)]' \
+  '(1 * -)-h[display help information]' \
+  '-i[inspect interactively after running script]' \
+  '(1 * -)-m[run library module as a script (terminates option list)]:module:->modules' \
+  '-O[optimize generated bytecode]' \
+  '-OO[remove doc-strings in addition to the -O optimizations]' \
+  '-Q+[division options]:division option:(old warn warnall new)' \
+  "-S[don't imply 'import site' on initialization]" \
+  '-t[issue warnings about inconsistent tab usage]' \
+  '-tt[issue errors about inconsistent tab usage]' \
+  '-u[unbuffered binary stdout and stderr]' \
+  '-v[verbose (trace import statements)]' \
+  '(1 * -)-V[display version information]' \
+  '-W+[warning control]:warning filter (action\:message\:category\:module\:lineno):(default always ignore module once error)' \
+  '-x[skip first line of source, allowing use of non-Unix forms of #!cmd]' \
+  '(-)1:script file:_files -g "*.py(|c|o)(-.)"' \
+  '*::script argument: _normal' && return
+
+if [[ "$state" = modules ]]; then
+  local -a modules
+  modules=(
+    ${${=${(f)"$(_call_program modules $words[1] -c \
+      'from\ pydoc\ import\ help\;\ help\(\"modules\"\)')"}[2,-3]}:#\(package\)}
+  )
+  _wanted modules expl module compadd -a modules && return
+fi
+
+return 1